Deaktivieren Sie vorübergehend einige Plugins mit Pathogen in vim.

96

Ich glaube, ich habe einen Fehler in einem Plugin. Ich möchte nur dieses Plugin laden, ohne alle anderen Bundles im Bundle-Ordner meines Erregers löschen zu müssen, um zu debuggen.

Ist es möglich?

Jemand benutzt Sie immer noch MS-DOS
quelle

Antworten:

129

Die einfachste Methode, ein Plugin zu deaktivieren, wenn Sie Pathogen verwenden, besteht darin, den Bundle-Namen zur Variablen g: pathogen_disabled hinzuzufügen, bevor Sie mit pathogen beginnen.

Also ein Beispiel aus meinem eigenen vimrc

" To disable a plugin, add it's bundle name to the following list
let g:pathogen_disabled = []

" for some reason the csscolor plugin is very slow when run on the terminal
" but not in GVim, so disable it if no GUI is running
if !has('gui_running')
    call add(g:pathogen_disabled, 'csscolor')
endif

" Gundo requires at least vim 7.3
if v:version < '703' || !has('python')
    call add(g:pathogen_disabled, 'gundo')
endif

if v:version < '702'
    call add(g:pathogen_disabled, 'autocomplpop')
    call add(g:pathogen_disabled, 'fuzzyfinder')
    call add(g:pathogen_disabled, 'l9')
endif

call pathogen#infect()

Update : Eine andere von Pathogen unterstützte Methode besteht darin, das Verzeichnis für das zu deaktivierende Bundle einfach umzubenennen, sodass es in einer Tilde (~) endet. Um das autocomplpopBundle zu deaktivieren , benennen Sie es einfach in um autocomplpop~.

Jeroen
quelle
1
Die Tilde-Strategie scheint derzeit nicht zu funktionieren (ab Version 2.3).
Echristopherson
6
@echristopherson Dies sollte jetzt wieder in Pathogen sein, zumindest auf dem Dev-Zweig.
FDinoff
8
Ab 2.4es wird g:pathogen_blackliststattdessen.
Yuri Ghensev
36

vim -u NONE -Nlädt vim ohne Plugins, ohne Einstellungen von Ihrer .vimrc. Sie können dann :source /path/to/plugin/you-want.vimin vim das Plugin laden, das Sie laden möchten.

frabjous
quelle
+1. frabjous, das ist ein toller Rat. Aber ich glaube, der Ansatz von @Herbert ist besser für meine Situation geeignet, da ich viel ftplugin und so habe. Vielen Dank für Ihre Antwort. Ihre Lösung kann in Boxen verwendet werden, in denen kein Krankheitserreger installiert sein kann.
Jemand benutzt Sie immer noch MS-DOS
Sie können vim auch als starten vim -u NONE -Nund dann in vim :filetype plugin ondie Dateityp-Plugins aktivieren.
Frabjous
9

vim --noplugin

In diesem Fall lädt vim keine Plugins, aber Ihr vimrc wird verwendet.

Nachdem Sie Ihr Plugin in vim geladen haben:

: Quelle 'Ihr Plugin-Pfad'

Regisz
quelle
3

Warum nicht einfach:

  1. Benennen Sie das aktuelle Bundle-Verzeichnis um
  2. Erstellen Sie ein neues leeres Bundle-Verzeichnis
  3. Legen Sie Ihre Test-Plugin-Dateien in das neue Bundle-Verzeichnis?

Wenn Sie fertig sind, setzen Sie alles wieder so, wie es war. (Die vorgeschlagene Methode zum Laden von Vim ohne Plugins und zum Sourcing der Plugin-Datei würde funktionieren, wenn es sich um ein einfaches Plugin für eine Datei handelt. Wenn Sie jedoch ein ftplugin ausführen, ist das Verschieben von Verzeichnissen wahrscheinlich der beste und nicht so schwierige Weg.)

Herbert Sitz
quelle
+1. Verschieben Sie einfach und effektiv alle Ordner in einen temporären Ordner.
Jemand benutzt Sie immer noch MS-DOS
2

Sie können das spezifische Plugin umbenennen, indem Sie ein Tilde-Zeichen ~ nach dem ursprünglichen Namen setzen. Alle Plugin-Ordner innerhalb des Bundles mit dem Tilde-Zeichen ~ am Ende werden nicht vom Erreger geladen.

Ryan Wu
quelle