La meilleure façon d'organiser les paramètres de type de fichier dans .vim et Vimrc?
Question
Je vais dans mes vim dotfiles pour les ranger. J'ai remarqué que dans le temps, j'ai ajouté divers paramètres spécifiques de filetype de diverses manières contradictoires. Supposons que je personnalisation pour Python:
-
au BufRead,BufNewFile *.py (do something)
. Je ne aime pas parce que certains fichiers Python pourraient ne pas avoir la fin .py. -
au FileType python (do something)
. Cela semble une meilleure option, car elle ne dépend pas du fichier ayant la terminaison .py. L'inconvénient est que Vim ne connaît pas certains types de fichiers. Je peux faire reconnaître Vim filetypes supplémentaires, mais je dois aussi diverses façons contradictoires de le faire:. Un fichier.vim/filetype.vim
, une autre dans.vim/after/filetype.vim
et diverses commandesset filetype
dans.vimrc
-
Ajouter un fichier
.vim/ftplugin/python.vim
avec des paramètres spécifiques de type de fichier. Je comprends la$VIMRUNTIME/ftplugin/python.vim
peut passer outre les réglages que je fais ici. Un problème est que je ne sais pas comment cela interagit avec.vim/filetype.vim
et.vim/after/filetype.vim
. -
Ajouter un
.vim/after/ftplugin/python.vim
. Je comprends que cela est chargé après$VIMRUNTIME/ftplugin/python.vim
il peut remplacer les paramètres à partir de là. Comme dans la méthode précédente Je ne sais pas comment il interagit avec les fichiersfiletype.vim
.
J'ai donc au moins quatre façons de le faire, ne pas mentionner les fichiers de syntaxe et plugins spécifiques filetype. Il me semble que la meilleure façon de le faire est de mettre mes paramètres spécifiques filetype dans after/ftplugin
de sorte qu'ils ne sont pas écrasées et filetypes.vim
dans after
pour la même raison.
Cependant, avant de poursuivre, je voudrais demander si quelqu'un a des suggestions sur la meilleure façon de traiter avec des paramètres spécifiques de type de fichier.
La solution
Je stocke mes paramètres spécifiques Python est dans $HOME/.vim/ftplugin/python.vim
, puisque je ne fais rien en conflit avec $VIMRUNTIME/ftplugin/python.vim
.
Compte tenu de ces paramètres dans un fichier ftplugin
garde rel="noreferrer"> passer outre ce que les ftplugin
s avec votre distribution Vim mis en place, alors $HOME/.vim/after/ftplugin/python.vim
est ce que vous voulez, car il est lu after
ces derniers.
De même $HOME/.vim/filetype.vim
sera pris avant $VIMRUNTIME/filetype.vim
et à son tour, sera pris avant $HOME/.vim/after/filetype.vim
.
:scriptnames
listera tous les noms de script sourcé, dans l'ordre ont d'abord été source.
:help filetype
fournit des informations très détaillées sur tout cela.