![zsh:插入上一个命令的最后一个参数](https://linux22.com/image/165909/zsh%EF%BC%9A%E6%8F%92%E5%85%A5%E4%B8%8A%E4%B8%80%E4%B8%AA%E5%91%BD%E4%BB%A4%E7%9A%84%E6%9C%80%E5%90%8E%E4%B8%80%E4%B8%AA%E5%8F%82%E6%95%B0.png)
我最近从 bash 切换到 zsh。在 bash 中(在 vi 模式下)键入新命令时,如果我键入 Esc-_(转义下划线),它将插入上一个命令的最后一个参数。我想在 zsh 中做同样的事情。 (目前,它只是对我发出嘟嘟声。)我怎样才能得到我想要的东西?
答案1
ESC-_
更像是emacs
-style 按键绑定,但如果您想将其也添加到vi
-style 插入模式,您可以这样做:
bindkey -M viins '\e_' insert-last-word
(最好的~/.zshrc
)。
如果您还想_
在 cmd 模式下在光标后插入最后一个单词并切换到插入模式,就像bash
和ksh93
似乎正在做的那样(vi-yank-arg
中未记录的小部件bash
),您可以这样做:
vi-yank-arg() {
NUMERIC=1 zle .vi-add-next
zle .insert-last-word
}
zle -N vi-yank-arg
bindkey -M vicmd _ vi-yank-arg
就像在emacs
模式中一样,它会附加上一个命令的最后一个单词($NUMERIC
并且bash
似乎ksh93
忽略数字参数)。