TL; DR:
Anforderung +python
/ +python3
Unterstützung für ein Python-basiertes Entwicklungs-Plugin. Das klingt völlig vernünftig.
Über Vim-Plugins und menschliches Verhalten
Im Allgemeinen möchten Menschen, dass die Dinge einfach erscheinen und "nur funktionieren". Wenn es um Vim-Plugins geht, möchten Vimmer normalerweise Plugins ohne oder mit sehr wenigen Abhängigkeiten. Grundsätzlich sollte es so einfach wie ein git clone
und / oder ein paar Zeilen in ihrer vimrc
Datei sein. Je mehr ein Plugin konfiguriert werden muss, um anfänglich zu funktionieren, oder je mehr Abhängigkeit erforderlich ist, desto mehr wird nur eine Eintrittsbarriere hinzugefügt.
Ein gutes Beispiel für dieses Verhalten ist CommandT vs CtrlP :
- CommandT verwendet Ruby und C, um die Fuzzy-Suche durchzuführen
- CtrlP hingegen ist reines VimL / Vimscript
- CommandT ist normalerweise schneller als Vanilla CtrlP
Jetzt würden Sie annehmen, dass CommandT populärer ist, zumal es zuerst herauskam, aber das ist nicht der Fall. CommandT hat ungefähr 2000 Benutzer und CtrlP hat ungefähr 20.000 Benutzer . Meiner Meinung nach verursachen die Anforderungen von CommandT eine Eintrittsbarriere. Sie können git clone
Ihre vim-Dotfiles einfach nicht verwenden und mit CommandT auf einem neuen Computer wie mit CtrlP arbeiten.
Kontrapunkt:
Das ist C + Ruby nicht +python
/ +python3
. Es gibt eine integrierte Unterstützung für Python. Sie sind absolut richtig. Ein Beispiel, das diesen Punkt beweist , wäre Gundo (~ 5.000) unter Verwendung von +python
vs undotree (~ 1.000), was reines VimL ist. Ich würde meiner persönlichen Meinung nach argumentieren, dass Undotree weniger bekannt ist als Gundo (der zuerst auf den Markt kommt), und die Tatsache, dass viele Undotree verwenden, hat möglicherweise damit zu tun, dass es sich um reines VimL gegen Python handelt.
Gut genug für mich, ich werde Python nur für mein Vim-Plugin verwenden!
Am Ende des Tages muss man einiges über Vim und einige VimL wissen, um das Vim-Plugin in Python zu erstellen. Das vim
Modul ist viel besser als zuvor, erfordert aber dennoch eine ganze Reihe von VimL-eval-ähnlichen Situationen:
vim.command("set tw=72")
vim.command("%s/aaa/bbb/g")
text_width = vim.eval("&tw")
Siehe :h python-vim
.
Sie benötigen außerdem VimL, um den Python-Teil Ihres Plugins zu "booten". Es gibt also kein Entkommen von VimL, sondern nur eine Reduzierung der Menge.
Schlussfolgerungen
Wenn Sie ein Bedürfnis haben +python
/ +python3
dann verwenden Sie es auf jeden Fall. Es hört sich so an, als hätten Sie einen wunderbaren Anwendungsfall für die Python-Unterstützung. Meiner Meinung nach werden Sie VimL / Vimscript jedoch nicht vollständig entkommen. Ich würde empfehlen, Vim-Dinge in VimL zu tun und Python für Dinge zu verwenden, die in VimL schwer / knifflig / langsam sind.