zsh:^ Rを押すと、検索入力を既存の行の内容で埋めますか?

zsh:^ Rを押すと、検索入力を既存の行の内容で埋めますか?

.zshrc設定が与えられたら:

bindkey -v
bindkey "^R" history-incremental-pattern-search-backward

空のプロンプトに入力すると、foo<^R>bar最も最近一致したコマンドが検索されますbar

^Rに既存のプロンプト入力を使用させるにはどうすればよいですか?つまり、一致させたいキーの順序ですfoobar

ベストアンサー1

^Rにバインドするとhistory-beginning-search-backward近づきますが、パターン検索ではありません。

^R行の現在の内容を初期検索パターンとして追加する関数にバインドできます。

history-incremental-pattern-search-backward-from-line () {
  zle history-incremental-pattern-search-backward $BUFFER
}
zle -N history-incremental-pattern-search-backward-from-line
bindkey -M viins "^R" history-incremental-pattern-search-backward-from-line
bindkey -M vicmd "^R" history-incremental-pattern-search-backward-from-line
bindkey -M isearch "^R" history-incremental-pattern-search-backward

isearch(マップにバインドする必要があります。そうしないと、現在の^R検索を繰り返すことなく、これまでに見つかった行に基づいて繰り返し検索が実行されます。)

おすすめ記事