2010-05-22 6 views
26

J'ai installé Vim pour utiliser l'excellent plugin NERDTree. Cependant, il y a des environnements où je ne veux pas que ce plugin soit chargé.Comment désactiver un plugin spécifique dans Vim?

Dans mon fichier .vimrc, j'ai des sections qui ne sont exécutées que lorsque des variables d'environnement spécifiques sont vraies. Dans l'une de ces sections, je voudrais désactiver le chargement de NERDTree, mais toutes les informations que j'ai rencontrées États comment désactiver tous les plugins, pas seulement un.

Est-ce que quelqu'un pourrait montrer comment désactiver le chargement d'un plugin spécifique dans Vim?

Répondre

25

La plupart des plugins ont une protection de (re) inclusion. Ouvrez le plugin, voyez le nom du gardien, le cas échéant (si ce n'est pas le cas, ajoutez un par vous même, et contactez l'auteur pour qu'il corrige son plugin), et définissez sa valeur à 1 dans votre fichier .vimrc. C'est tout.

Je ne peux pas être plus précis comme "ouvrir, et chercher le garde" car tous les plugins n'utilisent pas la même politique de nommage des gardes. C'est souvent g:loaded_pluginname cependant. En ce qui concerne les ftplugins, cela devient plus compliqué. Le garde est une variable tampon-locale. En tant que tel, il ne peut pas être spécifié dans votre fichier .vimrc (car il ne s'appliquerait qu'au premier tampon que vous ouvrez). Le moyen le plus simple serait de déplacer votre ftplugin de .vim/ftplugin à .vim/after/ftplugin, et de définir le garde anti-ré-inclusion approprié à 1 dans un ftplugin dans votre hiérarchie non-après. Tant que le ftplugin ne s'attend pas à être placé dans after/ (ou au contraire, ça devrait aller). Note: la plupart des ftplugins croient qu'ils sont uniques et (mis-) utilisent la variable b:did_ftplugin comme protège-reinclusion.

+1

La plupart des gardiens, je l'ai vu utiliser une variable appelée 'loaded_ '. –

+0

J'avais besoin de désactiver Eclim, il utilise 'g: EclimDisabled' à la place. –

+0

Si vous souhaitez désactiver temporairement un plugin pour une seule session Vim, utilisez ceci pour démarrer Vim: 'vim --cmd" let g: loaded_ = 1 "...' ' – Sameer

1

Ajouter cette ligne à votre .vimrc

let g:loaded_nerdtree_exec_menuitem = 1 
+0

Merci pour le conseil –

Questions connexes