Meine Frage ist also einfach. Ist es eine gute Idee, Vim-Skripte zu lernen, nur um Vim zu erstellen, oder sollten wir einige andere akzeptierte Sprachen übernehmen.
Zum Beispiel öffnet dieser Link ein YouTube-Video, in dem gezeigt wird, wie Python zum Erstellen von Vim-Plugins verwendet wird.
Vim-Skripte sind nur dann nützlich, wenn Sie einige Vim-Plugins erstellen möchten. Gibt es also eine bestimmte Sache, die nur ausgeführt werden kann, wenn nur Vim-Skripte verwendet werden?
Antworten:
Meine Plugins sind zu 99% in VimL. Der Grund ist, dass VimL dort verfügbar ist, wo vim installiert ist. Mit anderen Sprachen ist es viel komplizierter - zum Beispiel ist Python selten auf den Windows-Boxen installiert, auf denen ich Vim verwende.
Natürlich ist VimL umständlich, es fehlen viele coole Funktionen, aber zumindest ist es einfacher, etwas Tragbares zu haben.
Die 1% nicht in VimL ist, wenn ich mit einer externen API interagieren muss, die Python-Bindungen bietet.
Übrigens kann fast alles, was Sie über VimL lernen, interaktiv verwendet werden, wenn Sie mit Befehlen wie spielen
:substitute
. Die meisten Zuordnungen oder Makros benötigen auch kein Python.quelle
map()
, dass Zeichenfolgen oder (die nicht verwandten) erwartet:map
. Ich muss oft mit / um die String-Auswertung spielen, um zu meinem Ende zu kommen, wie das Generieren von Mappings oder das Verarbeiten einer Liste von Funktionsaufrufen, ...exec
erhalten ohnehin unweigerlich Schnipsel von VimL. Sie können Ihre Kernlogik in einer Sprache schreiben, in der Sie möglicherweise viel effizienter arbeiten können, aber Sie müssen noch ziemlich viel VimL lernen.Wenn Sie Plugins schreiben möchten, sollten Sie unbedingt den schönen Artikel "Writing Vim Plugins" von Steve Losh lesen . nicht nur für die Entscheidung, ob Sie bei VimL bleiben oder nicht, sondern auch für die Best-Practice-Ratschläge.
Es enthält auch eine kleine Diskussion über Scripting Vim mit anderen Sprachen :
Ich habe die Erfahrung gemacht, dass ich selbst dann, wenn ein Nicht-VimL-Plugin besser ist, später zu einer reinen VimL-Alternative wechsle, hauptsächlich wegen der Portabilität. Vim läuft auf praktisch jedem System (sogar auf hässlichen und alten Legacy-Systemen), und der Aufwand für das Einrichten der Abhängigkeiten oder das vorübergehende Deaktivieren dieses Plugins lohnt sich nicht (insbesondere, wenn Sie immer wieder vergessen, dass Sie es deaktiviert haben und versuchen, seine Zuordnungen / Befehle zu verwenden). .
Selbst wenn es einfacher ist, die Abhängigkeiten einzurichten, können einige Probleme auftreten (z. B.: Einige Python-basierte Plugins funktionieren nicht zu 100%, wenn sie aus freigegebenen Ordnern auf virtuellen Maschinen stammen). Deshalb verwenden die wenigen Plugins, die ich geschrieben habe, nur VimL.
quelle