一致するのではなく、ctrl + rクエリをそのまま実行するにはどうすればよいですか?

一致するのではなく、ctrl + rクエリをそのまま実行するにはどうすればよいですか?

場合によっては、シェルでcmdを逆検索すると正確な一致が見つからず、検索クエリをそのまま実行したい場合があります。

bash / zshと友達が入力を捨てずにこれを実行する方法はありますか?

答え1

zshでは変数を使用できますLASTSEARCHそしてLASTABORTEDSEARCH。エディタウィジェット内でのみ使用できます。

エディタウィジェットはエディタウィジェットで作られた機能で、zle -Nこれはキーバインディングによって呼び出されます。 (キーバインディングは次のとおりです。ESC-x—vi  :モードで。 )

たとえば、次のコードバインディングは、ESC-s現在のコマンドラインを最後の増分検索に置き換えます。増分検索中にキーを押すと、ESC-s検索は進行中です(中断されます)。

function set-buffer-last-search { LBUFFER=$LASTSEARCH; RBUFFER=; }
zle -N set-buffer-last-search
bindkey '\es' set-buffer-last-search

関連情報