manの列数を制限します(またはそれ以下)。

manの列数を制限します(またはそれ以下)。

私はしばしばコンソール(GUIなし)でマニュアルページを使用しますが、私が使用しているワイドスクリーンにはテキストモードに多くの列があります。行が長すぎて読みにくいです。

manless使用される列数を制限する方法(または内部で使用する方法)はありますか?

答え1

動的にフォーマットされたマニュアルを含むLinuxシステムを使用していると仮定するか、COLUMNS環境MANWIDTH変数を目的の線幅に設定します。

COLUMNS=72 man ...

MANWIDTHシェルの起動ファイルに適切な値を設定したい場合がありますが、COLUMNS他の多くのプログラムでもこの値を使用しますman

export MANWIDTH=72

使用しているシステムでmandocman-O width=7272使用したい幅のあるオプションと一緒に使用されます。システムは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ユーティリティです。lessfold

パイプは、man次のようにオーバーロードされた名前のシェル関数として表すことができます。

man () {
    command man "$@" | fold -s -w 72 | less
}

標準ではありませんが、このユーティリティは一般的で、おそらくfmt長い行を折りたたむユーティリティよりも優れた作業を行います。fold上記のパイプラインのものを交換してみてくださいfold -s -w 72fmt -w 72

関連情報