2008-09-26 17 views
10

ist es möglich, vim-Funktionalität über benutzerdefinierte Erweiterung (vorzugsweise in Python geschrieben) zu erweitern?Vim-Erweiterung (über Python)?

Was ich brauche, ist idealerweise benutzerdefinierte Befehl im Befehlsmodus. Z.B.

ESC

: do_this

: do_that

Antwort

19

vim Scripting in Python unterstützt (und in Perl auch, glaube ich).

Sie müssen nur sicherstellen, dass die Vim-Distribution, die Sie verwenden, mit Python-Unterstützung kompiliert wurde.

Wenn Sie ein Linux-System verwenden, können Sie den Quellcode herunterladen und kompilieren Sie es dann mit

./configure --enable-pythoninterp 
make 
sudo make install 

Innen vim können Sie

:version 

geben Sie die verfügbaren Funktionen zur Liste; Wenn es Python-Unterstützung hat, sollten Sie irgendwo ein '+ python' sehen (sonst ein '-python').

Dann die Verwendung des Python-Modul zu überprüfen, können Sie

:help python 

PS Typ: Wenn Sie vorhaben, die vim Quellen zu installieren, stellen Sie sicher, dass die verfügbaren Konfigurationsoptionen zu überprüfen, müssen Sie möglicherweise um auch --with-python-config-dir anzugeben.

PPS: Um einen "benutzerdefinierten Befehl im Befehlsmodus" zu erstellen (wenn ich richtig verstehe, was Sie meinen), können Sie eine Funktion "MyFunction" in einem vim-Skript (mit Python oder der vim-Skriptsprache) erstellen und dann aufrufen es mit

:Call MyFunction() 

prüfen

:help user-functions 

für Details

+0

Hey orsogufo, Ich habe Probleme damit ... die "+ Python" wird nicht angezeigt, auch nach dem Kompilieren mit der Option --enable-Pythoninterp. Ich setze das Python-Config-Verzeichnis auf /usr/lib/python2.4/ Ich benutze eine Standard-Debian-Distribution. Irgendwelche Vorschläge? Ich wäre sehr dankbar. – AgentLiquid

+0

@ shafik23: das ist ziemlich seltsam; Bist du sicher, dass die Zusammenstellung erfolgreich war? Hast du eine Warnung erhalten? Der beste Vorschlag, den ich Ihnen geben kann, ist, sorgfältig die Ausgabe von configure zu lesen und zu machen ... und natürlich, wenn Sie etwas komisches finden, können Sie eine Frage stellen! Prost –

+0

@ shafik23 Ich hatte ein Problem mit Symptomen wie deiner, bis ich auch das Paket python-dev installiert habe. Ich folgte dem Grundlauf der Anweisungen http://www.blog.deepinit.com/?p=6 dh editiere Makefile in src/um CONF_OPT_PYTHON = '- enable-pythoninterp' Zeile dann 'make config' in src/dann make && make install vom obersten Verzeichnis. – sparklewhiskers

3

Sie haben ein Problem Vim mit Python zu kompilieren.

... Prüfen, ob die Kompilierung und Linker-Schalter für Python gesund sind ... Nr.: PYTHON GESPERRT“in dem configure Ausgang

auf Ubuntu 10.04 Sie haben python2.6-dev zu installieren.Die Flaggen für ./configure sind:

--enable-pythoninterp 
--with-python-config-dir=/usr/lib/python2.6/config 

Achten Sie darauf, einen Pfad zum Verzeichnis bekommen, die config.c-Datei enthält. Auch keine / am Ende des Pfades! Das hat mir Probleme gemacht.