如何在 vim 中映射调用时保持模式的命令?

如何在 vim 中映射调用时保持模式的命令?

我在通过 Mac OS X 的终端应用程序 ssh 进入的 Linux VM 上运行 vim,我想将其配置为使用我的箭头键(以及其他键)执行有用的操作。

例如,我想要optionleft光标向后移动一个单词,类似于在其他 Mac 应用程序中的工作方式。

在正常模式下,这很容易;我可以简单地将序列映射到b。但是当我处于插入模式时,我想停留在插入模式(即,将序列映射到<c-o>b

在我的 .vimrc` 文件中,我有以下几行:

nmap ^[[xol~ b
imap ^[[xol~ <c-o>b

当我按下-^[[xol~时,我配置终端发送的字符序列在哪里。optionleft

这很有效,但是它变得非常繁琐,特别是当我有近二十几个命令需要映射时。

有一个更好的方法吗?

答案1

是的,有更好的方法。下载并安装 MacVim,它默认带有许多 Mac OS X 键绑定,如果您在 .vimrc 中添加一个简单的选项(我手头没有),还可以添加更多。此外,它支持的颜色比 Terminal.app 多,并且与操作系统的集成度比 CLI Vim 更高。

在我看来,你执着于在终端中(在所有地方)使用 Vim 中的 Mac OS X 键绑定并停留在 INSERT 模式,这对本来就很陡峭的学习曲线来说是一个相当大的障碍。你应该在完成实际文本插入后立即离开 INSERT 模式,并以更高效的方式使用 Vim 的惊人功能。

如果您想要一个非模式 CLI 编辑器,您可以尝试 emacs、joe 或 nano,它们的排名从超级强大到非常简单。如果您想要一个非模式 GUI 编辑器,您可以尝试 TextMate 或 Sublime Editor,但它们都无法与 Vim 相比。

答案2

为每种模式创建单独的映射似乎可以解决问题。也许这是最好的方法。

相关内容