2010-05-22 11 views
26

Ich habe Vim eingerichtet, um das ausgezeichnete NERDTree-Plugin zu verwenden. Es gibt jedoch einige Umgebungen, in denen dieses Plugin nicht geladen werden soll.Wie deaktivierst du ein bestimmtes Plugin in Vim?

In meiner .vimrc habe ich eine Abschnitte, die nur ausgeführt werden, wenn bestimmte Umgebungsvariablen wahr sind. In einem dieser Abschnitte möchte ich das Laden von NERDTree deaktivieren, aber alle Informationen, die ich gefunden habe, gibt an, wie man alle Plugins deaktivieren kann, nicht nur eines.

Könnte jemand zeigen, wie man das Laden eines bestimmten Plugins in Vim deaktiviert?

Antwort

25

Die meisten Plugins haben einen (Re-) Inklusionswächter.

Öffnen Sie das Plugin, sehen Sie den Namen des Wächters, falls vorhanden (falls nicht, fügen Sie einen selbst hinzu, und kontaktieren Sie den Autor, damit er sein Plugin repariert), und setzen Sie den Wert auf 1 in Ihrer .vimrc. Das ist alles.

Ich kann nicht spezifischer als "offen, und suchen Sie nach der Wache", da nicht alle Plugins die gleiche Wächter-Benennung Politik verwenden. Es ist oft g:loaded_pluginname obwohl.

In Bezug auf ftplugins wird es schwieriger. Der Wächter ist eine Puffer-lokale Variable. Daher kann es in Ihrer .vimrc nicht angegeben werden (da es nur für den ersten Puffer gilt, den Sie öffnen). Der einfachste Weg wäre, Ihr ftplugin von .vim/ftplugin zu .vim/after/ftplugin zu verschieben und den entsprechenden Anti-Reinclusion-Guard in einem ftplugin in Ihrer Nicht-Nach-Hierarchie auf 1 zu setzen. Solange das ftplugin nicht erwartet, in after/ platziert zu werden (oder im Gegenteil, sollte es in Ordnung sein). Hinweis: Die meisten ftplugins glauben, dass sie eindeutig sind und verwenden die Variable b:did_ftplugin als Reinclusion Guard.

+1

meisten Wachen ich gesehen habe eine Variable 'loaded_ ' genannt verwenden. –

+0

Ich musste Eclim deaktivieren, stattdessen wird 'g: EclimDisabled' verwendet. –

+0

Wenn Sie ein Plugin vorübergehend für eine einzelne Vim-Sitzung deaktivieren möchten, verwenden Sie dies, um Vim zu starten: 'vim --cmd 'let g: loaded_ = 1" ... ' – Sameer

1

Fügen Sie diese Zeile in .vimrc

let g:loaded_nerdtree_exec_menuitem = 1 
+0

Danke für den Tipp –

Verwandte Themen