Quand utiliser le répertoire after /?

14

Je comprends que c'est l'endroit où mettre des choses qui devraient avoir le dernier mot et ne pas être remplacées par une autre source, mais je ne sais pas comment décider quand mettre quelque chose, disons, ~/.vim/after/ftplugin/plutôt que ~/.vim/ftplugin/.

Est-ce que les gens utilisent généralement ~/.vim/ftplugin/et ne déplacent des éléments ~/.vim/after/ftplugin/que s'ils observent un comportement indésirable, ou mettent-ils tout simplement tout de suite dans le répertoire après?

ivan
la source

Réponses:

20

Généralement, si vous souhaitez ajouter votre propre plugin, ou remplacer un plugin standard par le vôtre, il ira dans ~/.vim/pluginou ~/.vim/ftplugin. Si à la place vous souhaitez conserver la fonctionnalité d'un plugin existant mais y ajouter ou modifier seulement quelques paramètres qu'il a définis, votre plugin ira dans ~/.vim/after/pluginou ~/.vim/after/ftplugin.

garyjohn
la source
Pour une raison quelconque, j'ai toujours supposé que Vim recherchait le runtimepath et que chaque fichier correspondant aux critères de recherche était recherché, plutôt que de simplement rechercher la première correspondance trouvée. Cela ressemble à des trucs dans le répertoire après qui reçoivent ce genre de traitement "en plus", mais peut-être que tout le reste est traité plus comme la variable PATH Unix, où le premier match gagne?
ivan
5
Vim ne source chaque fichier qui correspond aux critères de recherche, mais les plugins correctement écrits ont un test près de leur haut du formulaire if exists("g:loaded_<plugin name>") finish endif let g:loaded_<plugin name> = 1,. Le plugin qui est chargé en premier "gagne" et les plugins suivants du même nom quittent tôt la finishcommande. C'est ainsi qu'un plugin dans votre ~/.vim/pluginrépertoire, par exemple, peut empêcher un plugin $VIMRUNTIME/pluginde se charger complètement. Ce test n'est pas inclus dans les afterfichiers de plugin.
garyjohn
Ok, je pense que je comprends maintenant. Étant donné que tous les fichiers correspondants proviendront, utilisez un finishgarde article quand vous voulez charger seul le premier match, et utiliser le service après-répertoire ( sans un finishgarde article) lorsque vous devez modifier un paramètre qui est affecté par l' un de l'autre sources.
ivan
1

si vanilla vim reconnaît un certain type de fichier et que vous souhaitez modifier le comportement livré, vos propres paramètres ~/.vim/after/ftplugin/

Naumann
la source