En diciembre 2021 entré a Fintoc: mi primer trabajo como ingeniero de software y una oportunidad enorme para aprender. En nuestro Notion, encontré la sección “Para ser mejor dev”. Una de las cosas que están en esta página, es un un link al video: Why Vim?.

Hace unos días me enteré que todo fue parte de un plan maquiavélico de Lukas.
Caí directo en su trampa.

En ese entonces, no sabía prácticamente nada de Vim. Ya había googleado 7 veces como salir de Vim y todavía no me acordaba. Un tiempo después de ver el video, decidí probar Vim. Aprendí mucho haciendo el cambio. Ahora espero poder enseñar un poco y transmitirles porqué es tan querido por alguno/as. Así que acá les dejo unos tips para entender un poco de Vim y su filosofía.

💡TL;DR: Con :wq puedes salir de Vim.

Editar, no escribir

Ahora en serio: Vim es un editor de texto. Un editor, en donde el foco está en editar. Suena redundante, pero la mayoría de los editores de texto (VSCode, Sublime, etc.) están pensados en agregar texto, no editarlo.

La mayoría de nuestro trabajo como devs consiste en modificar cosas que ya están ahí, y no tanto en agregar cosas nuevas: cambiando variables, renombrando funciones y más. Vim está pensado desde este supuesto y desarrolló un super poder lenguaje para editar.

Esto permite componer comandos (no shortcuts) para editar. Resultado: un editor muchísimo más expresivo que los otros. Más allá: no un editor, si no un modelo de edición, que permite editar a la velocidad con la que escribes 🤯.

Yo cuando aprendí a salir de Vim.

Movimientos

En Vim está prohibido usar el mouse. No exactamente, pero está todo diseñado para que te puedas mover con total comodidad sin la necesidad de mover tus manos del teclado.

Incluso, no es recomendable que uses las flechas del teclado. Las flechas del teclado están alejadas de las letras, que es donde realmente queremos que estén las manos. Por eso, en Vim h, j, k, l son las nuevas flechas.

Pero tampoco es lo óptimo utilizar h, j, k, l, sino que hay teclas que son más descriptivas de hacia dónde nos queremos mover. Por ejemplo, si quieres moverte a la siguiente palabra, se puede hacer con w (word). Si quieres volver a la palabra anterior, se puede hacer con b (back). Puedes ir al final de una línea con $, o sino al principio con 0.

Acciones

Los movimientos además se pueden conjugar con acciones. Una acción es algo que queremos hacer sobre un movimiento. Uno podría querer cambiar, eliminar, o copiar una palabra. Y al igual que los movimientos, las acciones también vienen en una tecla: tenemos c (change) para cambiar, d (delete) para borrar, y (yank) para copiar.

Naturalmente, si queremos cambiar una palabra, escribimos cw, y eso permite modificar la palabra en donde estamos.

De la misma forma, si queremos borrar el inicio de una línea escribimos d0.

De esta manera, todas las acciones y movimientos son combinables, lo que permite traducir pensamientos como “quiero eliminar las dos líneas de abajo” en instant gratification. Además, existen muchísimos movimientos y acciones que no alcanzaría a explicar, y muchos otros que ni siquiera conozco.

Podría parecer que uno se tiene que memorizar una infinidad de shortcuts para ser útil en Vim, pero no es así. Todos los shortcuts, suelen ser simplemente el acrónimo de lo que quieres hacer. Tal cual como cw (change word), d0 (delete, y 0 del inicio), existen una infinidad de shortcuts muy naturales. No resulta ninguna sorpresa que :wq (write y quit), permite guardar y salir de Vim.

Todo esto es el 0,1% de lo que es Vim. No hablé de plugins, macros, y una infinidad de cosas que tiene este mundo. Y eso que yo no soy ningún experto en Vim. Es probable que ni siquiera conozca el 1% de lo que es posible hacer.

Me parece que para todo dev es una buena experiencia aprender de Vim. Puede que usarlo en el día a día no sea para todos. Pero aprender al respecto, definitivamente cumple con hacerte un mejor dev.


Si te interesó lo que leíste y te gusta construir herramientas para otros desarrolladores, postula a Fintoc aquí: https://fintoc.com/jobs