Apuntes mientras aprendo sobre software y computadoras.

Computación

Mis apuntes sobre Neovim: guía práctica personal

Estás leyendo una guía personal sobre cómo usar el editor de textos Neovim.

Es el lugar dónde voy guardando las cosas que aprendo sobre ese programa.

Originalmente este era un texto sobre Vim. Pero luego dejé de usar Vim y olvidé la mayoría de lo que había aprendido. No tenía razones para dejar la página como estaba sin actualizarla.

Decidí modificar el texto para cubrir Neovim en su lugar, una herramienta que ahora estoy utilizando con algo más de confianza.

Y es bueno agregar que escribí este apunte ofreciendo mi propia experiencia, la de un principiante aprendiendo sobre el tema.

Cómo instalar Neovim en Linux

En apariencia instalar Neovim en Linux es una cuestión de un solo comando. Podemos por ejemplo utilizar la herramienta “apt” para conseguirlo.

Sin embargo creo que si queremos tener la versión más actualizada del programa, lo mejor que podemos hacer es instalarlo desde la fuente.

Escribí un apunte detallando ese proceso en esta otra entrada: instalar Neovim desde la fuente.

Un editor de texto, tres (o más) modos de uso

No voy a mentir: al principio Neovim es confuso. Y sin embargo… ¿Qué puede haber de confuso en un programa que solamente espera trabajar con texto?

Cuando abrí Neovim por primera vez, ni siquiera pude utilizarlo. Ninguna tecla parecía hacer lo que le pedía, no pude escribir ni una sola palabra.

Cada nueva tecla que apretaba causaba efectos inesperados. La confusión aumentaba.

Entonces esto es lo IMPORTANTE para eliminar esta confusión inicial:
Neovim tiene varios modos distintos para trabajar con la aplicación. La forma de encarar lo que tenemos que hacer, la configuración del teclado y las opciones que tenemos cambian según el modo que se encuentra activado.

Creo que estos modos que describo a continuación son los más importantes para empezar. El tema puede no entenderse completamente al principio, pero todo va a tomar sentido al empezar a hacer cosas.

Modo Normal (Normal Mode)

Cuando iniciamos Neovim empezamos con este modo. En este modo podemos utilizar atajos por ejemplo para movernos por la pantalla o realizar otras tareas, pero no podemos escribir texto.

Presionando en el teclado “Esc” (Escape) puedo entrar en el modo normal en cualquier momento.

Toda mi confusión anterior se explica porque no conocía sobre estos modos de utilizar el programa. Por ejemplo si en este modo presiono la letra “h” no se escribe la letra h, me muevo en realidad un espacio hacia la izquierda.

Otra vez, puede que esto no se entienda bien ahora pero va a comprenderse mejor al empezar a practicar.

Modo de Inserción (Insertion Mode)

Para ingresar texto en un archivo simplemente hay que presionar la tecla “i” en el teclado.

Esto activa el modo de edición o inserción (insertion mode), toda la edición de texto propiamente dicha se hace en este modo.

Modo comandos (Command mode)

Entramos a este modo partiendo desde el “modo normal”.

Antes de escribir un comando tenemos que apretar la tecla “:” en el teclado.

Al hacerlo vamos a notar que aparece un “:” en la parte inferior izquierda de la pantalla. Ahora agregamos la sintaxis del comando, y le damos Enter para que tenga efecto. Los dos puntos indican que vamos a ingresar un comando.

Por ejemplo puedo abrir una página de ayuda con el comando:

:help

Y puedo cerrar esta nueva página con el comando:

:q!

Ahora que conozco estos tres modos puedo alternarlos presionando:

Esc para modo normal.
i para modo edición.
: para entrar a modo comandos.

Existen otros modos de trabajo en Neovim, pero creo que conocer estos tres me ayuda a empezar a utilizar el programa de forma más rápida.

Empezar a utilizar el editor Neovim

Y empiezo a trabajar entonces en un documento desde cero, para darle luego nombre y extensión.

Puedo abrir Neovim desde la terminal de Linux de esta forma:

nvim

Ahora tengo que recordar que el programa se abre en “modo normal”.

Si quiero agregar texto presiono “i” para entrar en modo de edición.

Ahora escribimos algo, para tener material de escritura. En mi caso voy a poner algo original como:

Este es un texto de prueba.
Espero que ocupe más de dos renglones.
Como resumen, este es un texto de prueba para trabajar con vim.

Ahora digamos que queremos guardarlo. Para eso primero salimos del modo de edición y entramos en el modo de comandos presionando “Esc”, como dijimos antes.

Luego presiono “:” y el programa se encuentra a la espera de un comando, ya no puedo escribir en la pantalla.

