Python con Vim

Este es uno de los capítulos del tutorial Vim, un editor atemporal. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.

Para concluir este tutorial sobre Vim, no podía dejar pasar la oportunidad de dedicar un capítulo a Python con Vim. Al fin y al cabo, hoy en día Python es que mas suelo utilizar, al menos en la parte de ocio. Aunque últimamente también JavaScript, se está subiendo al carro…, pero esto es harina de otro costal.

Lo cierto, es que si has seguido el tutorial hasta aquí, este capítulo te sobre. Aunque, por supuesto, me voy a centrar exclusivamente en Python, y seguro que algo sacas de provecho. Por supuesto, si no has seguido el tutorial, este capítulo te va a venir de perlas, porque mi objetivo es ir al grano. Eso si, me apoyaré en capítulos anteriores, y en los complementos que haya comentado anteriormente.

Algunos de los complementos que te voy a comentar en este capítulo, por supuesto los puedes utilizar no solo para trabajar con archivos Python, no son exclusivos. Sin embargo, me han resultado más útiles con proyectos como los que suelo hacer con este lenguaje.

Python con Vim

Python con Vim

Podrías editar y modificar tus archivos Python con Vim perfectamente, sin necesidad de utilizar ningún complemento. Pero ¿porque no utilizarlos?. Creo que no hay excusa, mas, teniendo en cuenta que algunos redundarán en un aumento de la productividad significativo. Y no solo esto, sino que te resultará mucho más cómodo y hasta estimulante. Para gustos los colores o sarna con gusto no pica.

En fin, sea como fuere, te indico mi configuración actual para trabajar en archivos Python con Vim. Por supuesto, que esta es la configuración, en el momento de redactar este capítulo del tutorial de Vim, es posible, que cuando lo leas, sea otra distinta.

Complementos

A continuación, te indico la configuración de complementos que tengo. Estos complementos los he ido comentando en capítulos anteriores del tutorial,

Plug 'vim-airline/vim-airline'
Plug 'tpope/vim-surround'
Plug 'tpope/vim-fugitive'
Plug 'ervandew/supertab'
Plug 'ctrlpvim/ctrlp.vim'
Plug 'tpope/vim-commentary', {'for': ['sh', 'python', 'markdown']}
Plug 'ironcamel/vim-script-runner', {'for': ['sh', 'python']}
Plug 'SirVer/ultisnips', {'for': ['sh', 'python', 'markdown']}
Plug 'honza/vim-snippets', {'for': ['sh', 'python', 'markdown']}
Plug 'vim-syntastic/syntastic', {'for': 'python'}

Como puedes ver, y tal y como te comenté en un capítulo anterior del tutorial, algunos de estos complementos, solo los cargo en función del tipo de archivo que quiero editar. Indicarte, que en este listado de complementos no encontrarás el de YouCompleteMe, porque como comenté en el capítulo dedicado a este complemento, este lo he instalado desde el repositorio oficial de Ubuntu, dado que es algo mas complejo de instalar que el resto de complementos.

En los siguientes apartados, te comento, aquellos nuevos complementos, sobre los que no te he comentado hasta el momento.

ctrlp.vim

El primero de los complementos que te quiero comentar es ctrlp.vim. Este complemento, es posible que te resulte familiar de otros entornos de desarrollo, como puedes ser Sublime Text o Visual Studio Code. Pero, no es exclusivo de estos dos, sino que los puedes encontrar en otros.

El objeto básico y fundamental, es el de buscarte un archivo para abrirlo y trabajar sobre él. Por supuesto, se trata de que esté accesible de forma sencilla, práctica y rápida. De esta forma, puedes cambiar rápidamente entre archivos.

El método de búsqueda, es igual al que has visto en otros complementos de los que te he comentado hasta el momento. Se trata de una búsqueda fuzzy. De esta forma, no es necesario que introduzcas la palabra exacta de lo que buscas.

Instalación

