zsh:插入上一个命令的最后一个参数

zsh:插入上一个命令的最后一个参数

我最近从 bash 切换到 zsh。在 bash 中(在 vi 模式下)键入新命令时,如果我键入 Esc-_(转义下划线),它将插入上一个命令的最后一个参数。我想在 zsh 中做同样的事情。 (目前,它只是对我发出嘟嘟声。)我怎样才能得到我想要的东西?

答案1

ESC-_更像是emacs-style 按键绑定,但如果您想将其也添加到vi-style 插入模式,您可以这样做:

bindkey -M viins '\e_' insert-last-word

(最好的~/.zshrc)。

如果您还想_在 cmd 模式下在光标后插入最后一个单词并切换到插入模式,就像bashksh93似乎正在做的那样(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忽略数字参数)。

相关内容