Introducción a Neovim

Índice


Última actualización: Viernes 19 de agosto del 2022

Pantalla inicial de Neovim

Siempre fui reacio a utilizar cualquier editor de texto que no fuera nano en GNU/Linux. Es extremadamente sencillo de utilizar, simplemente se debe tipear nano <archivo> y voilà, a editar, y salvar los cambios con Ctrl+O. Pero siempre escuché aquellas palabras; «Ningún editor es tan poderoso como Vim», «Una vez que te acostumbres nunca abandonarás Vim», «Ninguna persona que sepa utilizar Vim usa algo más». Y pues, siempre me dio curiosidad esa especie de submundo al que todos hacían referencia.

Así que un buen día, ya hace un par de años, decidí probar vim. Tenía un pequeño archivo llamado ejemplo.txt que había creado con nano, así que sólo escribí en mi terminal

vim ejemplo.txt

Y todo comenzó. Debo decir que no fue una experiencia placentera para nada. Me topé con una pantalla llena de virgulillas (~) y en la cual no podía escribir nada; cada tecla activaba alguna función confusa (especialmente para un usuario principiante como lo era yo), pero por más que lo intentaba nada podía escribir. Finalmente, por medio de ensayo y error, comprendí que para insertar texto primero debía presionar la letra i. «Contraintuitivo —pensé–, ¿por qué un editor de texto no inicia en modo de edición?». Bueno, escribí lo que se me vino a la mente y decidí que era hora de guardarlo. Pero… ¿cómo? No tenía idea de cómo guardarlo. Pero lo que era peor, no tenía idea de cómo salir de allí. Ctrl+c no funcionaba, tampoco Ctrl+x ni ninguna combinación similar (aunque sí aparecían textos variados en la parte inferior de la pantalla, a los que traté de no prestar atención al estar yo absorbido en mi empresa). Me rendí y lo busqué en internet; resulta que existían varias formas de salir, :q!, :wq, ZZ… Pero entendí que hasta lo más básico era innecesariamente complicado de hacer, y me rendí. Me quedé con nano y así fui feliz.

Esta mes, sin embargo, tuve bastante tiempo libre, y mi mente curiosa de nuevo pensó en Vim. Decidí aprender a usarlo, sin importar las dificultades. Y la verdad, conseguí dominar lo básico mucho más rápido de lo que creí, y lo que es más sorprendente, me pareció tan intuitivo y poderoso que decidí que sería mi editor por defecto.

Si como yo siempre quisiste embarcarte a aprender Vim, aquí dejo lo más importante que he aprendido en el último tiempo para ayudarte.

Vi, Vim, Neovim

Antes de empezar, es necesario hacer una aclaración. Vi significa «editor visual», fue un editor de texto diseñado para el sistema operativo Unix en la década de 1970. Por otra parte, Vim significa «Vi Mejorado», es un editor de texto basado en Vi pero con numerosas mejoras. Finalmente, Neovim es un derivado de Vim relativamente reciente, diseñado especialmente para utilizar por defecto las funcionalidades que ofrecen los sistemas operativos modernos de las que Vim no hace uso por razones como retrocompatibilidad. Como Neovim es el más recomendado, decidí utilizar este en mi jornada y en el presente tutorial, pero lo básico también debería funcionar en otras versiones.

Instalación

Para empezar a usar Neovim, primero es necesario instalarlo en nuestro sistema operativo. Existen instrucciones detalladas en su wiki (en inglés).

Si te encuentras en una distribución GNU/Linux basada en Debian o Ubuntu (como Trisquel), lo más sencillo es abrir una terminal y tipear:

sudo apt install neovim

Primeros pasos

Una vez instalado, puedes lanzarlo tipeando en la terminal:

nvim

Una vez hecho eso, deberías haber entrado en Neovim.

