无法在Zsh中使用类似Bash的C-x-e功能

39

我在Bash中找到了以下命令,Zsh中没有相同的按钮,该命令来源于这个帖子

Ctrl-x-e

它将当前输入在终端中打开到编辑器。

如何在Zsh中使用相同的命令?

2个回答

49

我正在使用VIM模式。基本上,按ESC-v(或者如果已经在命令模式下,则直接按v)可以打开终端。它的设置方式如下:

autoload -U edit-command-line
zle -N edit-command-line
bindkey -M vicmd v edit-command-line

以下是如何在emacs模式下设置它:

autoload edit-command-line
zle -N edit-command-line
bindkey '^Xe' edit-command-line

使用“bindkey -e”启用Emacs风格,或使用“bindkey -v”启用Vi风格。

Emacs模式的命令是Ctrl-X-e吗?在终端中它对我不起作用。 - Léo Léopold Hertz 준영
3
按下 Ctrl-x,然后按 e 键,即可完成操作。如果你想要的是 Ctrl-x ctrl-e,那么可以将 '^Xe' 更改为 '^X^e'。请确保启用 Emacs 风格(虽然这是 zsh 的默认设置),只需在一行中输入 bindkey -e 即可。 - anon
@emg-2:它可以了。谢谢!我的 shell 脚本已经损坏,但 Zsh 没有发出任何警报。在 Bash 中我得到了一条警报。 - Léo Léopold Hertz 준영
第一和第二行代码的作用是什么?如果我已经设置了其他绑定键,我能否只使用“bindkey -M vicmd v edit-command-line”命令? - Ehtesh Choudhury
这真是太美味了!感谢您教会我的zsh如何做我从股票bash时代开始就最想念的事情。 - codekoala

0
如果您使用Sublime作为编辑器,请确保在.zshrc.bashrc文件中添加了-w选项,否则它可能无法正常工作。
export EDITOR='subl -w'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接