私はしばしばコンソール(GUIなし)でマニュアルページを使用しますが、私が使用しているワイドスクリーンにはテキストモードに多くの列があります。行が長すぎて読みにくいです。
man
less
使用される列数を制限する方法(または内部で使用する方法)はありますか?
答え1
動的にフォーマットされたマニュアルを含むLinuxシステムを使用していると仮定するか、COLUMNS
環境MANWIDTH
変数を目的の線幅に設定します。
COLUMNS=72 man ...
MANWIDTH
シェルの起動ファイルに適切な値を設定したい場合がありますが、COLUMNS
他の多くのプログラムでもこの値を使用しますman
。
export MANWIDTH=72
使用しているシステムでmandoc
man
-O width=72
、72
使用したい幅のあるオプションと一緒に使用されます。システムはmandoc
デフォルトの幅を使用するため、長すぎる78
行を取得することは通常問題ではありません。ここでは、幅をより狭い値に変更したい場合にのみ言及します。
これらのシステムでは、次のように対話型シェルのエイリアスを定義できます。
alias man='man -O width=72'
...またはオーバーロードされた名前を持つシェル関数man
:
man () {
command man -O width=72 "$@"
}
貧しい人々の選択は、テキストをfold
パイピングする前に次のようにパイピングすることですless
。
man ... | fold -s -w 72 | less
これにより、 man
出力を表示する前の列72または最後のスペースの出力が縮小されます。標準のUnixユーティリティです。less
fold
パイプは、man
次のようにオーバーロードされた名前のシェル関数として表すことができます。
man () {
command man "$@" | fold -s -w 72 | less
}
標準ではありませんが、このユーティリティは一般的で、おそらくfmt
長い行を折りたたむユーティリティよりも優れた作業を行います。fold
上記のパイプラインのものを交換してみてくださいfold -s -w 72
。fmt -w 72