Se dice que vim es más eficiente que cualquier editor de texto (obviando la existencia de emacs) porque te permite trabajar sin utilizar el ratón. Por lo que te ahorras ese valioso segundo en el que sueltas el teclado para mover el ratón a la posición que deseas estar. Además, te mantiene en un estado de flow mental constante, porque no pierdes el hilo de lo que hacías.
Personalmente (Palabra redundante para estas entradas) vim me ha ayudado a pensar antes de actuar, y mantenerme concentrado en el objetivo que quiero lograr. En general, he estado muy quemado con temas de hyperproductividad, donde, teóricamente, aplicando ciertos consejos puedes conseguir más cosas sin mucho esfuerzo, sin pensarlo.
Para moverte en vim, se dice que se utilizan las teclas hjkl (izquierda, arriba, abajo y derecha, respectivamente), para empezar a escribir, hay que presionar i, y por alguna razón, para salir guardando un archivo hay que escribir ":wq", y si no se deja, ":wq!". Cuando me explicaron esto de esa forma, yo solo me podía preguntar "¿Porqué?". Así que simplemente abría nano y listo.
Pero una parte de mi necesitaba entender el porqué, y esa pregunta se hizo más grande en cuanto me enteré de que un editor llamado "NeoVim" era tan usado y popular. Así que lo instalé, lo probé, me informé, y poco a poco he ido entendiendo ese porqué, el cuál me gustaría elaborar, no para animar a nadie a usar Vim o NeoVim, pero si para entendernos a nosotros mismos
Las teclas de Vim están pensadas como funciones, las cuáles requieren tienen un propósito específico. Por ejemplo: "f" busca el caracter que se tecleé inmediatamente después, en la misma línea donde está el cursor, y mueve el cursor ahí mismo; digamos "fa" buscará la primera letra "a" que encuentre en la línea. Sin embargo, podemos multiplicar a "f" para que busque X cantidad de veces la letra "a" y ahí se mueva el cursor. Por ejemplo: "2fa", aplicará 2 veces el comando y se moverá 2 veces hacia la a.
Muchos de los comandos de Vim se pueden multiplicar, y todos tienen una función específica. Algunos tienen variantes. "F" mayúscula hace lo mismo que "f", pero hacia atrás de la línea. "o" crea una línea debajo y entra al modo de inserción, mientras que "O" hace lo mismo, pero una línea arriba. etc etc.
Este nivel de "especificidad" puede abrumar mucho, y puede sonar innecesario, sobre todo porque el ratón solo ya hace todas esas cosas. Aquí es donde entrarían los gurús puristas a argumentar que, el usar el teclado, eres más eficiente, porque teclear "f,fo" es más eficiente para llegar a la palabra "otras" en la frase "algunas veces tenía sed de cocos, y otras no". El problema es que si no se tiene familiaridad con Vim, cosas así de sencillas pueden bloquearte, e impedirte hacer lo que se supone que ibas a hacer en primer lugar.
Intenté poner un ejemplo sencillo, para reflejar cosas más complejas de Vim. Aquí entra algo que quisiera llamar "El vicio de la productividad". Matemáticamente hablando, siempre habrá una combinación más eficiente para hacer X cosa en Vim. Por ejemplo, si quisiera ir a la función "calcular()" en mi programa, copiar su contenido, y pasarla a otra función, reemplazando las instancias donde aparezca la variable llamada "suma" por "resta". En la mente de un conocedor de Vim, ya estaría pensando en la combinación más óptima para hacer todo eso, porque Vim se usa para ser más eficiente y productivo de lo que el ratón te puede ofrecer.
Para el problema anterior, el ratón no representa un problema cognitivo muy grande, más allá del requerimiento. Para Vim, se me ocurren varias formas de hacerlo, y mi cerebro no es capaz de discernir cuál es la opción más eficiente, si no hasta que ya la estoy haciendo y pienso "Hubiera hecho este otro comando antes".
Si crees que exagero, hay una página llamada vimgolf, donde a partir de un problema, la gente intenta buscar la combinación de comandos más eficiente para hacerlo. Hay de todo, y llega a ser un dolor de cabeza entenderlo todo.
Todo esto me llevó a un enfoque más humilde sobre Vim. Ya no buscaba la forma más óptima de editar mis archivos, si no simplmente fluír con el archivo. Porque algo que aprendes de Vim con el tiempo, es que todo tiene una acción específica, y el conjunto de ellas logra tu cometido. Es como construir pequeños programas efímeros que se desvanecen en cuanto llegas a donde querías llegar. Y por ello, te obliga, por arquitectura, a pensar en lo que quieres hacer, sin divagar tanto.
Opinio que Vim no es más eficiente que el ratón porque sabiendo los comandos específicos puedas lograr el mismo resultado en 0.5 segundos en lugar de 0.9 segundos que lograrías con el ratón. Creo que el tema se orienta más hacia pensar constantemente lo que quieres hacer.
Recuerdo verme constantemente navegando por mis archivos con la rueda del ratón, subiendo y bajando por el archivo, sin saber exactamente cómo empezar a solucionar lo que se me había encomendado.
...Hablar sobre que VIM me sacó de mi área de confort, y al estar en un lugar fuera de, pude ver la vida en general de otra forma, porque me demostré que podía desaprender cosas básicas...
Lo más importante de todo, se ve cool.