我非常喜欢Vim,并且定义了许多按键映射,以使编辑文本更流畅,更轻松。而且由于zsh提示符具有vi模式,该模式使用vi的默认配置,所以我想知道是否可以告诉zsh使用在.vimrc中配置的vi。
想法,有人吗?
答案 0 :(得分:1)
许多应用程序提供“ vi映射”;通常,它们仅限于通用导航(hjkl
)和简单的编辑操作(<C-w>
,<C-u>
)。这些应用程序实际上并没有运行vi / Vim。他们只是提供类似的键绑定。我所见过的最全面的支持是针对IDE之类的“ vi插件”,例如通过:map
命令提供自定义功能的Eclipse。但是,所有这些都不符合~/.vimrc
中可用的完整Vimscript语法以及您可能已安装的所有插件的作用。
正如其他人已经评论过的那样,您可以实现的最好方法是通过定义相应的zsh键绑定(并在您每次修改或添加一些键时保持同步)来从~/.vimrc
重构简单的重新映射。
另一种恢复编辑效率的方法实际上是使用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的启动和退出会带来一些延迟和键入的附加键,因此只有在对更长的命令行进行更复杂的编辑时才值得。