2013-01-09 44 views
17

我正在尝试更新我的Vim配置脚本。在我的~/.vim目录中有许多子目录,我不确定它们所做的具体细节,也不知道为什么有一些似乎是多余的。请解释Vim的配置目录层次结构

这里是我的~/.vim目录树看起来像

|-after 
|---ftplugin 
|---syntax 
|-autoload 
|-compiler 
|-doc 
|-ftplugin 
|---latex-suite 
|-----dictionaries 
|-----macros 
|-----packages 
|-----templates 
|---python 
|-indent 
|-plugin 
|-spell 
|-syntax 

现在的具体问题。

  1. plugin vs ftplugin
  2. pluginautoload有什么区别?
  3. 什么时候应该把东西放在after/...而不是直接在~/.vim下的目录中?

回答

16

无论进入plugin每当VIM开始,而你把ftplugin的是仅加载它对应于(所以如果你有一个文件夹中有名为Python中的所有文件的特定文件类型也将被加载时加载你打开一个python文件。 在autoload你应该有对应的plugin定义的脚本功能。当第一次叫这里的功能才会被加载。

after你应该把你想要设置从正常的插件加载中改变。 作为一个例子假设你喜欢一些乳胶插件给你的设置,但它重新定义了你在.vimrc中的映射。您可以使用自动命令或通过将正确的定义放在后面来恢复。

+1

+1;简洁和正确的总结。 –

+0

谢谢@skeept。如果我理解正确,将主插件放到'plugin'或'ftplugin'中,支持'autoload'中的内容以及其他内容''after'后面的内容。正确? – jlconlin

+1

如果你正在做一些适用于特定文件类型的东西,你应该使用ftplugin。对于适用于插入所有文件类型的东西,但如果可能的话尝试加载它在自动加载,是的任何后在覆盖一切。我认为Eduan在答案中提供的链接是一个很好的资源,你应该阅读它。 – skeept

4

所有这些目录都是runtimepath的一部分。尝试:h runtimepath它将您链接到你的答案:

  1. 检查:h write-plugin
  2. 检查:h autoload-functions
  3. after/...脚本最后执行,这样他们就可以覆盖前面的脚本的设置。你可以在:h runtimepath了解更多。