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

问题描述 投票:2回答:1

我非常喜欢Vim,并定义了很多关键映射,使编辑文本更流畅,更容易。并且因为zsh提示符有一个vi模式,它使用vi的默认配置,我想知道是否可以告诉zsh使用在一个.vimrc中配置的vi。

想法,有人吗?

vim command-prompt zsh vi
1个回答
1
投票

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

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

Alternative: Launch external 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的启动和退出会引入一些延迟和额外的键入键,所以只有更复杂的命令行编辑才值得。

© www.soinside.com 2019 - 2024. All rights reserved.