Apuntes mientras aprendo sobre software y computadoras.

Computación

Cómo utilizar múltiples configuraciones de Neovim

En este nuevo apunte rápido voy a estar revisando cómo utilizar múltiples configuraciones del editor de texto Neovim en un mismo equipo.

Ya en la oportunidad anterior escribí algunas ideas para utilizar Neovim con el objetivo de escribir novelas y ensayos.

Utilizar este programa tiene una gran ventaja, y eso es que las posibilidades de personalización son increíbles. Es posible descargar o generar toda una serie de herramientas y estilos para mejorar la forma en que hacemos las cosas.

Sin embargo eso último también genera un problema. Todas esas oportunidades para configurar nuestra experiencia pueden terminar por convertir un proyecto sencillo en un laberinto de opciones.

¿Cuál es la idea de hoy? Encontrar la forma de poder gestionar distintos perfiles de Neovim, uno distinto para cada experiencia que intentamos desarrollar.

Mucha de la inspiración de este apunte viene desde este sitio, que me ayudó en mi experiencia de organizar este software: Switching configs in Neovim.

¿Dónde busca Neovim su configuración?

Bueno, según el manual de instrucciones, cuando iniciamos Neovim el programa busca por defecto los datos de configuración en los siguientes directorios:

Unix: ~/.config ~/.config/nvim 
Windows: ~/AppData/Local ~/AppData/Local/nvim

Esto quiere decir que al momento de ejecutar el programa en mi computadora con Linux con el comando “nvim”, loa configuración sale del directorio “~/.config/nvim”

Ese es el directorio donde tengo por ejemplo mi “init.lua”, y donde guardo la configuración de los plugins que descargo.

El problema de eso anterior es que todo empieza a acumularse en un mismo directorio. Esto por ejemplo va a impedirme probar dos plugins diferentes que interfieren en su funcionamiento.

Instalar multiples configuraciones en carpetas distintas

Entonces sabemos que Neovim busca la configuración en el directorio “~/.config/nvim”. Llamemos a esa la configuración original, por ponerle un nombre.

Pero podemos generar en el mismo directorio “~/.config/” otras nuevas configuraciones, para completar con otros datos.

Por ejemplo podemos tener una carpeta llamada “nvim-coding” para los momentos en que hacemos código de computadora. Otra carpeta llamada “nvim-ensayos” para cuando escribimos textos largos.

Y otra más llamada “nvim-test”, que usamos simplemente para probar cambios y plugins.

En ese caso nuestro directorio se va a ver de esta forma:

~/.config/nvim-coding
~/.config/nvim-ensayos
~/.config/nvim
~/.config/nvim-test

Cuatro configuraciones distintas en el mismo directorio.

El asunto es que por ahora esto no nos sirve de nada, porque Neovim sigue buscando la configuración en “~/.config/nvim” al ser ejecutado.

La solución una vez más se encuentra en otro punto del manual.

En lugar de invocar a Neovim con el comando “nvim”, podemos hacerlo con la variable:

NVIM_APPNAME=

En ese caso por ejemplo si quiero ejecutar el programa con mi configuración “nvim-coding” hago:

$ NVIM_APPNAME=nvim-coding nvim

Ahora el programa se va a ejecutar no con la configuración de “~/.config/nvim”, se va a ejecutar con la configuración correspondiente a “~/.config/nvim-coding”.

De esta forma puedo conseguir tener muchos perfiles de Neovim conviviendo por separado en la misma máquina, sin necesidad que se mezclen las configuraciones entre cada uno de ellos.

Cómo cambiar entre distintas configuraciones de Neovim usando Bash

Existen varias formas de poner en práctica lo último. Podemos generar por ejemplo un alias de cada configuración que usamos, para hacer un atajo y no tener que recordar cada comando al usarlo.

Para no hacer este apunte más largo, vamos a concentrarnos en una solución elegante y sencilla que involucre un pequeño código de Bash.

El código es el siguiente:

vv() {
select config in nvim-coding nvim-ensayos nvim-test
do NVIM_APPNAME=$config nvim $@; break; done
}

En el código aparecen las tres configuraciones de mi ejemplo original: “nvim-coding”, “nvim-ensayos” y “nvim-test”.

¿Dónde agrego ese código de Bash?

Puedo por ejemplo agregar este código en el archivo “.bashrc” para ejecutarlo rápido. Para eso uso el comando:

$ nano ~/.bashrc

Entonces agrego el código al final del documento y lo guardo.

Para hacer el cambio efectivo ejecuto luego el comando:

$ source ~/.bashrc

Al ejecutarlo el código desde la terminal con el comando “vv” voy a recibir entonces las siguientes opciones:

1) nvim-coding
2) nvim-ensayos
3) nvim-test
#?

Y listo, con eso puedo usar este código de Bash con el comando “vv” para elegir entre múltiples configuraciones de Neovim que tengo preparadas para distintos casos.

Conclusión

Con esto termino este breve apunte sobre cómo elegir entre diferentes configuraciones de Neovim.

No es una modificación difícil de hacer, y creo que nos permite hacer muchas más cosas con este programa.

En resumen, me interesa conocer tus ideas y comentarios al respecto.

¡Hasta el próximo apunte!

Leave a Reply