Para instalar este complemento, me apoyaré en el gestor de complementos que vengo utilizando últimamente Plug. De esta forma, la instalación es tan sencilla, como añadir la siguiente línea al archivo de configuración,

Plug 'ctrlpvim/ctrlp.vim'

Una vez añadida la línea anterior en el archivo de configuración, ejecuta el siguiente comando,

PlugInstall

Una vez instalado, ya puedes comentar a utilizarlo, para lo que simplemente tienes que utilizar el atajo de teclado que le da nombre a este complemento Ctrl+P. Pero no solo tienes esta posibilidad, sino que además tienes algunos comandos como son,

  • :CtrlP o :CtrlP <directorio de inicio>, cualquiera de las dos opciones inicia la búsqueda, en un caso a partir del directorio que le indiques
  • CtrlPBuffer o CtrlPMRU para buscar en buffer o en MRU
  • CtrlPMixed, para buscar en cualquier opción de las indicadas anteriormente.

Una vez comenzada la búsqueda, puedes utilizar una serie de atajos de teclado, que te facilitará dar con el resultado que necesitas,

  • F5, purga el caché para el directorio actual
  • Ctrl+f o Ctrl+b te permite cambiar el modo de búsqueda de archivos a buffer.
  • Ctrl+j y Ctrl+k, lo utilizarás para navegar entre los resultados.
  • Ctrl+t o Ctrl+v o Ctrl+x, para abrir en una nueva pestaña, o en una ventana nueva en modo vertical, o una ventana nueva en modo horizontal

Este complemento tienes muchas mas opciones y posibilidades. Te invito a que lo instales y lo pruebes por ti mismo, para comprobar toda su funcionalidad.

Syntastic

El siguiente complemento que utilizo específico para Python con Vim es Syntastic. Este complemento te ayudará a detectar y corregir los errores de sintaxis que tengas en tu código fuente.

Instalación

De nuevo, y como con el complemento anterior, para instalarlo, simplemente tienes que añadir la siguiente línea en el archivo de configuración,

Plug 'vim-syntastic/syntastic', {'for': 'python'}

Además necesitas instalar pylint, en el caso de que sea ese el que quieras utilizar, aunque tambien puedes utilizar otros como flake8, pyflakes. En mi caso, como quiero utilizar pylint, lo he instalado ejecutando la siguiente instrucción en un terminal,

pip3 install --user pylint
Configuración

Los desarrolladores de este complemento han definido una configuración recomendada, que te incluyo a continuación, añadiendo el linter que yo estoy utilizando,

" ----------- vim-syntastic ---------
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_python_checkers = ['flake8', 'pylint']

let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
Uso y funcionamiento

Una vez instalador el linter que quieres utilizar, tan solo tienes que ejecutar el siguiente comando para realizar la comprobación de sintaxis,

:SyntasticCheck

O bien, en el caso de que quieras utilizar un linter particular, utiliza el comando anterior seguido del linter que quieras, como por ejemplo,

:SyntasticCheck pylint

Como ya te puedes imaginar he quitado aquellos que

Conclusión

Espero que te sean de utilidad estos complementos que te comento. Si conoces algún otro complemento o configuración que no he mencionado, y que tu utilizas para trabajar cuando editas archivos Python con Vim, no dudes en comentarlo, y lo añadiré en su caso, a este listado de complementos.


Imagen de portada de David Clode en Unsplash

1 comentario en “Python con Vim

  1. DA
    Darío hace 1 año

    Excelente como siempre Lorenzo! Gracias por compartir.
    Hay otro plugin muy interesante que andaba buscando, y es uno capaz de ejecutar líneas de código o bloques de python (a la manera de spyder). Es el que me faltaba para decidirme casi finalmente por vim, porque geany cumple muy bien las expectativas.
    El plugin se llama jupyter-vim, se merece que le hagas una reseña, mientras aprendo cómo ir usándolo.
    Saludos desde Argentina!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *