Linuxでページにman
行番号を追加するには?info
マンページを閲覧するために行番号を使用したいと思います。マニュアルページをファイルに書き込んでVimで開くこともできますが、より良い方法はありますか?
答え1
からman man
:
-P pager, --pager=pager
Specify which output pager to use. By default, man uses less
-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 com-
mands; if you need that, use a wrapper script, which may take
the file to display either as an argument or on standard input.
less
したがって、行番号フラグを使用してポケットベルを指定できます-N
。
man -P "less -N"
問題は、man
ページ幅が端末の列数に基づいて設定されますが、行番号に応じて行の先頭に追加のless
文字(スペース+行番号)が追加されるため、出力形式は次のとおりです。ちょっと厄介です。
$ man -P "less -N" man
結果:
1 MAN(1) Manual pager utils M
1 AN(1)
2
3
4
5 NAME
6 man - an interface to the on-line reference manuals
7
8 SYNOPSIS
9 man [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding
9 ] [-L
10 locale] [-m system[,...]] [-M path] [-S list] [-e extension] [-
10 i|-I]
11 [--regex|--wildcard] [--names-only] [-a] [-u] [--no-subpages]
11 [-P
12 pager] [-r prompt] [-7] [-E encoding] [--no-hyphenation] [--no-jus
12 tifi-
13 cation] [-p string] [-t] [-T[device]] [-H[browser]] [-X[dpi]]
13 [-Z]
14 [[section] page ...] ...
したがって、環境変数を変更して、数字からMANWIDTH
7文字(行プレフィックスの幅)を減算して、ページの幅をより短くフォーマットすることができます。less
COLUMNS
man
$ MANWIDTH=$(( $COLUMNS -7 )) man -P "less -N" man
結果:
1 MAN(1) Manual pager utils MAN(1)
2
3
4
5 NAME
6 man - an interface to the on-line reference manuals
7
8 SYNOPSIS
9 man [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L
10 locale] [-m system[,...]] [-M path] [-S list] [-e extension]
11 [-i|-I] [--regex|--wildcard] [--names-only] [-a] [-u] [--no-sub-
12 pages] [-P pager] [-r prompt] [-7] [-E encoding] [--no-hyphen-
13 ation] [--no-justification] [-p string] [-t] [-T[device]]
14 [-H[browser]] [-X[dpi]] [-Z] [[section] page ...] ...
答え2
マンページを開き、クリックして-N
入力します。 (-、次ShiftN、次Enter)
例えばman man
::
1 MAN(1) Manual pager utils MA 2
3 NAME
4 man - an interface to the system reference manuals
5
6 SYNOPSIS
7 man [man options] [[section] page ...] ...
8 man -k [apropos options] regexp ...
9 man -K [man options] [section] term ...
10 man -f [whatis options] page ...
11 man -l [man options] file ...
12 man -w|-W [man options] page ...
行番号の削除-n Enter
行の重複を避けるためにMANWIDTH
変数を設定してください。LESS
変数は-N
行番号を印刷するように設定されます。
MANWIDTH=100 LESS=-N man man
答え3
man
長い行を出力し、同様のポケットベルがあるとしますless
。
特定のマニュアルページ出力の行番号は、man
実行されるウィンドウの幅によって行が変わるため、異なる場合があります。
次のようにしてみてください。
COLUMNS=72 man --pager='cat' -s 3 printf | nl -ba > Man.printf
fold
出力でこのコマンドを使用することは、man
ttyに書き込まなくてもCOLUMNS変数を使用して行を区切ってから、すべてのfold
単語間隔を単一のスペースにリセットするため、見苦しくなります。
-s 3
セクション番号とページ名をパラメータに入れるために、これをスクリプトにラップできます。
答え4
他の人はすでに効果的なソリューションを提供しているので、代替を追加したいと思いました。
次の2つのパッケージをインストールします。
後者は次のアプリケーションをインストールします。batman
、マニュアルページに色を追加するだけでなく、行番号も追加します。
以下は出力の例です。
(私が入力した命令は非常に簡単ですbatman emerge
。)
ご覧batman
のとおり、表示幅は自動的に処理されます。