öffnen Vim mit deaktiviert Plugins und geben :set rtp
- feststellen, dass:
- , wenn Sie auf Unix, dann standardmäßig: die erste geht
~/.vim
und der letzte geht ~/.vim/after
;
- Wenn Sie unter Windows sind, dann standardmäßig: der erste geht
~/vimfiles
und der letzte geht ~/vimfiles/after
.
Dies ist eine Art Vim-Konvention. after
Verzeichnisse werden verwendet, um Vims Standardeinstellungen oder Plugins-Einstellungen zwangsweise zu überschreiben, was manchmal wichtig ist. Deshalb sind sie die letzten in der rtp
.
Pathogen tatsächlich analysiert die Struktur Ihrer aktuellen rtp
Variable und verwendet es, um Pfade von Plugins in die rtp
richtig injizieren. Zum Beispiel sehen Sie sich meine 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
Beachten Sie, wie Erreger Wege injiziert. Es hat festgestellt, dass mehrere Plugins after
Verzeichnis haben und setze sie direkt vor ~/.vim/after
- damit das letzte Wort immer mir gehört.
diese Erreger zu erreichen, muss ein Paar entweder ~/.vim
und ~/.vim/after
oder ~/vimfiles
und ~/vimfiles/after
oder sogar ~/stuff
und ~/stuff/after
(nicht sicher über den letzten Fall aber) als Anker Plugins' Pfade in der richtigen Reihenfolge zu injizieren.
Wenn irgendein Verzeichnis von diesem Paar fehlt, dann haben Sie einige unangenehme Erfahrungen mit Krankheitserregern (wie ich es vor einiger Zeit getan habe, bis ich all die oben genannten Sachen herausgefunden habe und den Erregerquellcode überflogen habe) - weil Wege nicht sein werden kann richtig injiziert werden.
Jetzt können Sie sehen, dass die Antwort von Prince Goulash
vorgesehen ist vollständig falsch:
- der erste Fehler ist, dass er
~/.vim
zu rtp
während angehängt hat er vorangestellt haben sollte; Der zweite Fehler ist, dass er ~/.vim/after
nicht angehängt hat.
Die richtige Lösung sieht wie folgt aus. Wenn Sie auf verschiedenen Plattformen, einschließlich Windows arbeiten müssen, sollten Sie eher fügen Sie diese in Ihre .vimrc
(Ich halte dies in Mine als auch - Sie es von meinem rtp
Beispiel entnehmen kann):
if has('win32') || has('win64')
set runtimepath^=~/.vim
set runtimepath+=~/.vim/after
endif
Dieser Code-Schnipsel Konsistenz gewährleisten über Plattformen. Sie können jetzt Unix-ähnliches Verzeichnis .vim
sogar in Windows und vergessen Sie die vimfiles
Mist - die IMO hässlich und schrecklich ist.
Danach rufen Sie:
call pathogen#infect('plugins') " or wherever your plugins reside
call pathogen#helptags() " optional, but really cool
HINWEIS:'plugins'
das ~/.vim/plugins
Verzeichnis bezeichnet, so ist es relativ von ~/.vim
.
BTW, Ihre ': set'-Syntax ist falsch. Es darf keine Leerzeichen um das '=' geben und das '?' Fallen lassen; Es zeigt den aktuellen Wert an. –