Je cherchais une réponse à cela, mais je n'ai encore rien trouvé, donc si j'ai raté quelque chose d'évident, je m'en excuse. Je pensais que ce serait une recherche rapide sur Google, alors c'est peut-être plus compliqué que je ne le pensais.
J'aimerais pouvoir charger conditionnellement des plugins en fonction du type de fichier que je modifie. Par exemple, lors de l'édition de python, je ne veux pas les raccourcis clavier qui vim-sexp
s'installent, mais lorsque je travaille sur clojure, je veux que ce plugin soit chargé.
J'utilise actuellement neovim et pathogen, mais s'il y a un autre gestionnaire de plugins qui le fait pour moi, je serais prêt à changer. De plus, si cela existe, :set syntax whatever
changez-vous les plugins? Parce que ce serait super :)
Merci d'avance pour toute aide / direction!
Réponses:
Vous pouvez le faire avec Vim-Plug. Voir le README :
Je pense que vous devrez utiliser
:set filetype whatever
au lieu d'set syntax whatever
activer le plugin.(Un autre gestionnaire de plugins pourrait vous permettre de le faire, voir Quelle est la différence entre les gestionnaires de plugins vim? )
la source
Au lieu d'appeler
execute pathogen#infect()
pour charger tous les plugins, appelezpathogen#interpose
pour chaque plugin, c'est-à-dire:L'API pathogène n'est pas documentée en dehors de la source , mais elle est assez simple (même si les noms de fonction sont obscurs et non descriptifs). Vous pouvez également utiliser
pathogen#surround()
des chemins absolus.Vous pouvez charger des plugins conditionnellement avec une base
autocmd
:Si vous trouvez que vous avez plusieurs de ces cas, vous pouvez même le diviser en différents chemins:
~/.vim/bundle/always
pour les plugins que vous voulez toujours~/.vim/bundle/<filetype>
pour les plugins pour un type de fichier spécifiqueEt puis chargez-le comme ceci:
De cette façon, vous n'avez pas à ajouter un tas de
autocmd
s pour chaque type de fichier / plugin.Une fois qu'un plugin est chargé, il est chargé. Un « plug - in » est tout simplement une collection de
function
,command
etmap
DEFINITIONS. Je ne connais aucun moyen simple de «décharger» cela.Il fait des plugins de charge pour un type de fichier que vous utilisez IFF
:set filetype
; En général, vous voulez toujours utiliser:set filetype
et non:set syntax
, commesyntax
met à jour la mise en évidence de la syntaxe, et non l'indentation et d' autres paramètres (par exempleiskeyword
,formatexpr
, etc.).la source