Bash的vim模式,不是vi。

28

当我发现类似 vi 的 bash 编辑模式时,我很着迷。通过发出set -o vi命令可以轻松地切换它。但是是否有任何方法可以切换到 vim-like 模式呢?

我指的是当您处于 vi-like 模式时,您可以按下 v 键并在完全功能的 vi 编辑器窗口中编辑您的命令,但是我想知道如何强制 bash 启动 vim 编辑器而不是 vi,因为 vim 提供了更多优点(可视化选择,附加命令等)?

2个回答

29
如果设置了EDITOR变量,在bash中可以按Ctrl-x Ctrl-e编辑当前命令行,使用vim等编辑器。在默认情况下,ctrl-x ctrl-e是emacs模式的命令行编辑。如果您已将其设置为vi模式,则可以按照您所说的操作,按v键。如果您想在vim中打开cmd行,则必须设置EDITOR变量(例如在您的.bashrc文件中)。个人而言,我会在emacs模式下编辑命令行,尽管vim是我的主要(也是唯一的)编辑器。

14
+1 秘诀:你可以在 Vim 中使用 <c-x><c-f> 快捷键来自动补全文件名。 - Peter Rincker
你如何在退出编辑器时不执行命令而退出? - trusktr
@trusktr 在这里(zsh),我保存并退出(:wq),命令将被输入到命令行而不会被执行,等待我的“Enter”键。 - Kent
@Kent 听起来不错。Bash 在 :wq 之后执行它。 - trusktr

11
在你的.bashrc文件中,加入以下行:
export VISUAL=/usr/bin/vim

如果你希望在其他很多场合中也能使用vim,比如在git中,你还应该设置EDITOR

export EDITOR=/usr/bin/vim

3
当然,这仅适用于使用 vC-x C-e 调用的编辑器。它不允许你在 bash shell 提示符上使用额外的 vim 特定按键绑定。 - that other guy
@thatotherguy,我认为OP特别询问了如何在按下“v”时强制bash启动“vim”而不是“vi”。 - merlin2011

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