Para guardar entonces utilizo el comando:

:w

Le damos Enter y listo, guardamos el texto.

¿Donde se guarda el texto?

El archivo se guarda en el directorio donde estabas trabajando. Si abriste Neovim cuando la terminal esta abierta en la carpeta imágenes, el texto se guarda en la carpeta imágenes.

Ahora, si queremos guardar y salir del documento la sintaxis del comando es

:wq

Para salir del documento y volver a la terminal sin guardar los cambios hacemos

:q

Hay que tener en cuenta que si no habíamos grabado el documento con anterioridad, Neovim nos va a decir que si salimos los cambios van a perderse, preguntándonos si realmente queremos salir o continuar.

Si queremos salir directamente sin ninguna pregunta, el comando es:

:q!

Si lo pensamos usando un poco del idioma ingles todos estos comandos tienen sentido. De esta forma entendemos que q es por quit (abandonar o salir).

De hecho podríamos salir del programa escribiendo directamente el comando

:quit

Pero se utiliza :q para ahorrar letras.

Saber esto sirve para que al menos comprendamos de donde viene cada uno de los comandos, al menos los más básicos. No siempre, pero en algunos casos puede servir. Si lo pensamos de este modo el aprendizaje no parece tan confuso, podemos intuir que hace cada comando si no los entendemos como letras elegidas al azar.

Comandos para cerrar y guardar archivos en Neovim

Lo que sigue es un breve apunte recopilando los comandos más comunes para guardar y cerrar archivos en Neovim.

ComandoResultado
:e nombre de archivoAbre un archivo diferente. Si presionás la tecla Tab el programa te va a mostrar que otros archivos para abrir encontrás en esa carpeta.
:wGuarda los cambios en el archivo. Si querés guardarlo con un nombre diferente, ponelo al final del comando
:qSalir de Vim. Si no guardaste con anterioridad, te va a avisar que te falta hacerlo
:q!Salís del programa directamente, sin opción para guardar.
:wqGuardar y luego salir.
: xGuardar y salir. Pero guarda solamente si hiciste algún cambio, de otro modo sale directamente sin guardar. Posiblemente el modo más rápido para salir de vim.

Movernos por la pantalla en Neovim

Movernos por el texto en Neovim no es igual que en la mayoría de los editores de textos, y ciertamente no es igual que en los editores visuales.

Las flechas del teclado no siempre van a llevarnos a donde queremos y no vamos a necesitar utilizar el puntero del artón por la mayor parte.

Las teclas que necesitamos para movernos son:

"k" (hacia arriba) 
"j" (hacia abajo)
"h" (hacia la izquierda)
"l" (hacia la derecha).

Para movernos un número determinado de letras a la derecha o a la izquierda, podemos detallarlo directamente en el modo normal.

Digamos por ejemplo 3 letras a la izquierda:

3h

O tal vez 3 lineas hacia arriba:

2k

Como si se tratase de un gran tablero, podemos designar los espacios que nos movemos hacia cada lado.

Para que tengas como resumen, esta es la lista de movimientos que podes hacer en el modo normal:

ComandoMueve el cursor…
j
flecha arriba
una linea hacia arriba.
k
flecha abajo
una linea hacia abajo.
l
flecha derecha
un espacio a la derecha.
h
flecha izquierda
un espacio a la izquierda.
eal final de la palabra.
w al principio de la siguiente palabra
Eal espacio vació entre dos palabras.
bal principio de la palabra.
Bal principio del espacio vació entre dos palabras.
0al principio de una linea.
^al primer espacio ocupado de una linea.
$al final de la linea.
HA la primera linea en la pantalla.
MA la linea en la mitad de la pantalla.
LA la última linea de la pantalla.
:nSalta a la linea número “n”. Por ejemplo, :15 va a la linea núm 15.

Borrar y modificar texto en Neovim

Si queremos borrar una linea entera, ponemos el cursor detrás de la linea que queremos borrar y usamos el comando:

:dd

Si queremos borrar múltiples oraciones, agregamos el numero de lineas delante del comando. Digamos que queremos borrar 5 lineas, el comando quedaría como:

:5dd

Como resultado del comando vamos a borrar los cinco renglones de texto por detrás del cursor.

Como apunte, estos son otros movimientos para el modo normal (y algún comando extra) para borrar texto en Neovim.

