Navigate back to the homepage

(neo)vim autocmd

Alejandro Amaral
January 1st, 2021 · 1 min read

VIm (neovim en realidad) es mi editor de texto/código favorito. Y hacía un tiempo que no descubría una característica que cambia mi forma de trabajar. Siempre se dice, cómo una especie de cliche, que uno puede usar VIm durante años y descubrir cosas nuevas. Y es verdad.

Haciendo limpieza en los dotfiles (estoy de vacaciones 😎), me encontré con la molesta tarea de tener que recargar el archivo de configuración de VIm y tumx y sxhkd y bspwm y… La verdad que era un tedio importante. Hasta que recordé que había visto en algún lado que VIm traía un comando para realizar acciones cada vez que se guardaba un archivo. 5 búsquedas en Google más tarde ya sabía lo suficiente sobre el maravilloso autocmd.

Autocmd permite ejecutar cualquier acción según un evento. Leer o escribir archivos, buffers, ventanas, etc, casi todo genera eventos que nosotros podemos explotar. Pero veamos un ejemplo para entender mejor la documentación anterior

Para recargar automáticamente Neovim al guardar init.vim sólo basta con

1:autocmd! BufWritePost $MYVIMRC source $MYVIMRC | redraw

Autocmd define el comando, BufWritePost en el evento que se dispara después de guardar el archivo $MYVIMRC. Source $MYVIMRC es el comando para volver a cargar el archivo de configuración. Y por último hacemos un pipe a redraw para que refresque la pantalla.

Pero esto es la punta del iceberg. ¿Que te parece combinar esto con comandos de la terminal?

I've got the power

Cada vez que se edite el archivo de configuración sxhkdrc, reinicia sxhkd (un hotkey daemon) y manda una notificación de escritorio avisando que fue reiniciado.

1" Recargar los atajos de teclados al editar sxhkdrc
2autocmd! BufWritePost ~/dots/sxhkd/sxhkdrc silent exec "!pkill -USR1 -x sxhkd;notify-send 'sxhkd reloaded'" | redraw

¿Querés más?. ¡Podemos recompilar programas al editar el archivo de configuración!

1" Recompila ST al editar el archivo de configuración
2autocmd! BufWritePost ~/dots/st/config.h silent exec "!cd ~/Development/src/st/;make -j2 && make install 2>&1 /dev/null && notify-send 'ST recompilado'" | redraw

En este caso recompila la terminal ST cada vez que se cambia el archivo de configuración, avisandonos con una notificación si la compilación fue exitosa.

TL;DR.

autocmd es un comando que puede tener un fuerte impacto en la manera que trabajas. Vale muchísimo la pena revisar la documentación, seguro vas a encontrar cosas para automatizar.

More articles from Estoico

Preparando la huerta

Estamos cerca de la llegada de la primavera y hay que empezar con los preparativos de la huerta.

August 21st, 2020 · 1 min read

Biblioteca

Mi lista de libros leidos.

July 18th, 2020 · 1 min read
© 2020–2021 Estoico
Link to $https://github.com/logico-devLink to $https://www.linkedin.com/company/narative/