我一直在使用 Vim 病原 一段时间以来,一切都工作正常,但最近我的 ftplugin 配置开始出现加载顺序问题。

我现在遇到的具体问题是 python模式 正在覆盖我的 ftplugin 设置。我有一个 ~/.vim/ftplugin/python.vim 包含以下行:

setlocal textwidth=119

python-mode 带有自己的 ftplugin 文件,该文件还设置 textwidth, , 在 ~/.vim/bundle/python-mode/ftplugin/python/pymode.vim.

问题是 Vim 现在正在加载 python 模式的 ftplugin 文件 我的 ftplugin 文件,所以我最终得到了它 textwidth=79. 我最近不得不重新安装 MacPorts,我认为库存配置中一定发生了一些变化。

我尝试过各种技巧,包括在调用病原体之前关闭文件类型/插件检测,根据 各种各样的 其他 答案,但没有一个有帮助。

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

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

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

有帮助吗?

解决方案

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

其他提示

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 是您想要的装载顺序。我认为这也应该通过重命名里面的插件目录来与 Pathogen 一起使用 bundle, ,但我还没有测试过。

我仍在寻找这个加载顺序问题的更通用的答案

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

编辑:不太确定 ftplugins,但捆绑包通常会在您指定时加载(使用 Vundle/NeoBundle)。所以我意识到这可能不是最相关的答案。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top