有效地管理 Vim 设置

有效地管理 Vim 设置

有没有什么有效的方法来管理多套 Vim 配置?

我需要这个,因为我需要为不同类型的工作设置不同的配置。这在很大程度上取决于我是在写文本还是用 Python 编程。自动缩进、语法高亮、组合键功能等都需要有所不同。

想象一下,如果你有多个.vimrc文件,你只需要更改你的 Vim模式(通过快捷方式)在它们之间切换。这就是我想要的,但我宁愿把它们都放在一个.vimrc文件中(我会把它们组织得很好,我使用折叠)。文件的不同部分将对应于不同的配置集。

我已经在 Google 上搜索过,但找不到解决方案(可能是由于搜索查询措辞不当)。

答案1

许多设置(如缩进)都与文件类型无论如何。你也可以定义缓冲区局部映射和命令,因此您的几个需求只需要一致使用内置抽象(阅读:help ftplugin)。

对于全局内容,我建议将差异保持在最低限度,因为这可以防止形成肌肉记忆和“不假思索”地进行高效编辑。有几种可能的实现方式可以在启动时将区分标志传递给 Vim:

  1. .vimrc通过分开$ vim -u {vimrc}。但是,由于您希望将所有内容保存在一个文件中,因此更好的做法是:
  2. 通过变量:$ vim --cmd "let pluginmode='python'",然后在你的 .vimrc 中使用if g:pluginmode ==# 'python' ... else ...
  3. 通过环境变量$ PLUGINMODE=python vim,然后使用if $PLUGINMODE ...

插件

许多插件使用规范g:loaded_{pluginname}包含保护,您可以使用它在插件中启用/禁用它们~/.vimrc。此外,如果您使用插件管理器,您可能可以将Bundle ...命令放在条件语句中。

动态模式切换

以上所有内容都假设您退出并重新启动 Vim 以更改模式。如果您想即时执行此操作,则需要付出更多努力,并且很难完全摆脱以前的命令/映射。

相关内容