Verás entonces una pantalla con coloridas virgulillas (~) marcando cada línea, indicando que se encuentran vacías (o, más precisamente, que no existen en el archivo). Si es tu primera vez, también es posible que aparezca un mensaje de bienvenida en inglés en el centro, el cual desaparecerá en cuanto comiences a agregar texto. La visión puede parecer muy diferente a la de nano y la de otros editores, pero descuida, al final hará lo mismo y mucho más.

Primero que nada, NO intentes escribir todavía. Yo cometí ese error la primera vez y sólo fue frustrante. El editor de texto Vi, así como todos sus derivados, inicia en el llamado modo normal o de comandos, y allí no puedes escribir directamente, al menos no de manera tradicional. Pasemos a otro modo: presiona la letra i en el teclado. Si aparece un INSERTAR en la parte inferior de la pantalla, significa que has ingresado en el modo de inserción; ya puedes escribir lo que gustes. Inserta varios párrafos; cuando estés satisfecho, presiona Esc (debería estar en la parte superior izquierda de tu teclado) para volver al modo normal.

En el modo normal, puedes moverte a través del texto utilizando las flechas del teclado, o bien con las letras h, j, k y l. Intenta con las flechas primero y, una vez te sientas cómodo, prueba con las letras mencionadas.

Sin salir del modo normal, prueba borrar algunos caracteres: mueve el cursor sobre alguna letra y presiona la x. La letra desapareció, ¿verdad? Si quieres volver a como estaba antes, presiona la u, que deshace cualquier acción realizada sobre el texto.

Prueba volver al modo de inserción con la i, escribe algo, vuelve al modo normal con Esc y luego restaura todo con u. Ctrl+r deshará la acción de u. Muy útil, ¿verdad?

Llegó el momento de guardar el archivo y salir. Si iniciaste neovim con el comando nvim, así sin más, debes especificar el nombre de archivo también. Simplemente presiona Esc para asegurarte de que estás en el modo normal, tipea los dos puntos (:), y agrega w <nombre de archivo>. Por ejemplo, si quieres nombrar tu archivo "prueba.txt" basta con escribir:

:w prueba.txt

Y luego, para salir:

:q

Recuerda presionar la tecla Enter al finalizar cada comando iniciado con los dos puntos. Si todo salió bien, el comando ls debería mostrar el archivo prueba.txt en tu carpeta. Para volver a editar este archivo, simplemente pon

nvim prueba.txt

Y volverás al archivo (en modo normal, siempre recuerda eso). Agrega más texto presionando la i, un párrafo más si quieres, y una vez satisfecho puedes salir y guardar tus cambios con un solo comando

:wq

O bien con un combo de teclas

ZZ

Para salir sin guardar, usa

:q!

Más funciones

Tutorial de Neovim

Figura 1: Tutorial de Neovim

