在 bash 中,使用 vi 模式,如果我点击Esc, v,我当前的命令行将在 指定的编辑器中打开,$EDITOR
并且我可以在“保存”要返回到 shell 并执行的命令之前全屏编辑它。
如何在 zsh 中实现类似的行为?尽管设置了环境变量,但在命令模式下点击v会发出铃声,但没有明显效果。EDITOR
答案1
如果您更喜欢 Emacs 键绑定:
autoload -z edit-command-line
zle -N edit-command-line
bindkey "^X^E" edit-command-line
答案2
见于.edit-command-line
zshcontrib
bindkey -M vicmd v edit-command-line
答案3
您可以使用fc
编辑历史记录中的最后一个命令。这与编辑相同的命令不同,但快速按下 Enter 键会使当前命令成为历史上的最后一个命令。
答案4
如果您像我一样想要模拟 oh-my-zsh 行为,即在正常模式下按“vv”时在 vim 中打开当前行,请使用以下命令:
autoload -Uz edit-command-line
zle -N edit-command-line
bindkey -M vicmd 'vv' edit-command-line