如何按原样执行 ctrl+r 查询而不是匹配?

如何按原样执行 ctrl+r 查询而不是匹配?

有时,当我在 shell 中反向搜索 cmd 时,我找不到正确的匹配项,只想按原样执行搜索查询。

bash/zsh 和朋友有没有办法在不丢弃输入的情况下执行它?

答案1

在 zsh 中,您可以使用变量LASTSEARCHLASTABORTEDSEARCH。它们仅在编辑器小部件内可用。

编辑器小部件是一个已制作成编辑器小部件的功能,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

相关内容