如何在ZSH中的全屏编辑器中编辑命令行?

如何在ZSH中的全屏编辑器中编辑命令行?

在 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-linezshcontrib

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

相关内容