Real Programmers

Hace aproximadamente dos años atrás, era un usuario frecuente de Sublime Text, me encantaba el tema Monokai, y aún más la velocidad con que abría archivos. Era bonito, eficiente, minimal, satisfacía todas mis necesidades como newbie en el mundo de la programación, pero todo cambió cuando conocí VIM.

Backstory

Debo confesar que primero partí con EMACS, y como todo hackerman, me creía bacán por abrir un editor desde la terminal, porque, mientras más avanzaba en mi carrera, más frecuentemente pasaba en esta (¡aguanten los sistemas *NIX!). Luego, al navegar por las turbias aguas del internet, descubrí la eterna discusión de VIM vs EMACS (ó EMACS vs VIM, para no ofender a nadie), así que empecé a mirar para el lado, y abrí VIM por primera vez.

No supe como salir

Una vez abierto VIM, quería empezar a escribir, y para mi sorpresa, tenía un comportamiento raro, no hacía lo que yo quería, me sentía asustado, con miedo, quería escapar, salir; pero no podía. La única solución, fue cortar la luz de mi casa.

La puerta al infierno cielo

Obvio que VIM no se comportaría como yo quería, porque no se comporta como un editor de texto normal, ya que tiene distintos modos. La verdad, es que me produjo curiosidad, ganas de explorarlo, de conocerlo, adentrarme más en esta belleza de software, y eso hice, y después de dos años, puedo decir, que aún no sé como salir de VIM.

No pretendo enseñar VIM, pero si te animas, ¡bacán!, hay millones de tutoriales, para linux está el vimtutor, e incluso un juego que te enseña lo básico; el objetivo de esta nota es explicar el por qué aún lo ocupo, y por qué soy purista.

No más mouse

En lo personal, no soy muy amigo de los Drag & Drop, por eso me gusta estar metido en la shell, revisar lo más posible desde ella, editar videos, editar imágenes, programar, have all the fun! y VIM es especialmente genial por esto. Es un editor que lo único que necesita es una terminal!, eso quiere decir que puedes correrlo de forma remota sin ningún problema por ssh, o incluso editar desde una tostadora.

Fast navigation

Una vez aprendida la diferencia entre los distintos modos, y el flujo especial de VIM, puedes hacer cosas bastantes interesantes. Una de las más básicas es la navegación rápida. Usando los Relative Numbers y hjkl, ¡puedes ir diréctamente a la linea que deseas sin alejar la mano del teclado (ni apretar mil veces las flechas)!

Fast edition

VIM tiene ciertas características bastante interesantes, una de ellas, es el tratamiento de las palabras como objetos, que, en resumen, es tratar cada palabra como un objeto independiente, permitiendo una manipulación bastante rápida. Por ejemplo, es muy fácil eliminar una palabra, reemplazarla, eliminar 2, navegar entre ellas, etc.

Los brackets, paréntesis, comillas también son objetos, y se pueden usar en la edición, para, por ejemplo, borrar todo lo que hay dentro de estos. Además, con la ayuda de los plugins de tpope (VIM-surround & VIM-repeat), puedes envolver palabras con mucha facilidad, si por ejemplo, deseas pasar una lista de int a str

The fun is just starting

Hay muchas cosas dentro de este magnífico software que probablemente se me olvidarán mencionar, pero son útiles día a día. Algunas de ellas son las macros, la habilidad de crear comandos a partir de keystrokes, los buffers o incluso el autocompletado. VIM es una magnífica herramienta que más que acelerar un flujo de trabajo, lo hace más cómodo, más entretenido.

Ejemplo de macro

Ejemplo de autocompletado

La mejor inversión ever

Créanme, VIM tiene una curva de aprendizaje logarítmica, cuesta mucho comenzar a tomar impulso. Después de dos años programando de forma seguida, aún sigo aprendiendo de sus gimmicks y trucos secretos, pero lejos, ha sido una muy buena inversión de mi tiempo. Cuando entré a trabajar intenté ocupar algún editor que me ayude en entornos más grandes, pero siempre terminé volviendo a VIM, por su fluidez, interfaz limpia, y sus maravillas propias. VIM sirve para entornos profesionales.