ftp,病原体和ftplugin文件的加载顺序

时间:2013-11-17 22:17:34

标签: vim python-mode pathogen

我一直在使用Vim和pathogen一段时间,但事情进展顺利,但最近我的ftplugin配置开始出现加载顺序问题。

我现在遇到的具体问题是python-mode覆盖了我的ftplugin设置。我有一个~/.vim/ftplugin/python.vim,其中包含以下行:

setlocal textwidth=119

python-mode附带了自己的ftplugin文件,该文件也在~/.vim/bundle/python-mode/ftplugin/python/pymode.vim中设置textwidth

问题是Vim现在正在我的ftplugin文件之后加载python-mode的ftplugin文件,所以我最终得到它的textwidth=79我最近不得不重新安装MacPorts,我认为库存配置必须改变一些。

我尝试了各种技巧,包括在调用病原体之前关闭文件类型/插件检测,每个various other答案,但没有一个能帮助。

通过使用verbose set textwidth?和一些echomsg调试,我知道两个ftplugin文件都被调用,并且它们被错误地调用(根据我的需要)。

有没有办法强制Vim / pathogen在插件之后调用我的ftplugin文件?

我甚至尝试将我的设置放入~/.vim/after/plugin/pymode.vim,但是在病原体设置插件后立即加载,因此它仍然在ftplugin文件之前运行,只有在编辑Python后才会加载文件。

3 个答案:

答案 0 :(得分:6)

事实证明,这可能从未像我想象的那样发挥作用。我没有意识到Vim也支持~/.vim/after/ftplugin,所以我能够将我的覆盖移动到~/.vim/after/ftplugin/python.vim并获得我期望的行为。我不愿在SO上回答我自己的问题,但希望这会对其他人有所帮助。

答案 1 :(得分:5)

Plain Vim以按字母顺序顺序加载插件脚本。这来自:help load-plugins

... all directories in the 'runtimepath' option will be
searched for the "plugin" sub-directory and all files ending in ".vim"
will be sourced (in alphabetical order per directory), also in
subdirectories.

因此,您可以通过将<filetype>_plugin.vim重命名为<filetype>/35plugin.vim来设置插件加载顺序。 35是您想要的装货单。我认为通过重命名bundle内的插件目录,这也适用于Pathogen,但我还没有测试过它。

答案 2 :(得分:0)

  

我仍然在寻找这个负载顺序问题的更一般的答案

据我所知,你可以用Pathogen真正做到这一点。使用NeoBundle非常容易。病原体非常小,它不能为您提供很多灵活性 - 它只做一件事并做得很好。如果您正在寻找可配置性,我认为您使用了错误的工具。

编辑:不确定ftplugins,但是一般情况下会在你指定它们时加载它们(使用Vundle / NeoBundle)。所以我意识到这可能不是最相关的答案。