開放的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'語法是錯誤的。在'='周圍不應有空格,並放下'?';它用於顯示當前值。 –