2013-01-09 18 views
17

Ich versuche, meine Vim Konfigurationsskripte zu aktualisieren. Es gibt eine Reihe von Unterverzeichnissen in meinem Verzeichnis ~/.vim und ich bin mir nicht sicher, was genau sie tun und warum es einige gibt, die redundant erscheinen.Bitte erläutern Sie Vims Konfigurationsverzeichnishierarchie

Hier ist, was mein ~/.vim Verzeichnisbaum wie

|-after 
|---ftplugin 
|---syntax 
|-autoload 
|-compiler 
|-doc 
|-ftplugin 
|---latex-suite 
|-----dictionaries 
|-----macros 
|-----packages 
|-----templates 
|---python 
|-indent 
|-plugin 
|-spell 
|-syntax 

Jetzt für die spezifischen Fragen sieht.

  1. Was passiert in plugin vs ftplugin?
  2. Was ist der Unterschied zwischen plugin und autoload?
  3. Wann sollte ich etwas in after/... statt in den Verzeichnissen direkt unter ~/.vim setzen?

Antwort

16

Was auch immer in plugin geht geladen wird, wenn vim beginnt während das, was Sie in ftplugin setzen nur für den speziellen Dateityp geladen wird es entspricht (also, wenn Sie einen Ordner dort alle Dateien namens Python haben da, wenn Sie werden geladen eine python-Datei öffnen. in autoload Sie die Funktionen haben, sollten die Skripte definiert in plugin zu den entsprechenden. die hier Funktionen werden nur dann, wenn durch den ersten Aufruf geladen werden.

in after sollten Sie Einstellungen setzen, die Sie möchten, Wechsel vom normalen Plugin Laden Als ein Exa Nehmen wir an, Sie mögen die Einstellungen, die Ihnen ein Plugin für Latex bietet, aber es hat ein Mapping neu definiert, das Sie in Ihrem .vimrc hatten. Sie können dies mit Autokommandos oder mit den korrekten Definitionen nachher rückgängig machen.

+1

+1; prägnante und korrekte Zusammenfassung. –

+0

Danke @skeept. Wenn ich es richtig verstanden habe, setze die Haupt-Plugins in 'plugin' oder' ftplugin', unterstütze Dinge in 'autoload' und Sachen, um alles andere in' after' zu überschreiben. Richtig? – jlconlin

+1

Wenn Sie etwas tun, das für einen bestimmten Dateityp gilt, sollten Sie mit ftplugin gehen. Für etwas, das für alle Dateitypen gilt, fügen Sie das Plugin ein, aber wenn möglich, versuchen Sie, es in Autoload zu laden, und ja, was auch immer nach ist, überschreibt alles andere. Ich denke, der Link in der Antwort von Eduan ist eine gute Quelle, Sie sollten es lesen. – skeept

4

Alle diese Verzeichnisse sind Teil der runtimepath. Versuchen Sie :h runtimepath und es wird Link auf Ihre Antworten:

  1. prüfen :h write-plugin
  2. prüfen :h autoload-functions
  3. after/... Skripte zuletzt ausgeführt werden, so können sie Einstellungen von früheren Skripten außer Kraft setzen. Sie können mehr darüber in :h runtimepath lesen.
Verwandte Themen