ZSH履歴の一致を循環-増分パターン-検索-後方


10

最近history-incremental-pattern-search-backward、検索のパターンが可能になるため、履歴検索を使用するように切り替えました。これが私のセットアップ方法です.zshrc

bindkey -M vicmd '/' history-incremental-pattern-search-backward

これはうまくいきますが、検索メニューから次の試合に行く方法がわかりません。

% cat foobarbaz.txt
bck-i-search: f*baz

これを行うための鍵はありますか?

回答:


12

最後に正しい呪文を見つけた。挿入モードでパターン検索をマップする必要があります。これは私が欠けていた部分でした:

# Search backwards and forwards with a pattern
bindkey -M vicmd '/' history-incremental-pattern-search-backward
bindkey -M vicmd '?' history-incremental-pattern-search-forward

# set up for insert mode too
bindkey -M viins '^R' history-incremental-pattern-search-backward
bindkey -M viins '^F' history-incremental-pattern-search-forward

^B挿入モードで後方検索に使用したはずですが、別のものにマップしました。さて、今度はマッチ^R^F循環させます。


-Mコマンドは何をしますか?私の場合であってもなくて-Mキーワードこれは素晴らしい作品...
alpha_989

-M keymapへの結合を適用するためにキーマップはbindkeyを伝えます。挿入モードとコマンドモードの両方に設定しました。
クレイトロン2018

説明をありがとう。私の場合、私はちょうど持っていますbindkey '^R' history-incremental-pattern-search-backward、そしてそれはうまくいきます。/zshのviノーマルモデルでもdefault コマンドを使用しています。コマンド履歴を検索でき、コマンドが見つかったら、コマンドラインでそれを提供します。その後、必要に応じて最後のコマンドを変更できます。
alpha_989

一方、を使用する'^R' history-incremental-pattern-search-backwardと、検索文字列に一致する最後のコマンドに移動します。しかし、実際にコマンドを編集する方法を見つけていません。増分パターン検索で検索文字列に一致する適切なコマンドを見つけた後、押してコマンドを編集できるようにする特定のキーの組み合わせはありますか?
alpha_989

8

zshzlezsh 4.3.10のマニュアルページによると、デフォルトではキーはバインドされていません。isearchマップにバインディングを追加する必要があり、使用できるウィジェットはごくわずかです。たとえば、次のことができます。

bindkey -M isearch '^R' history-incremental-search-backward
bindkey -M isearch '^S' history-incremental-search-forward

bindkey -lisearchマッピングは表示されません
クレイトロン

@claytron:バージョンの問題である必要があります:isearch4.3.10の新機能history-incremental-pattern-search-backwardですが、4.3.7に表示されます(変更ログを正しく読んだ場合)。
Gilles「SO- 10:10

4.3.10を使用していますが、なぜそこにないのかわかりません。挿入モードのバインディングの使用は私にとってもうまくいきました。
クレイトロン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.