マニュアルページを検索する場合、検索では大文字と小文字が区別されますが、大文字のみが対象になります。たとえば、x
はx
とX
に一致しますが、X
はx
にのみ一致します。これは man-db
バージョンのman。デフォルトでFedora派生システムで使用され、他のシステムでも使用できます。 man man
デフォルトのポケットベルはless -s
。 $LESS
は環境で定義されていません、私の$PAGER
はless
であり、エイリアスはありません。
これは、less
を単独で呼び出したときの動作ではありません。
x
を使用するときに、小文字のx
を小文字のman
のみに一致させる方法はありますか?
男はレスを呼んでいます。男性レベルでの唯一の制御は、Lessを呼び出すオプションを選択することです。
Lessの検索の大文字と小文字の区別は、2つのオプションによって制御されます。
-I
_が有効な場合、検索では大文字と小文字が区別されません。a
またはA
のいずれかを使用して、a
とA
の両方を照合できます。 。-i
_が有効であるが、_-I
_が有効でない場合、検索では大文字と小文字は区別されませんが、パターンに大文字が含まれていない場合に限ります。_-I
_をLessのデフォルトオプションにすると、manページでもすべての検索で大文字と小文字が区別されなくなります。
Man-dbは、LESS
環境変数を介して追加のオプションをページャーに渡します。Lessはコマンドラインオプションと同じように解釈します。設定はコンパイル時にハードコードされ、_-i
_で始まります。 (Man-db 2.6.2の時点で値は_"-ix8RmPm%s$PM%s$"
_です。_P…$
_の部分はプロンプト文字列です。)
Manページでの検索で大文字と小文字を区別したくない場合、または常に大文字と小文字を区別しないようにしたい場合は、man-db自体でこれを構成する方法はありません。 Man-dbがコンテンツを現在の値の前に付加するため、man
のエイリアスまたはLESS
環境変数を操作するラッパースクリプトを作成できます。
_alias man='LESS="$LESS -I" man'
_
_-i
_オプションをオフにして、manページでデフォルトで検索で常に大文字と小文字を区別するようにするには:
_alias man='LESS="$LESS -+i" man'
_
LESS
環境変数を設定してMANLESS
に別の値をハードコーディングすることもできますが、そうすると、man
はLESS
を次のように設定します。 MANLESS
の値を指定すると、カスタムタイトル行(「マニュアルページfoo(42)
」)やその他の機能(特に、太字と下線の書式設定には_-R
_を含めるようにしてください)が失われます。 )。
これは、less
の-i
(コマンドラインスイッチ)の「大文字と小文字を区別しない」モードの仕組みです(つまり、大文字の場合は引き続き区別されます)。 Gillesが指摘しているように、これを使用するとman-dbにコンパイルされます。
Gilles AnswerWRTでエイリアス+-i
またはカスタムMANLESS
を設定する方法に加えて、manページが-i
で開かれると、厳密な大文字と小文字の一致を切り替えることができます(これにより、オンとオフを切り替えます); 「検索ではケースが重要です」という小さなメッセージが表示され、x
はx
にのみ一致し、X
はX
にのみ一致します。
Man-dbのman
には-I
スイッチがありますが、これはmanページの検索に適用されます。たとえば、デフォルトではman BASH
はbashマニュアルページを提供しますが、man -I BASH
はしません。
「x
を使用するときに、小文字のx
を小文字のman
のみに一致させる方法はありますか?」
これが1つの方法です
man -Tascii manpage |less
ひどい詳細はわかりませんが、roff
処理はマークアップを実行しており、ページャーはマークアップされたテキストを表示しているにもかかわらず、マークアップされていないテキストと一致しているようです。
非常に紛らわしいですが、nroff
の第一人者がパイプラインを説明できることを願っています。