如何使zsh提示vi模式使用我的.vimrc?

时间:2018-08-30 16:10:33

标签: vim command-prompt zsh vi

我非常喜欢Vim,并且定义了许多按键映射,以使编辑文本更流畅,更轻松。而且由于zsh提示符具有vi模式,该模式使用vi的默认配置,所以我想知道是否可以告诉zsh使用在.vimrc中配置的vi。

想法,有人吗?

1 个答案:

答案 0 :(得分:1)

许多应用程序提供“ vi映射”;通常,它们仅限于通用导航(hjkl)和简单的编辑操作(<C-w><C-u>)。这些应用程序实际上并没有运行vi / Vim。他们只是提供类似的键绑定。我所见过的最全面的支持是针对IDE之类的“ vi插件”,例如通过:map命令提供自定义功能的Eclipse。但是,所有这些都不符合~/.vimrc中可用的完整Vimscript语法以及您可能已安装的所有插件的作用。

正如其他人已经评论过的那样,您可以实现的最好方法是通过定义相应的zsh键绑定(并在您每次修改或添加一些键时保持同步)来从~/.vimrc重构简单的重新映射。

替代:启动外部Vim

另一种恢复编辑效率的方法实际上是使用Vim来编辑命令行。我不太了解zsh,但是Bash为上一个命令行提供了fc命令,可以通过set -o vi编辑当前命令(在<Esc>v模式下),并且为插入模式提供到edit-and-execute-command的绑定,将在~/.inputrc中进行配置:

$if Bash
# Ctrl-F        Invoke the editor on the current command line.
#           Like c_CTRL-F in Vim.
#           Related: fc does the same for the _previous_ command.
Control-f: edit-and-execute-command
$endif

我想至少其中一些选项在zsh中也可用。它们唯一的缺点是Vim的启动和退出会带来一些延迟和键入的附加键,因此只有在对更长的命令行进行更复杂的编辑时才值得。