我知道这是放置最终决定权且不会被其他消息覆盖的地方,但是我不清楚如何决定何时放置某些内容,例如~/.vim/after/ftplugin/而不是~/.vim/ftplugin/

人们通常会使用~/.vim/ftplugin/并仅在观察到不想要的行为时才将它们移到~/.vim/after/ftplugin/中,还是只是将它们全部放入后目录中?

#1 楼

通常,如果您要添加自己的插件,或用自己的插件替换标准插件,则将其放入~/.vim/plugin~/.vim/ftplugin中。相反,如果您想保留现有插件的功能但将其添加到其中,或仅更改其所做的一些设置,则您的插件将进入~/.vim/after/plugin~/.vim/after/ftplugin

评论


出于某种原因,我一直以为Vim会搜索运行时路径并提供与搜索条件相匹配的每个文件,而不仅仅是寻找它找到的第一个匹配项。听起来好像后目录中的内容得到了“加法”处理,但是也许其他所有内容都像Unix PATH变量那样被处理,第一个匹配项获胜?

– ivan
17年6月27日在2:07

Vim会提供与搜索条件相匹配的每个文件,但是正确编写的插件会在表单顶部附近进行测试,如果存在(“ g:loaded_ ”),则结束测试,如果让g:loaded_ = 1.先加载了“ wins”插件,然后再通过finish命令退出同名插件。例如,这就是〜/ .vim / plugin目录中的插件可以阻止$ VIMRUNTIME / plugin中的插件完全加载。该测试不包含在插件文件之后。

–加里约翰
17-6-27在5:22



好吧,我想我明白了。由于所有匹配文件都将作为源文件,因此当您只想加载第一个匹配项时,请使用后缀保护子句;当您需要覆盖受以下一项影响的设置时,请使用后目录(无后缀保护子句)其他来源。

– ivan
17年6月27日在12:12

#2 楼

如果vanilla vim识别某种文件类型,并且您想修改出厂的行为,则您自己的设置将进入~/.vim/after/ftplugin/