El atareao atareao  

Mi experiencia con Vim

Desde comienzos de este mismo año, Vim se ha convertido en mi editor por defecto y preferencia en mi equipo personal. En el trabajo, estoy mucho mas tiempo con Visual Studio Code que con Vim. Sea como fuere, utilizo ambas herramientas de forma indistinta, y para cualquier actividad, desde tomar notas, hasta redactar un documento. Es decir, que no lo utilizo exclusivamente para escribir código, sino que lo utilizo para todo. Y esto se nota. Y ¿a que viene esto contarte mi experiencia con Vim?

A lo largo de este año, me he ido observando a mi mismo. Viendo aquellos aspectos que eran susceptibles de mejora. Que otros aspectos debía potenciar, y cuales debía erradicar por completo del uso de Vim o Visual Studio Code.

Mi experiencia con Vim

Mi experiencia con Vim

Antes de nada quiero hacerte una aclaración. Por un lado, no pretendo convencerte de que te pases a Vim. Solo quiero contarte mi experiencia por si a ti te puede ser de utilidad. Dicho esto, indicarte que mi experiencia no es mas que eso, mi experiencia, y que llevada a tu terreno, puede ser o todo un éxito, o simplemente una experiencia frustrante.

Aunque todo lo que te explico está enfocado a Vim, lo puedes aplicar perfectamente a cualquier otro editor de texto, no solo a Vim. Así muchas de las prácticas que comento son asimilables por Visual Studio Code. Está claro que los atajos de teclado o complementos no son los mismos, pero seguro que se puede encontrar una alternativa similar, a la que te explico aquí.

Por otro lado, no pretendo que aprendas todos los atajos de teclado, comandos, trucos y demás consejos que te voy a indicar de aquí en adelante. Por que aunque te parezcan fabulosos, conforme los oigas, los vas a olvidar… ¿como?. Lo que has oído. Por lo menos esto es lo que me ha sucedido a mi.

En ocasiones leo algún truco que me parece excepcional, brutal y maravilloso, sin embargo, si no comienzo a utilizarlo, se me olvida y queda en el baúl de los recuerdos. Queda en el baúl de los recuerdos hasta que un día me hace falta, y entonces recuerdo …había algo para hacer esto mas fácilmente.

El objetivo de este podcast en el caso de que utilices Vim es que sepas que ese truco, idea, atajo, comando… existen, y que llegado el día lo puedes utilizar. Pero insisto, no es para que te lo aprendas ahora mismo o para que tomes nota.

Los 10 dedos sobre el teclado

Aunque esta metodología, lleva conmigo una buena temporada, ha sido Vim, quien lo ha llevado a su máximo exponente. Y es que gracias al modo de funcionamiento de Vim, esto cobra realmente sentido. Esto no quiere decir, que esta metodología no se pueda aplicar a cualquier otro editor. Por supuesto que se puede, la cuestión es que con Vim, no tienes mas remedio que hacerlo de esa forma.

Sin embargo, todavía he sacado mas provecho de los 10 dedos desde el momento que dejé de utilizar las flechas de cursor. De nuevo esto ha sido necesario, en tanto en cuanto, el teclado no las tiene. Y aunque esto te pueda parecer una tontería, lo cierto es que no tener que desplazar los dedos en busca de esas malditas, es un ahorro considerable.

Editar dos archivos de forma simultánea

Uno de los aspectos que mas han transformado mi trabajo al hacerlo con Vim, ha sido la posibilidad de editar dos archivos, uno al lado de otro. Esto, es evidente que lo puedes hacer con casi cualquier editor. Sin embargo, de nuevo, la ventaja de Vim, básicamente radica en el hecho de que no despegas los dedos del teclado para moverte entre los dos archivos. Y quieras que no, esto se nota, y se nota mucho.

Aquí esto de dividir Vim en dos con un simple :vs es sencillamente brutal. Una vez dividido en dos, solo tienes que abrir el archivo que necesites con un :e.

Tienes que tener en cuenta que al tener los dos archivos abiertos en la misma sesión de Vim, puedes copiar y pegar directamente, es decir, sin utilizar el portapapeles del sistema o un registro para copiarlo. Directamente con y y p, puedes copiar a la velocidad del rayo.

Editar un archivo y el terminal

Una gran parte de mi tiempo la dedico a escribir tutoriales, artículos y los guiones del podcast. En casi cualquiera de estos tres tipos de documentos, tarde o temprano, termina por aparecer el terminal. O bien, para indicar unas instrucciones de instalación o bien para mostrar un script o para comentar una parte de código.

Normalmente mientras escribo el artículo o tutorial, ejecuto las instrucciones o el script, para asegurar que todo funciona correctamente. Y con todo y con eso, siempre meto algún gazapo. Es en esos momento de ejecución del script cuando aprovecho para trascribirlo al artículo o tutorial. Y esto lo hago con Vim.

Vim te permite tener un terminal en el propio entorno. Pero no solo tener el terminal, sino que además, tienes a tu disposición los famosos modos. De esta manera puedes pasar al modo normal donde desplazarte y copiar es muy sencillo. Y al igual que te he indicado anteriormente, tienes que tener exactamente en cuenta lo mismo, puedes copiar y pegar sin utilizar ni el portapapeles ni un registro, solo y y p.

Siempre existe un método mas fácil

Para cualquier cosa que quieras hacer existe una forma de hacerlo más fácil, siempre existe una forma de hacerlo más fácil. Así que se trata siempre de realizar una búsqueda para ver como se puede hacer. Una vez encontrado, empezar a utilizarlo. Esto me ha funcionado muy bien a mi.

