为子文件夹和项目定制 vimrc

Ban*_*uin 5 vim directory configuration vimrc

我在许多不同的环境中使用 vim ......实际上,可能大多数人都这样做:有配置文件的编辑、编程、文档、电子邮件等。

我经常发现自己希望有一种工具可以让我将 vimrc 放入目录中,每当我从该目录中启动 vim 时,也会读取本地 vimrc 以进行特定于上下文的适应。例如:

  • 一个 vimrc in etc 隐式设置/释放锁并在写入之前/写入时创建备份
  • 我的每个编程项目都有一个 vimrc,用于(例如)项目特定的缩进和常用的宏,例如 Debian 补丁签名
  • 每个文档目录中的 vimrc 用于文档语言特定设置(拼写检查!)

这不仅对我自己有帮助,而且使我/我们能够在所描述的每种情况下在许多用户之间共享项目和任务特定的设置,并根据我们希望应用的上下文进行配置。

这对我来说似乎非常明智,并且不太难拥有/实施。有人知道vim插件或有一个配置来尊重在工作目录中找到的vimrc文件吗?

Ing*_*kat 6

中央配置

如果可以集中配置本地异常,您可以将此类 autocmds 放入您的~/.vimrc

:autocmd BufRead,BufNewFile /path/to/dir/* setlocal ts=4 sw=4
Run Code Online (Sandbox Code Playgroud)

另一方面,如果您希望将特定配置与项目一起存储(并且不想通过modelines将其嵌入所有文件中),您有以下两个选项:

具有内置功能的本地配置

如果你总是从项目根目录启动 Vim,内置的

:set exrc
Run Code Online (Sandbox Code Playgroud)

允许.vimrc从当前目录读取文件。您可以将:set ts=4 sw=4命令放在那里。

通过插件本地配置

否则,您需要插件的帮助;vim.org上有几个;我可以推荐localrc 插件,它甚至允许本地文件类型特定的配置。

请注意,从文件系统读取配置具有安全隐患;你可能想要:set secure