Der beste Weg, Dateityp-Einstellungen in .vim und .vimrc zu organisieren?
Frage
Ich werde durch meine vim dotfiles sie aufzuräumen. Ich habe bemerkt, dass ich im Laufe der Zeit verschiedene Dateityp spezifische Einstellungen in verschiedener inkonsistenter Weise hinzugefügt habe. Nehmen wir an, ich für Python bin Customizing:
-
au BufRead,BufNewFile *.py (do something)
. Ich weiß nicht so, weil einige Python-Dateien nicht die Py Kündigung haben könnten. -
au FileType python (do something)
. Dies scheint eine bessere Option, da es nicht auf die Datei, um die Py Kündigung mit abhängt. Der Nachteil ist, dass Vim nicht über einige Dateitypen kennen. Ich kann machen Vim zusätzliche Dateitypen erkennen, aber ich habe auch verschiedene inkonsistent Möglichkeiten, es zu tun: a..vim/filetype.vim
Datei, ein anderer in.vim/after/filetype.vim
und verschiedeneset filetype
Befehle in.vimrc
-
Fügen Sie eine
.vim/ftplugin/python.vim
Datei mit Dateityp spezifischen Einstellungen. Ich verstehe die$VIMRUNTIME/ftplugin/python.vim
kann außer Kraft setzen, was Einstellungen, die ich hier machen. Ein Problem ist, dass ich bin mir nicht sicher, wie diese wirkt mit.vim/filetype.vim
und.vim/after/filetype.vim
. -
ein
.vim/after/ftplugin/python.vim
hinzufügen. Ich verstehe, dass dies nach$VIMRUNTIME/ftplugin/python.vim
geladen wird, so dass es Einstellungen von dort überschreiben kann. Wie im vorherigen Verfahren bin ich nicht sicher, wie es mit denfiletype.vim
Dateien in Wechselwirkung tritt.
Also ich habe mindestens vier Möglichkeiten, dies zu tun, nicht Syntaxdateien und Dateityp-spezifische Plug-in zu erwähnen. Es scheint mir der beste Weg, dies zu tun ist meine Datei des Typs spezifische Einstellungen in after/ftplugin
zu setzen, so dass sie überschrieben nicht bekommen, und filetypes.vim
in after
aus dem gleichen Grund.
Doch bevor ich gehe ich mag fragen, ob jemand Vorschläge über die beste Art und Weise hat mit Dateityp spezifischen Einstellungen zu befassen.
Lösung
Ich speichere meine Python-spezifische Einstellungen in $HOME/.vim/ftplugin/python.vim
, da ich nichts tun, um Konflikt mit $VIMRUNTIME/ftplugin/python.vim
.
Wenn man sich diese Einstellungen in einer ftplugin
Datei hält overrule was die ftplugin
s mit Vim Verteilung einrichten, dann $HOME/.vim/after/ftplugin/python.vim
ist, was Sie wollen, wie es gelesen wird after
diese.
In ähnlichen $HOME/.vim/filetype.vim
wird vor $VIMRUNTIME/filetype.vim
bezogen werden und das wiederum vor $HOME/.vim/after/filetype.vim
bezogen werden.
:scriptnames
alle sourced Skriptnamen auflisten, in der Reihenfolge, wie sie wurden zunächst bezogen.
:help filetype
bietet ziemlich umfassende Informationen über all dies.