web-dev-qa-db-ja.com

manページで現在の検索一致を強調表示する

マニュアルページを開くと、たとえばman chmodそして私は/ページ内の文字列を検索すると、一致するすべての文字列が強調表示されます。

nまたはNを押すと、次/前の一致する文字列にフォーカスされます。

一致するすべての文字列とは異なる方法で現在の一致(フォーカスのあるもの)を強調表示する方法はありますか?

5
Leonardo

これはMANPAGERを介して制御されます。

Manual pagesのデフォルトはless -ispagerです。

現在の選択を強調表示するだけです。

man -P "less -isg" <command>

または、MANPAGER変数を設定します。

export MANPAGER="less -isg"

カーソルが強調表示されている場所でvimを使用して、現在の選択が異なって表示されるようにすることもできます。

 man -P "sh -c \"col -b | vim -c 'set ft=man ts=8 nomod nolist nonu' \
    -c 'nnoremap i <nop>' \
    -c 'nnoremap <Space> <C-f>' \
    -c 'noremap q :quit<CR>' -\"" <command>

Zameer Manjiから取得

  1. ft = manは、manページの色付けを有効にします。
  2. ts = 8は、タブ文字の幅の一致を少なくします。
  3. nomodは、終了しようとしたときに変更の警告を削除します。
  4. nonuは行番号を削除します。
  5. nolistはリスト文字を無効にするため、末尾の空白や余分なタブは強調表示されません。
  6. nnoremap iは、マニュアルページを表示するときに誤って挿入モードに入らないようにします。

さらに、スペースを使用してページ付けし、quitqで使用する独自のオプション

-c 'nnoremap <Space> <C-f>'
-c 'noremap q :quit<CR>'

デフォルトのプロファイルに追加して、デフォルトのポケットベルとして設定します:

export MANPAGER="sh -c \"col -b | vim -c 'set ft=man ts=8 nomod nolist nonu' \
    -c 'nnoremap i <nop>' \
    -c 'nnoremap <Space> <C-f>' \
    -c 'noremap q :quit<CR>' -\""
5
geedoubleya