开放的Vim 禁用插件并键入:set rtp
- 注意:
- ,如果你的系统是Unix,则默认为:第一去
~/.vim
,最后去~/.vim/after
;
- 如果你在Windows上,那么默认情况下:第一个去
~/vimfiles
,最后一个去~/vimfiles/after
。
这是一种Vim惯例。 after
目录用于强制覆盖Vim的默认设置或插件设置,有时这很重要。这就是为什么他们是rtp
中的最后一个。
病原体实际上会分析当前rtp
变量的结构,并使用它将插入路径正确注入rtp
。例如,看我的rtp
:
runtimepath=
~/.vim,
~\.vim\plugins\NERDCommenter,
~\.vim\plugins\NERDTree,
~\.vim\plugins\SameSyntaxMotion,
~\.vim\plugins\Tabular,
~\.vim\plugins\UltiSnips,
~\.vim\plugins\c.vim,
~\.vim\plugins\clang_complete,
~\.vim\plugins\CountJump,
~\.vim\plugins\delimitMate,
~\.vim\plugins\fswitch,
~\.vim\plugins\matchit,
~\.vim\plugins\matlab,
~\.vim\plugins\neocomplcache,
~\.vim\plugins\protodef,
~\.vim\plugins\python-syntax,
~\.vim\plugins\solarized,
~\.vim\plugins\syntastic,
~\.vim\plugins\vim-creole,
~\.vim\plugins\vim-latex,
~\.vim\plugins\vim-markdown,
~\.vim\plugins\vim-python-pep8-indent,
~/vimfiles,
D:\Applications\Vim/vimfiles,
D:\Applications\Vim,
D:\Applications\Vim/vimfiles/after,
~/vimfiles/after,
~\.vim\plugins\Tabular\after,
~\.vim\plugins\UltiSnips\after,
~\.vim\plugins\vim-markdown\after,
~/.vim/after
通知病原体如何注入路径。它已经检测到几个插件有after
目录,并且在~/.vim/after
之前放置它们 - 所以最后一个字永远是我的。
为了实现这种病原体需要一双要么~/.vim
和~/.vim/after
或~/vimfiles
和~/vimfiles/after
甚至~/stuff
和~/stuff/after
的(不知道,虽然最后的情况下)作为锚注入正确的顺序插件的路径。
如果这对中的任何一个目录丢失,那么你会对病原体有一些令人讨厌的经历(就像我之前做的一样,直到我发现所有上述的东西,并通过病原体源代码剔除) - 因为路径不会能够正确注入。
现在你可以看到,Prince Goulash
提供的答案是完全错误的:
- 的第一个错误是,他已经追加到
~/.vim
而rtp
他 应该预先考虑它;
- 第二个错误是他没有追加
~/.vim/after
。
正确的解决方案如下所示。如果您在不同的平台,包括Windows,你倒是应该加入到这个工作,你.vimrc
(我把这个矿,以及 - 你可以从我rtp
例子来推断):
if has('win32') || has('win64')
set runtimepath^=~/.vim
set runtimepath+=~/.vim/after
endif
这个片段将跨确保一致性平台。即使在Windows中,您现在也可以使用类似Unix的目录.vim
,并忘记vimfiles
废话 - 这是IMO丑陋可怕的。
之后,你拨打:
call pathogen#infect('plugins') " or wherever your plugins reside
call pathogen#helptags() " optional, but really cool
注:'plugins'
表示~/.vim/plugins
目录,所以它是相对的~/.vim
。
顺便说一句,你的':set'语法是错误的。在'='周围不应有空格,并放下'?';它用于显示当前值。 –