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
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 indiquesCtrlPBuffer
oCtrlPMRU
para buscar en buffer o en MRUCtrlPMixed
, 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 actualCtrl+f
oCtrl+b
te permite cambiar el modo de búsqueda de archivos a buffer.Ctrl+j
yCtrl+k
, lo utilizarás para navegar entre los resultados.Ctrl+t
oCtrl+v
oCtrl+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
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!