Wenn ich mein Verzeichnis .vim
überprüfe, habe ich festgestellt, dass alle Plugins, die mit vim-plug
installiert sind, im Verzeichnis .vim/plugged
sitzen. In diesem Fall, wie hat Vim diese Plugins geladen? Wenn ich das gleiche Plugin normalerweise installiert habe, welches wird dann besser geladen?Wie verwaltet der vim-plug meine vim plugins?
Antwort
Die plug#begin(...)
Funktion setzt die „Heimat“ Pfad für das Plugin (vim-plug
ist ein Plugin auch),
if a:0 > 0
let s:plug_home_org = a:1
let home = s:path(fnamemodify(expand(a:1), ':p'))
...
und die Funktion plug#end()
definiert durch die Liste der Plugins geht (über plug#()
) und hält sie in einem Wörterbuch:
for name in g:plugs_order
...
if has_key(plug, 'on')
let s:triggers[name] = { 'map': [], 'cmd': [] }
for cmd in s:to_a(plug.on)
if cmd =~? '^<Plug>.\+'
if empty(mapcheck(cmd)) && empty(mapcheck(cmd, 'i'))
call s:assoc(lod.map, cmd, name)
dann manipuliert schließlich die runtimepath
und source
s jeweils eines der Plugins unter der Rufnummer (schließlich) s:lod()
:
for [cmd, names] in items(lod.cmd)
execute printf(
\ 'command! -nargs=* -range -bang %s call s:lod_cmd(%s, "<bang>", <line1>, <line2>, <q-args>, %s)',
\ cmd, string(cmd), string(names))
endfor
Sie können den Auftrag herauszufinden, in welchem Plugins von vim-plug
‚s-Code geladen werden.
Das Laden eines Plugins ist nichts anderes als das Sourcen der Skriptdatei (en). Die Skriptdatei könnte irgendwo sein.
Normalerweise hat ein Plugin ein Flag (g: variable), um zu erkennen, ob das Skript bereits geladen ist. Es wird also nicht zweimal geladen. Wenn Ihr Plugin diesen Mechanismus jedoch nicht besitzt, könnte es zweimal geladen werden.
- 1. Wie man Plugins und Plugins update verwaltet?
- 2. Vim lädt keine Plugins
- 3. vim plugins nicht laden: mac
- 4. Vundle Vim nicht installieren plugins
- 5. Fehler beim Öffnen vim
- 6. Vim: Empfehlungen für Vimball-Plugins in Pathogen
- 7. VIM Insert-Mappings von Plugins deaktivieren
- 8. Welche vim Plugins sind für Eclipse verfügbar?
- 9. vim, wie Datei-Browser (keine Plugins) kommen zurück
- 10. Wie kann ich meine Setup vim-Airline oder vim-Powerline-
- 11. Zwei vimfiles-Verzeichnisse. Wo installiere ich meine Plugins?
- 12. Wie kann man sehen, welche Plugins Vim langsam machen?
- 13. Wie vim pathogen machen, um Plugins neu zu laden?
- 14. Wie lade ich geladene Plugins in Vim auf?
- 15. Verwalten eigene Fork von Vim-Plugins mit Vundle
- 16. Wie wird der Code-Speicher verwaltet?
- 17. Wie man Speicher verwaltet?
- 18. Run vim ohne Laden .vimrc, aber Laden von Plugins
- 19. Wie verwaltet ptr_vector Speicher?
- 20. Wie man Datenübergabe verwaltet?
- 21. Wie wird der Speicher in Python verwaltet?
- 22. Wie verwaltet der Andockdienst Container neue Dateien?
- 23. Wie man Datenbankschlüssel der Firebase verwaltet?
- 24. Wie man Knoten auf der Taxonomieseite verwaltet?
- 25. Facebook Like Button: meine Anwendung durch wie Social Plugins ersetzt
- 26. Verwenden von Vim-Plugins in IntelliJ über IdeaVim
- 27. Was sind die notwendigen Plugins in VIM für Latex?
- 28. Deaktivieren Sie vorübergehend einige Plugins mit Pathogen in Vim.
- 29. Wie verwaltet Spark Stadien?
- 30. Wird der OLEDB-Provider verwaltet oder nicht verwaltet?
Hinweis: Stackoverflow hat auch eine Beta-Site für "vi und vim". Hör zu! – Jens
Die Priorität wird durch die Option "rtp" bestimmt. Schauen Sie in diese Variable, um zu wissen, in welcher Reihenfolge die Dinge geladen sind (siehe BTW ': h 'rtp''). Dann ist Ihre nächste Frage wahrscheinlich "wie ist es gefüllt?". Gut. Das ist dank 'rtp', dass dein Plugin-Manager Plugins registriert, die in separaten Ordnern leben. –
Ist es nicht der ganze Sinn von Plugin-Managern, Sie vor diesen Konzepten zu schützen? – romainl