我使用Vim和致病菌已经有一段时间了,而且一切都很好,但最近我的ftplugin配置出现了加载顺序问题。
我现在遇到的具体问题是,python模式正在覆盖我的ftplugin设置。我有一个包含以下行的~/.vim/ftplugin/python.vim:
setlocal textwidth=119python模式附带了自己的ftplugin文件,该文件还在~/.vim/bundle/python-mode/ftplugin/python/pymode.vim中设置了~/.vim/bundle/python-mode/ftplugin/python/pymode.vim。
问题是Vim现在正在加载python模式的ftplugin文件,在我的ftplugin文件之后,所以我的最近不得不重新安装MacPorts,我认为股票配置中一定发生了一些变化。
根据五花八门 其他的回答,我尝试过各种技巧,包括在调用病原体之前关闭文件类型/插件检测,但它们都没有帮助。
通过使用verbose set textwidth?和一些echomsg调试,我知道正在调用两个ftplugin文件,并且它们被按错误的顺序调用(以满足我的需要)。
有没有办法强迫Vim/病原体在插件之后调用我的ftplugin文件?
我甚至尝试过将我的设置放到~/.vim/after/plugin/pymode.vim中,但是在病原体设置插件之后立即加载,所以它仍然在ftplugin文件之前运行,只有在我编辑了一个Python文件之后才会加载。
发布于 2013-11-17 23:01:41
结果可能这一切都不像我想的那样。我没有意识到Vim也支持~/.vim/after/ftplugin,所以我能够将重写转移到~/.vim/after/ftplugin/python.vim,并得到我所期望的行为。我不愿意回答我自己的问题,但希望这能帮助到别人。
发布于 2015-04-28 18:13:06
普通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中的插件目录来解决病原体问题,但是我还没有测试它。
发布于 2013-11-18 04:06:09
我仍然在寻找一个关于负载顺序问题的更普遍的答案。
据我所知,你不能用病原体来做。使用NeoBundle真的很容易。病原体是很小的,它不能给你很多灵活性--它只做一件事,而且做得很好。如果您正在寻找可配置性,我认为您使用了错误的工具。
编辑:对于ftplugins还不太确定,但是通常在指定这些包(使用Vundle/NeoBundle)时都会加载它们。所以我意识到这可能不是最相关的答案。
https://stackoverflow.com/questions/20036921
复制相似问题