Con esto ya deberías poder hacer lo básico, insertar texto, pero hay mucho más detrás de este programa:

  • v te permite ingresar al modo visual; para hacerlo sencillo, te permite seleccionar texto. Amplía la selección con las flechas (o con hjkl), y copia con la letra y. Luego, en cualquier otro lugar del texto, y en modo normal desde luego, pega con la letra p.
  • Los operadores facilitan mucho el trabajo de manipular texto. Por ejemplo, $ es un operador que indica «hasta el final de la línea». Así, d$ significa «elimina todo desde el cursor hasta el final de la línea», y efectivamente lo hace. e significa «hasta el final de la palabra»; de borra todo desde el cursor hasta el final de la palabra en la que se encuentra. Puedes usar estos operadores con otras letras; por ejemplo, y$ copia todo desde la posición del cursor hasta el final de la línea.
  • dd borra toda la línea en la que se encuentra el cursor. Habrás notado que acciones con la letra d involucran el borrado; esa es precisamente la acción que le corresponde. Recuerda que puedes deshacer cualquier cambio con u, incluso puedes presionarla repetidas veces para deshacer varias acciones.
  • gg te lleva al principio del archivo, G te lleva al final. De hecho, muchas letras cambian su comportamiento si las escribes en mayúscula; o inserta una nueva línea debajo de aquella en la que te encuentras y te lleva al modo de inserción, mientras que O hace lo mismo, pero inserta la nueva línea arriba.
  • 0 (número cero) te lleva al principio de la línea, $ al final. Con ( y ) navegas entre oraciones, con { y }, entre líneas o párrafos. b, e y w (así como sus contrapartes B, E y W) tienen funciones similares pero con palabras, pruébalas para ver las diferencias.
  • c equivale a d, pero te deja en modo de inserción automáticamente para realizar cambios más rápido (de hecho c proviene de change, «cambiar»). Por ejemplo, c$ borra todo desde el cursor hasta el final de la línea, y luego te deja en modo de inserción para que empieces a escribir inmediatamente.
  • Con algunos atajos se pueden realizar acciones ahorrando pulsaciones de teclas. Por ejemplo, D equivale a d$; C equivale a c$; I te permite entrar en modo de inserción, pero al principio de la línea; A también te lleva al modo de inserción, pero al final de la línea.
  • Los números permiten multiplicar las acciones de los comandos. Por ejemplo, 3dd elimina tres líneas desde la posición del cursor (incluyendo aquella en el que se encuentra).
  • r te permite reemplazar una letra por otra, útil para correciones rápidas. Con R ingresas en el modo de reemplazo, en el cual cada carácter ingresado reemplaza otro.
  • / te permite buscar en el texto, por ejemplo /Hola te permitirá encontrar esa palabra. Presiona n para ir a la siguiente coincidencia y N para la anterior.
  • Ctrl+p (Ctrl y luego p) intenta autocompletar la palabra que estás tipeando si coincide con otra existente en el texto; este, a diferencia de otros comandos, funciona en el modo de inserción. Es muy útil para aquellos casos en los que hay una palabra especialmente complicada que debes escribir muchas veces.

Está totalmente fuera del alcance de este artículo explicar todas las funciones de Neovim, o incluso la mayor parte de ellas, pero creo que esta es una buena base para que el lector continúe explorando por su cuenta. Por ejemplo, consultando la recopilación de comandos que hace sl1200 (necesitarás un navegador Gemini como Lagrange):

  • gemini://sl1200.dystopic.world/recursos/neovim.gmi

Si sabes inglés, recomiendo totalmente probar el tutor que se incluye en Neovim y al que puedes acceder tipeando

:Tutor

¿Por qué Neovim?

Neovim editando un archivo de C

Figura 2: Neovim editando un archivo de C

Quizá puedas preguntarte, ¿por qué aprender a utilizar Neovim existiendo otros editores más sencillos? Pues existen varias razones:

  • Un editor como Vi o Vim estará presente en básicamente todo sistema derivado de Unix, desde GNU/Linux hasta macOS y *BSD. No siempre tendrás una alternativa a mano, así que aprender (neo)vi(m) siempre es una buena idea.
  • Una vez que te acostumbres a los atajos de teclado, editarás archivos mucho más rápido que con otros editores. dd, D, r y demás simplemente vuelve todo más eficiente.
  • Puedes insertar el resultado de un comando ejecutado en la terminal directamente dentro del editor; por ejemplo, :r !ls escribe el resultado del comando ls.
  • Puedes insertar el contenido de otros archivos. Por ejemplo, intenta crear un nuevo archivo y en él tipea, en modo normal, :r prueba.txt
  • Incluso puedes guardar ciertas partes del texto en otros archivos. Por ejemplo, ingresa al modo de selección con v, selecciona algo de texto, y luego escribe :w algo.txt
  • Puedes personalizar todo a través del archivo init.vim, aunque requiere algo de práctica.

¡Y mucho más! Eso es lo grandioso, llevo varias semanas aprendiendo de este editor de texto y solamente estoy arañando la superficie. No me imagino las complejas características que oculta todavía.

PD: Este artículo fue escrito con Neovim.

⌂ Volver a la página principal