Extensión de Vim (a través de Python)?
Pregunta
¿Es posible extender la funcionalidad vim a través de una extensión personalizada (preferiblemente, escrita en Python)?
Lo que necesito idealmente es un comando personalizado cuando estoy en modo de comando. Por ejemplo,
ESC
: do_this
: do_that
Solución
vim admite scripts en python (y también en perl, creo).
Solo debes asegurarte de que la distribución vim que estás utilizando se haya compilado con el soporte de Python.
Si está utilizando un sistema Linux, puede descargar la fuente y luego compilarla con
./configure --enable-pythoninterp
make
sudo make install
Dentro de vim, puedes escribir
:version
para enumerar las características disponibles; si tiene soporte de python, deberías ver un '+ python' en algún lugar (de lo contrario, un '-python').
Luego, para verificar el uso del módulo de Python, puede escribir
:help python
P.S: si va a compilar las fuentes vim, asegúrese de verificar las opciones de configuración disponibles, es posible que deba especificar --with-python-config-dir también.
P.P.S: para crear un " comando personalizado en modo de comando " (Si entiendo correctamente lo que quiere decir), puede crear una función " MyFunction " en un script vim (usando python o el lenguaje de scripts vim) y luego invocarlo con
:Call MyFunction()
Comprobar
:help user-functions
para detalles
Otros consejos
Si lo es. Hay varias extensiones en http://www.vim.org/scripts/index.php
También se puede hacer con python si se compila el soporte para python.
Artículo al respecto: http://www.techrepublic.com/ article / extended-vim-with-python /
Google es nuestro amigo.
HTH
Tuvo problemas para compilar Vim con Python.
... comprobando si la compilación y las banderas de enlace para Python están en buen estado ... no: PYTHON DISABLED " en la salida ./configure.
En Ubuntu 10.04 tienes que instalar python2.6-dev
. Las banderas para ./configure
son:
--enable-pythoninterp
--with-python-config-dir=/usr/lib/python2.6/config
Asegúrese de obtener una ruta al directorio, que contiene el archivo config.c
. ¡También no hay /
al final del camino! Eso me causó problemas.