Por ejemplo, algo realmente básico, pero que no había caído en ello. Cuando te mueves en una línea entre caracteres utilizando las teclas f y F para buscar hacia adelante o hacia atrás respectivamente, puedes seguir navegando utilizando , y ;. Esto mismo lo puedes hacer por supuesto con / y con ? pero a nivel global.

Trabajando con texto

Recientemente publiqué un capítulo adicional del tutorial sobre Bash, en este caso dedicado a [trabajar con texto en Bash](). Claro, damos por supuesto que un editor de código también debería hacer este tipo de cosas, antes que borrar la palabra en cuestión y volverla a escribir. Pero, sinceramente, ¿como transformas una palabra de mayúsculas a minúsculas en tu procesador de texto?. Con Vim es tan sencillo como guw o guiw.

Pero esto no es mas que la punta del iceberg de las posibilidades que te ofrece Vim a la hora de trabajar con texto. Todo ello lo puedes leer en el capítulo del tutorial sobre Vim titulado el lenguaje de Vim. Aquí te explico como utilizando el propio lenguaje de Vim, puedes editar de forma sencilla texto, sin necesidad de aprender cientos de atajos de teclado, sino simplemente formando frases.

Por ejemplo, para borrar una palabra puedes utilizar diw o para sustituirla por otra ciw y así sucesivamente. Y por supuesto no solo con palabras, sino también con frases completas.

ejemploguu

Decenas de consejos y sugerencias

Vim es un empezar y no parar, hay decenas de sugerencias para hacer cualquier cosa que puedas imaginar. Y es que esto parece un saco sin fondo, donde puedes sacar trucos, como si de la chistera de un mago se tratara.

De hecho, actualmente sigo, creo recordar, un par de cuentas en Twitter, que diariamente publica algún truco o consejo sobre el uso de Vim. Cierto es que algunos los conozco, pero siempre me sorprende con algo que no conocía, que yo no utilizaba o que no utilizaba de esa manera.

Por ejemplo,

  • Vim incorpora una calculadora, para ello simplemente cuando estés en modo insertar, utiliza el atajo de teclado ctrl+r seguido de = y la operación que quieras realizar.
  • Con el comando :reg puedes ver el contenido de todos los registros o portapapeles. Recuerda, que en Vim tienes muchos portapapeles.
  • Puedes ejecutar cualquier comando del terminal directamente en Vim utilizando :!. Por ejemplo si quieres listar los archivos que se encuentran en el directorio utiliza :!ls, pero si además quieres incluirlos en el archivo en el que estás trabajando, tienes que utilizar :r!ls. Por ejemplo, si quieres añadir la fecha :r!date
  • Es posible editar un archivo en un servidor remoto utilizando scp con Vim. Para esto ejecuta lo siguiente vim scp://usuario@servidor//home/lorenzo/sample.py. Ciertamente podrías ir al servidor a realizar la edición, pero jugando en casa tienes la ventaja de tener Vim configurado según tus gustos. También lo puedes abrir desde dentro del propio Vim en una nueva ventana utilizando :sp scp://usuario@servidor//home/lorenzo/sample.py.
  • Para aumentar y disminuir la sangría solo tienes que utilizar << y >> desde el modo normal. Por supuesto si lo precedes de un número, la sangría la aplicarás a todas las líneas que hayas indicado.
  • Puedes desplazarte en tu historial de movimientos utilizando ctrl+o y ctrl+i. Pero además con :ju puedes listar todos los movimientos que has realizado.
  • De la misma forma, también puedes listar todos los comandos que has introducido utilizando :history.
  • Puedes moverte entre frases utilizando ( y ). De la misma manera puedes desplazarte utilizando gj o gk.

Y así sucesivamente…

No te vuelvas loco con las extensiones y complementos

Una de las trampas en las que suelo caer con facilidad, es la de instalar extensiones como si se fueran a terminar mañana. Ya te digo que mañana no se van a terminar.

Al menos a mi me sucede, que en lugar de utilizar las herramientas que el editor pone a mi disposición, me empeño en instalar algún complemento o extensión. Esto lo hago, porque no se que Vim o Visual Studio Code puede hacer esto, o como hacerlo.

Yo intento reducir al máximo el número de extensiones que tengo instaladas. Y por otro lado, intento aprovechar al máximo las opciones y posibilidades que ofrece Vim o Visual Studio Code de caja.

El tema es importante

Hasta hace unos pocos meses, no le he dado importancia al tema que utilizaba, ni en el terminal, ni en Vim, ni en Visual Studio Code. Sin embargo, me he dado cuenta, que tiene mas importancia de la que yo pensaba.

Básicamente esto está relacionado con lo que te comenté en el episodio 229 del podcast sobre el camino hacia el tema oscuro. En este episodio te hablé sobre el consumo de energía, y la salud ocular. Y precisamente es en este segundo aspecto, donde mas he notado la ventaja de utilizar un tema cómodo tanto para Vim como para Visual Studio Code.

Actualmente estoy utilizando Ayu. Este tema está disponible tanto para Visual Studio Code como para Vim. Se caracteriza por ser simple, brillante y elegante… Sobre todo brillante.

Tiene tres variaciones de colores, dos mas oscuras y una mas clara. Esta última la puedes utilizar entornos con mucha luz, mientras que las otras dos, en entornos mas oscuros.

Nunca se para de aprender

Por último, con Vim o Visual Studio Code, nunca se para de aprender. Pero no solo esto, con Vim nunca pares de aprender, de esta forma mejoras en su utilización, y mejora tu productividad.

Como he comentado anteriormente, en cualquier sitio, en cualquier circunstancia, puedes encontrar una perla que mejore sustancialmente el uso de Vim.


Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.

Imagen de portada de Jason Strull en Unsplash

La entrada Mi experiencia con Vim aparece primero en Atareao.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.