Cada vez son más numerosos los trabajos que consisten en editar texto de una manera u otra, sobre todo en el ámbito de la programación y la administración de sistemas, donde las herramientas más utilizadas al cabo del día son el navegador, el editor de texto y la terminal.
A lo largo de los años los navegadores web han aumentado considerablemente sus posibilidades, cosa que aprovechamos a la hora de crear sitios web; sin embargo, seguimos editando texto de una manera muy convencional y metódica. La pregunta es, ¿por qué usamos navegadores modernos para navegar con más rapidez y más posibilidades, pero nos limitamos a escribir código (o texto) con editores de texto que no nos permiten tantas opciones?
El texto plano es un modo de comunicarnos con las máquinas que no ha cambiado durante muchos años, y que de momento parece que no vaya a cambiar. Por eso existen herramientas desde hace ya tiempo permiten manipular este texto de una manera mucho más avanzada, rápida y creativa. Me estoy refiriendo a Vim, un editor creado en 1991 por Bram Moolenaar que nos permite manejar buffers de texto como si fueran lienzos.
El workflow (flujo de trabajo) en Vim es un poco diferente al de otros editores de texto más convencionales. Disponemos de diferentes modos de trabajo, de los cuales los más usados son el modo «normal» o modo de comandos, que nos permitirá ejecutar los comandos propios del Vim para editar texto; el modo de inserción que nos permite introducir y eliminar caracteres (como en los editores de texto convencionales) y el modo visual, que nos permite seleccionar texto de forma avanzada.
La interfaz de Vim esta basada en la terminal o CLI (aunque NeoVim busca la independización de la misma), lo que quiere decir que no tendremos botones ni interfaz de ningún tipo. Al principio esto puede resultar contraproducente, pero a la larga el hecho de no tener que despegar las manos del teclado para editar texto hace el proceso mucho más rápido.
El modo por defecto en Vim es el de comandos. En el editor vienen incorporados por defecto comandos para editar el texto y navegar a traves del mismo. Cada comando es representado por una letra: h, j, k y l sirven para mover el cursor una posición a la izquierda, abajo, arriba y derecha respectivamente (aunque podemos usar las flechas de dirección del teclado). Para cambiar al modo de inserción presionamos i. A partir de este momento las teclas que presionemos se escribirán en el fichero, como estamos acostumbrados. Si presionamos la tecla Esc desde cualquier modo volveremos al modo comandos. Para guardar el fichero, desde el modo comando escribimos :w y presionamos Enter, y para salir del editor sustituimos la w por una q. Ambas acciones se pueden combinar en el comando :wq seguido de Enter.
Y es aquí donde reside la utilidad y belleza de Vim: todos sus comandos son compatibles y concatenables entre ellos, permitiendo realizar acciones complejas con tan solo presionar una combnación de teclas. Por ejemplo, w desplaza el cursor hasta el principio de la siguiente palabra. Si ejecutamos 5w irá al principio de la quinta palabra, empezando por el cursor. Si a esto le añadimos el comando d (ejecutando d5w) borraremos las siguientes cinco palabras. Conviene aprender los comandos básicos y ponerlos en práctica, para ser productivo con esta herramienta (aquí tenéis una lista lista con los más comunes y útiles)
Otro de los puntos fuertes de Vim es su universalidad: está disponible para prácticamente cualquier plataforma, lo cual significa que si nos acostubramos a trabajar con él podemos editar texto con él de una manera rápida ya sea en nuestro escritorio o remotamente en un servidor mediante SSH. Además, tiene un comportamiento homogéneo y la configuración del editor (el archivo .vimrc) es fácilmente portable, así no lo tendremos que configurar en cada máquina que usemos.
He aquí una lista con algunos comandos básicos para empezar a usar Vim de forma eficiente: