たとえば、コマンドを実行したときにもパーセント記号を表示することを目指しています
man emacs
これを実行すると、たとえば「バイト3300」が得られます。
Alexの答えは、次の方法で別のシェル関数を作成する必要があることを示唆しています。
man "$1"| col -b > /tmp/manual
less /tmp/manual
ここで、$1は最初のパラメーターを指します。
新しい問題はスレッドにあります。核心の動きをしてくれたYuliyに感謝します!
Alex Marteilliの回答
と組み合わせた、手動ではないバージョンのknitatomsの回答
は、非常にうまく機能します。オプションをポケットベルオプションを介して渡します。+Gg
less
たとえば、
man -P 'less -s -M +Gg' man
これは置くことによって永久に影響を受けることができます
export MANPAGER='less -s -M +Gg'
シェル構成ファイルの1つ(上記の構文はBashとZSH用です)。今、例えば、man man
あなたが望むようにパーセンテージを表示します!
変数にを入れないでください!たとえば、+Gg
LESS
export LESS='-M +Gg'
非常に大きなファイルを読み取るときに問題が発生します。例えば、
yes | LESS='-M +Gg' less
うまく機能しません...
他の回答が説明しているように、問題はless
、ファイルの長さがわかるまでファイルの何パーセントかがわからず、パイプから読み取るときにデフォルトでファイルの最後まで読み取られないことです。
のOPTIONS
セクションからman less
:
+ If a command line option begins with +, the remainder of that
option is taken to be an initial command to less. For exam‐
ple, +G tells less to start at the end of the file rather than
the beginning, and +/xyz tells it to start at the first occur‐
rence of "xyz" in the file. As a special case, +<number> acts
like +<number>g; that is, it starts the display at the speci‐
fied line number (however, see the caveat under the "g" com‐
mand above). If the option starts with ++, the initial com‐
mand applies to every file being viewed, not just the first
one. The + command described previously may also be used to
set (or change) an initial command for every file.
g
「ファイルの先頭に戻る」という意味です。
からman man
:
-P pager, --pager=pager
Specify which output pager to use. By default, man uses pager
-s. 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.
The value may be a simple command name or a command with argu‐
ments, and may use shell quoting (backslashes, single quotes,
or double quotes). It may not use pipes to connect multiple
commands; if you need that, use a wrapper script, which may
take the file to display either as an argument or on standard
input.
export LESS="-m"
より一般的には、LESS
環境変数には、実行時に明示的に渡すことができるコマンドラインフラグと同等のオプションが含まれる場合があります。less
ここでは、-m
より豊富にプロンプトを表示するように指示するオプションです(要求したパーセンテージを含む)。それぞれを。で終了することにより、その単一の環境変数内で複数のオプションを渡すこともできます$
。詳細については、lessのマンページを参照してください。
編集:もちろん、(ファイルで呼び出すのではなく、パイプで接続している場合など、使用量が少ない場合は)表示される合計サイズがわからない可能性があります。この場合、もちろん、%を表示することはできません。その場合、これまでに表示されたテキストの量など、ほとんど情報がないことを示すプロンプトが表示されます。たとえば、配管によってそのようにman
使用しますか。less
したがって、man
(ファイルを直接呼び出すときではなくless
)%を表示する必要がある場合は、「代替ページャー」(環境変数またはコマンドラインのMANPAGER
スイッチ)を使用する必要があります。これは、を保存する単純なスクリプトです。一時ファイルに出力し、後者で使用します。(さらに深くトリックなどをプレイしない限り、それは人間自身の「色付け」を失う可能性があります-同様に、そのような事前フォーマットされたページの「事前フォーマットページ」オプションを使用して、実行する一時ファイルに解凍することができます、など、しかし、これはやや複雑な「単純なスクリプト」になり始めています;-)。-P
man
man
less
man
less
Linuxでは、マニュアルページの最後にShift+を付けて移動しG、次に。を付けて最初に戻りgます。(または、を使用して前の位置に戻ることができます'')。
それよりも少ないと、ファイルのどこまで進んでいるかのパーセンテージを表示するのに十分な情報があります。-M
(長いプロンプトを表示するには、入力する必要がある場合があります。)
ちょっとしたハックですが、キーを2回押すだけです。これがOS/Xで機能するかどうかはわかりません。
Alex Martelliの答えに追加するには:
コマンドラインパラメータを入力して(-を含む)、Enterキーを押すだけで、実行時にlessに渡すこともできることに注意してください。だからあなたはただタイプすることができます
-m<Enter>
実行中のlessに切り替えて、長いプロンプトを切り替えます。
これは、実行時に変更する必要のあるオプション、たとえば-S(行の折りたたみのオン/オフ)に特に役立ちます。
ライブless
ランタイムでは、を使用し-M
ました。
これは、実行回数が少ないプロンプトで の「 -M
Enter」です。:
非常に大きなバッファーでは、そのサイズを「発見」するために最後まで行かなければなりませんでした。Endと戻るHome。
注:@sleskeの回答にコメントとして投稿したと思いますが、最後に思い出しますが、コメントは<kbd>Keyboard<kbd>
タグをサポートしていません。
私の環境にはこれがあります。<filename> - Lines X-Y of Z
下部に印刷されるか、少なくともその情報の多くが印刷されます。
export LESS='-P?f%f - .?ltLine?lbs. %lt?lb-%lb.?L of %L.:?pt%pt\%:?btByte %bt:-...'