~/.inputrc ファイルがこれらのキーを奇妙なものにマッピングしたのではないでしょうか? または、検索履歴の仕組みを完全に理解していません。
新たに始めましょう: これらのキーを bindkey で再マッピングします:
bindkey -M vicmd "?" history-incremental-search-backward
bindkey -M vicmd "/" history-incremental-search-forward
ここで、'esc' (vi ノーマル モードの場合) と '?' を押すと、bck-i-search コマンドが表示されます。
%user@hostname: vim /etx/apache2/sites-enabled/defaul[t]
bck-i-search:
この時点で、「etx」など、検索したいものを入力します。そして、カーソルはこの行のその位置に移動します。注: この現在の行でそのパターンが見つからない場合、履歴の検索が続行されます。この動作は機能と見なされます。
繰り返し検索できないことに気付くかもしれません (vim で 'N' を押すなど)。この場合、いくつかの isearch バインディングを追加します。
bindkey -M isearch '^N' history-incremental-search-backward
bindkey -M isearch '^R' history-incremental-search-forward
ここで、control-N を押すと検索が繰り返され、control-S を押すと繰り返される検索の方向が逆になります (注: このキーバインドのデフォルトの順序は順方向から逆方向に逆になっています。 )。
つまり、現在の行を履歴の「先頭」として扱います。vicmd '/' または '?' の使用 その履歴全体を検索します。「?」は上から下へ検索し、'/' は履歴内で現在カーソルが置かれている場所から '上' に向かって検索します。これについて考える別の方法は、履歴を 1 つの大きなファイルとして想像することです。現在の行はそのファイルの一番下にあります。それが理解するのに役立つ場合は、「?」と感じるかもしれません。'/' より適切です。