可能であれば、人のPAGER変数を変更する方法は?

可能であれば、人のPAGER変数を変更する方法は?

私はLinuxの専門家ではありませんが、紹介書を読んでページがman環境PAGER変数を使用してページの内容を表示することを発見しましたman。確認してみると、変数printenvは見つかりませんでしたPAGER

ところで、バイナリファイルであり、パスが私のパスにあるので/usr/binpager$PAGER

気になるので、この変数を修正する方法を知りたいですPAGER。 Bashファイルに1つを追加しようとしましたが、うまくいかず、ポケットベルを変更する方法が見つかりませんでした。

stdinポケットベルの特別な点は何ですか?パイプの内容を読み取ったりサポートしたりできるすべてのプログラムがポケットベルになると期待します。vimポケットベルになれますか?

内部的には、次のように定義された変数にデータを送信するmanために使用されているように見えますが、失敗します。sedPAGER

env PAGER=/usr/bin/nano man printf

以下のようにエラーが発生します。

ここに画像の説明を入力してください。

答え1

この変数は、ページングが必要な他の出力(など)にもPAGER使用されます。mangit branchjournalctl

この設定をマンページにのみ適用するには、MANPAGERこのオプションを使用する必要があります。

vimとして定義MANPAGER:

export MANPAGER="vim +MANPAGER -"
  • +MANPAGERvim投資するマンページモード(色、見えない文字を隠すなど)。これも読み取り専用にします
  • 最後にあるのは、-標準入力からテキストを読むことを意味します(標準入力)

他のポケットベルの場合:

  • Nano(@muruが説明したようにきれいではありません):

    export MANPAGER="nano -"
    

次の場合、プログラムは元の読み取り用に設計されているため、ハイフンを追加する必要はありません。標準入力

  • 最大:

    export MANPAGER="most"
    
  • より少ない:

    export MANPAGER="less"
    
  • もっと:

    export MANPAGER="more"
    
  • バット(良い色とフォーマット):

    export MANPAGER="sh -c 'col -bx | bat -l man -p'"
    

答え2

ポケットベルとして使用するには、nano標準入力から読み取るように指示する必要があります。

MANPAGER='nano -' man printf

manただし、出力フォーマットされた文字はnanoフォーマットされたテキストではなくそのまま表示されるため、結果は悪くなります。

はい、Vimでも動作します。 Vimはすでに一部これをサポートしてください。バラより:h manpager.vim詳細については。

sed内部的には、この人はデータ転送にのみ使用されているようです。

いいえ、役に立たmanないsed。実際にはtroffテキストの書式設定に使用されます。


ただし、バイナリであり、パスが私のパスにあるため、Linuxでデフォルトオプションであると仮定する/usr/binプログラムもあります。pager$PAGER

Debian や一部の Debian 派生物を使用する場合に当てはまります。 ~からman man:

-P pager, --pager=pager
      Specify which output pager to use.  By default, man uses pager, falling back to cat
      if pager is not found or is not executable.  This option  overrides  the  $MANPAGER
      environment  variable, which in turn overrides the $PAGER environment variable.  It
      is not used in conjunction with -f or -k.

他のディストリビューションでは必ずしもそうではありません(pager存在しないかもしれない実際のポケットベルへのシンボリックリンクだけです)。

関連情報