请解释Vim的配置目录层次结构

jlc*_*lin 21 vim vim-plugin

我正在尝试更新Vim配置脚本.我的~/.vim目录中有许多子目录,我不确定它们的具体内容,也不确定为什么有一些似乎是多余的.

这是我的~/.vim目录树的样子

 |-after
 |---ftplugin
 |---syntax
 |-autoload
 |-compiler
 |-doc
 |-ftplugin
 |---latex-suite
 |-----dictionaries
 |-----macros
 |-----packages
 |-----templates
 |---python
 |-indent
 |-plugin
 |-spell
 |-syntax
Run Code Online (Sandbox Code Playgroud)

现在针对具体问题.

  1. 什么进入pluginvs ftplugin
  2. plugin和之间有什么区别autoload
  3. 什么时候应该把东西放在after/...而不是直接放在目录下~/.vim

ske*_*ept 24

无论什么时候进入pluginvim都会加载,而你输入的ftplugin内容只是为它所对应的特定文件类型加载(所以如果你有一个名为python的文件夹,那么打开python文件时会加载所有文件.autoload你应该具有与定义的脚本相对应plugin的功能.此处的功能仅在第一次调用时加载.

after您应该放置您想要从正常插件加载更改的设置.举个例子,假设您喜欢乳胶的某些插件为您提供的设置,但它重新定义了您在其中的映射.vimrc.您可以使用自动命令或在后面添加正确的定义来恢复此操作.

  • 谢谢@skeept。如果我理解正确,请将主要插件放入`plugin` 或`ftplugin`,支持`autoload` 中的内容以及覆盖`after` 中的其他内容。正确的? (2认同)

gre*_*uan 9

我想这可以解释每个文件夹的确切内容:http://learnvimscriptthehardway.stevelosh.com/chapters/42.html

也可能想检查一下:h runtimepath.

希望这可以帮助.:)


Daa*_*ker 7

所有这些目录都是其中的一部分runtimepath.尝试:h runtimepath,它会将您链接到您的答案:

  1. 校验 :h write-plugin
  2. 校验 :h autoload-functions
  3. after/...脚本最后执行,因此它们可以覆盖早期脚本的设置.你可以在这里阅读更多相关信息:h runtimepath.