有没有什么有效的方法来管理多套 Vim 配置?
我需要这个,因为我需要为不同类型的工作设置不同的配置。这在很大程度上取决于我是在写文本还是用 Python 编程。自动缩进、语法高亮、组合键功能等都需要有所不同。
想象一下,如果你有多个.vimrc
文件,你只需要更改你的 Vim模式(通过快捷方式)在它们之间切换。这就是我想要的,但我宁愿把它们都放在一个.vimrc
文件中(我会把它们组织得很好,我使用折叠)。文件的不同部分将对应于不同的配置集。
我已经在 Google 上搜索过,但找不到解决方案(可能是由于搜索查询措辞不当)。
答案1
许多设置(如缩进)都与文件类型无论如何。你也可以定义缓冲区局部映射和命令,因此您的几个需求只需要一致使用内置抽象(阅读:help ftplugin
)。
对于全局内容,我建议将差异保持在最低限度,因为这可以防止形成肌肉记忆和“不假思索”地进行高效编辑。有几种可能的实现方式可以在启动时将区分标志传递给 Vim:
.vimrc
通过分开$ vim -u {vimrc}
。但是,由于您希望将所有内容保存在一个文件中,因此更好的做法是:- 通过变量:
$ vim --cmd "let pluginmode='python'"
,然后在你的 .vimrc 中使用if g:pluginmode ==# 'python' ... else ...
。 - 通过环境变量
$ PLUGINMODE=python vim
,然后使用if $PLUGINMODE ...
插件
许多插件使用规范g:loaded_{pluginname}
包含保护,您可以使用它在插件中启用/禁用它们~/.vimrc
。此外,如果您使用插件管理器,您可能可以将Bundle ...
命令放在条件语句中。
动态模式切换
以上所有内容都假设您退出并重新启动 Vim 以更改模式。如果您想即时执行此操作,则需要付出更多努力,并且很难完全摆脱以前的命令/映射。