Ich habe nach einer Antwort gesucht, aber noch nichts gefunden. Wenn ich etwas Offensichtliches verpasst habe, bitte ich um Entschuldigung. Ich dachte, es wäre eine schnelle Google-Suche, also ist es vielleicht komplizierter als ich dachte.
Ich möchte Plugins basierend auf dem Dateityp, den ich bearbeite, bedingt laden können. Wenn ich beispielsweise Python bearbeite, möchte ich nicht, dass die Keybindings vim-sexp
installiert werden, aber wenn ich an Clojure arbeite, möchte ich, dass das Plugin geladen wird.
Ich verwende derzeit Neovim und Pathogen, aber wenn es einen anderen Plugin-Manager gibt, der dies für mich erledigt, wäre ich offen für einen Wechsel. Auch, wenn dies existiert, :set syntax whatever
werden die Plugins gewechselt? Da wäre das super :)
Vielen Dank im Voraus für jede Hilfe / Richtung!
quelle
Antworten:
Sie können dies mit Vim-Plug tun. Lesen Sie die README :
Ich denke , Sie verwenden müssen ,
:set filetype whatever
anstattset syntax whatever
das Plugin zu aktivieren.(Möglicherweise können Sie dies in einem anderen Plug-in-Manager tun. Weitere Informationen finden Sie unter Was ist der Unterschied zwischen den VIM-Plug-in-Managern? )
quelle
Anstatt aufzurufen
execute pathogen#infect()
, um alle Plugins zu laden, rufen Siepathogen#interpose
jedes Plugin auf, dh:Die Pathogen-API wird nicht außerhalb der Quelle dokumentiert , ist jedoch einfach genug (obwohl die Funktionsnamen unklar und nicht beschreibend sind). Sie können auch
pathogen#surround()
für absolute Pfade verwenden.Sie können Plugins unter folgenden Bedingungen laden
autocmd
:Wenn Sie feststellen, dass Sie viele dieser Fälle haben, können Sie sie sogar in verschiedene Pfade aufteilen:
~/.vim/bundle/always
für Plugins, die Sie immer wollen~/.vim/bundle/<filetype>
nach Plugins für einen bestimmten DateitypUnd dann lade es so:
Auf diese Weise müssen Sie nicht
autocmd
für jeden Dateityp / jedes Plugin eine ganze Reihe von s hinzufügen.Sobald ein Plugin geladen ist, wird es geladen. Ein „Plug -in “ ist einfach eine Sammlung von
function
,command
undmap
definitons. Ich kenne keinen einfachen Weg, dies zu "entladen".Es tut Last - Plugins für eine Datei des Typs iff Sie verwenden
:set filetype
; Im Allgemeinen sollen Sie immer verwenden ,:set filetype
und nicht:set syntax
, wie essyntax
nur die Syntax - Hervorhebung festgelegt und nicht die Vertiefung und andere Einstellungen (zBiskeyword
,formatexpr
usw.).quelle