perri.to: Un mejunje de cosas

Volviendo a emacs

  2015-09-04


Sí, ya sé, me convendría más hablar de religión, política, guerra o cualquier otro tema menos sensible para los desarrolladores de todo el mundo.

Un poco de contexto.

Fui durante muchos años (unos 10 si cuento bien) usuario de Vi, pero no siempre fue así. Como la mayoría de los devs de mi edad, empecé usando el editor Turbo* (Turbo C en mi caso), que seguramente tenía un nombre, pero nunca me tomé la molestia de aprenderlo.

Durante mi etapa de andar dándome la cabeza contra los primeros pasos de la programación, ese era el paradigma de la edición; incluso me burlaba de esos pobres usuarios de VB que tenían su editor manejado por clics (ya sé que era un tonto, ese editor era bastante bueno).

En fin, pasé por la mayoría de las fases comunes de un dev: minimalista, super IDE, punto intermedio y, por supuesto, la guerra de editores cada vez que era posible.

Pero mi primer contacto con un editor “grande” fue Emacs (qué sorpresa), presentado por Chipaca. Realmente disfruté ese Emacs a primera vista, el problema con él: estaba fuertemente personalizado y eso presentaba una curva de aprendizaje muy empinada respecto de los editores comunes. Des-noob-izarse en cuestiones de editores es una tarea muy difícil, tenés que decirle a tu cerebro que aprenda todo un conjunto nuevo de cosas automáticas, ninguna de las cuales es especialmente intuitiva. Así que ahí estaba yo, solo con mi config de Emacs prestada, apretando instintivamente cosas como Ctrl-s, Ctrl-z y un montón de otros atajos comunes que solo creaban una salida muy confusa en el minibuffer.

El tiempo pasó y no pude alcanzar una destreza decente en Emacs, así que me rendí.

Después de mi devastador fracaso (estas cosas dejan abolladuras terribles en el ego de un joven programador… que se arreglan fácil y rápido por el hecho de que somos unos bastardos egocéntricos) decidí probar el otro lado, lo que consideraba el lado oscuro. No me malinterpreten, me gustaba vi, lo usé durante años y, como sysadmin en un país con internet lento, me hizo la vida más fácil muchas veces.

Lo que no me entra en la cabeza son los modos, los entiendo, después de todo son un arma más elegante para una era sin recursos, pero no logro acomodar mis movimientos automáticos a ellos. Soy una persona visual, prefiero mi PlayStation al net-hack y realmente no me pueden invitar a un juego de rol porque empiezo a gritarle a todos que están locos por usar su imaginación en lugar de una placa de video. Emacs me provee la abstracción visual con la que me siento cómodo, estoy nuevamente reaprendiendo cosas, pero no es realmente tanto; los dedos se van acostumbrando a la mayoría de las cosas y el teclado va a tener que cambiar para adaptarse al resto.

En general estoy muy contento, todavía vuelvo a vi para ciertas cosas, especialmente cuando hago cosas de forma remota, pero siento que la velocidad y la productividad están llegando.

Una gran ayuda es que encuentro que personalizar Emacs es un poco más simple, hago snippets cortos en elisp que entiendo (y desprecio al mismo tiempo, dios mío qué lenguaje feo, todos esos paréntesis) y hago cosas; de a poco lo voy llevando a donde quiero. Un agradecimiento especial va esta vez para Katherine Cox-Buday que tuvo la paciencia de ayudarme a configurar de nuevo mi Emacs, especialmente la parte de golang (go-mode fue un gran plus para volver a cambiar de bando) y como referencia de consulta durante la primera etapa de arranque.