Comando Resultado
iInsertar texto delante del cursor.
IInsertar texto al principio de la linea donde nos encontramos.
aAgregar texto después del cursor.
AAgregar texto al final de la linea en la que nos encontramos.
oAbre una nueva linea al final del texto y nos permite escribir.
OAbre una linea en la parte superior del texto y nos permite escribir.
CBorrar el resto de la linea donde nos encontramos
rSobre escribir un carácter. Luego vuelve al modo de comandos.
REntra en modo de edición, pero reemplaza caracteres en lugar de agregar nuevos.
EscSalir del modo de edición para entrar en modo normal.
xBorra caracteres por detrás del cursor.
XBorra caracteres por delante del cursor.
dd
:d
Borra la linea donde nos encontramos

Buscar en Neovim

Pensemos que necesitamos encontrar una palabra en el texto. La palabra para buscar en nuestro texto de ejemplo es prueba. El comando nos queda:

/prueba/

Podemos buscar una palabra al comenzarla y terminarla con la tecla /. Es posible buscar la próxima coincidencia en el archivo presionando n y con N podemos movernos a la coincidencia anterior.

También podemos conocer por ejemplo el número de linea en el que se encuentra el cursor. Para eso escribimos el comando:

:set number

y para dejar de ver el número de linea escribimos:

:set nonumber

¿Cómo hacer y deshacer cambios en Neovim?

En Neovim tenemos algunos de los siguintes atajos para hacer y desahcer cambios, que podemos utilizar en el modo normal:

uDeshacer la última acción.
UDeshacer todos los últimos cambios hechos en el texto.
Ctrl + rRehacer el ultimo cambio deshecho.

Instalar plugins de forma manual en Neovim

Neovim tiene la ventaja de poder ser personalizado en muchas formas. Una de estas formas de personalización se realiza gracias a plugins, configuraciones que pueden ser descargadas de la red para aumentar su funcionalidad.

Escribí esta otra entrada para saber cómo instalar plugins de forma directa en Neovim.

Cómo utilizar múltiples configuraciones en Neovim

Neovim es una herramienta muy versátil. Podemos tener una configuración para escribir código, y otra para escribir ensayos o para probar nuevas cosas.

En esta otra entrada explico cómo poder utilizar múltiples configuraciones de Neovim en el mismo equipo.

Cómo utilizar Neovim para escribir textos largos

Neovim es utilizado por lo general para escribir código de computadora. Sin embargo es posible utilizarlo para escribir de todo, desde ensayos y cuentos hasta novelas, libros o guiones cinematográficos.

En esta otra entrada comparto en que forma configuré Neovim para escribir textos largos.

Cómo utilizar servidores de lenguaje (LSP) en Neovim

En Neovim es posible darle soporte a diferentes lenguajes de programación por medio de lo que se conoce como el protocolo de servidores de lenguaje.

De esta forma el procesador de textos actúa como un cliente para alguno de estos servidores, que nos habilitan distintas opciones: diagnostico de errores y auto completar, entre los ejemplos más notables.

Hay al menos dos alternativas que tenemos para manejarnos con este tema:

1- Es posible ajustar la configuración del LSP de forma manual.

2- También podemos vincular el LSP por medio de un plugin.

La primera opción es interesante para entender un poco más la forma en que funciona todo esto. Pero el proyecto va a demandarnos más tiempo, y no todos los lenguajes resultan igual de sencillos para configurar.

La segunda opción es más sencilla, e implica solamente utilizar el complemento “nvim-lspconfig”.

De cualquiera de las dos formas, al poner en funcionamiento uno de estos servidores vamos a poder utilizar Neovim como un entorno para programación de la misma forma que usamos otros programas como VSCode.

Cómo integrar LaTeX en Neovim

En esta entrada reviso en qué forma podemos utilizar el lenguaje de tipografía LaTeX para organizar documentos desde Neovim.

Escribí el apunte pensando en cómo podemos sacarle mejor provecho para por ejemplo crear ensayos y proyectos académicos.

Se puede leer el texto completo en este enlace: Guía para Neovim y LaTeX en la universidad.

Conclusión:

Neovim es confuso cuando empezamos a usarlo. Luego, cuando tenemos más practica, notamos que sigue siendo confuso.

Por supusto con lo anterior estoy bromeando, Neovim es una excelente herramienta, que vuelve la actividad de escribir mucho más divertida.

Con un poco más de practica empezamos a conocer como navegar sus comandos, y usarlo se vuelve relativamente más sencillo. Es difícil desprenderse de años de usar un procesador de textos visual, que depende en gran medidas del mouse.

De algún modo tomar la costumbre de usar Neovim es casi como un pasatiempo o un deporte en si mismo. Es útil de conocer, y no esta de más abrirlo de vez en cuando para entenderlo.

¿Utilizás Neovim? ¿O alguna otra alternativa ?¿Se te ocurre alguna idea para mejorar este apunte? Cualquier idea que tengas, es posible contactarme con el correo electrónico, buscalo en la pestaña de contacto.

Recursos: