有时,当我在 shell 中反向搜索 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