Emacs, mi editor de texto

Publicado el 14 de julio de 2015

EmacsHace varios años que vengo jugando con Emacs como editor de texto preferido, pero se puede decir que recién en 2012 cuando empecé a trabajar 100% con Ruby arranqué a usarlo en serio. Desde entonces me he ido familiarizando cada vez más con la forma de usar Emacs y hoy por hoy lo uso todos los días prácticamente para todo.

Uno de los aspectos más importante de Emacs (y editores de texto con las mismas características de personalización y extensibilidad) es que si bien tiene una forma básica de uso, en cierto punto uno empieza a “adueñarse” de la herramienta. El control se invierte y en vez de adaptarnos a usarlo, lo adaptamos a nosotros.

Emacs puede ser personalizado a través de archivos de configuración con código en Elisp que es un dialecto de Lisp. No puedo decir que he aprendido a programar Elisp en este tiempo que vengo usado Emacs, pero algunas nociones básicas he ido adquiriendo para personalizar mis archivos de configuración y hasta escribir algunas funciones propias.

Dando los primeros pasos

La forma de moverse en Emacs se puede aprender bastante rápido con el tutorial interactivo incluido. Esto fue el primer paso que di para empezar a usarlo. Si bien podemos usar las flechas del teclado o el mouse para movernos, seleccionar texto, etc., es la manera menos eficiente de usarlo. Emacs fue diseñado para que podamos hacer prácticamente todo sin levantar las manos de la posición inicial del teclado. Para eso se usan las teclas Alt y Control (aunque muchos mapean la tecla Bloq Mayús para esto) en conjunto con caracteres para ejecutar comandos, moverse y demás.

La combinación Alt + x nos manda al mini buffer, una barrita en la parte inferior del editor que nos permite ingresar comandos. Al usarla seguida de help-with-tutorial ingresamos al tutorial interactivo que nos enseña lo básico. Lo bueno de adquirir el conocimiento de la forma de moverse y manipular texto en Emacs, nos sirve para usarlo en Bash y por lo que tengo entendido en otros varios Shells unixeros.

La evolución

Siempre digo que dominar Emacs no es una meta sino un camino. Y esto se acompaña de varios fundamentos. Primero que lo uso para casi cualquier cosa que escribo en la computadora (texto y código, pero también una agenda y alguna cosa más). No hago exactamente lo mismo hoy que cuando empecé a usarlo. A medida que voy haciendo más cosas, voy agregando modos y personalizaciones para adaptarlo más a como quiero usarlo.

También cuando descubro o se me ocurren cosas que podría estar haciendo desde Emacs y sería más práctico que la forma en que lo hago regularmente, intento agregarlas a mi rutina de trabajo.

La configuración

Arranqué mi configuración desde cero y recomendaría a alguien que quiere aprender a usar Emacs a hacer lo mismo. Hay varios “paquetes de configuración” pre-armados que nos dan un montón de cosas que son comunes para usarlo (Emacs Starter Kit, Prelude, Oh My Emacs, entre otros). Pero también agregan un montón de cosas que seguramente no necesitemos. Además ir agregando cada parte de código en nuestro archivo de configuración nos permite entender un poco mejor cómo funciona cada cosa. Para mí esto es un aspecto interesante y divertido de usar Emacs.

También con el tiempo uno va aprendiendo a organizar mejor las cosas. Una parte esencial de esto es mirar archivos de configuración de otras personas para ver cómo hacen ciertas cosas e idealmente sentarse con otra persona a intercambiar modos y formas de uso. No he tenido esta experiencia muy seguido, pero siempre recuerdo con mucho cariño y como uno de los puntos altos de mi carrera una vez que tuve la oportunidad de trabajar sobre Emacs con Jim Weirich.

Jim estaba visitando las oficinas de Neo en Montevideo, y se puso a disposición para hacer pair programming con quien quisiera. No estaba trabajando en un proyecto muy interesante en ese entonces, pero sabía que Jim era usuario de Emacs desde hacía mucho tiempo. Así que fui con la propuesta de hacer pair programming con nuestras configuraciones de Emacs. En una hora o dos con Jim aprendí muchísimo. Intercambiamos trucos y bloques de código y en ese momento me llené de orgullo al ver que Jim agregaba código que yo le había pasado a su configuración de Emacs.

Es una práctica que recomendaría y que también se puede hacer online. De hecho creo que he tenido más intercambios sobre Emacs online que presencialmente.

¿Querés empezar con Emacs?

Si te genera curiosidad empezar a usar Emacs, y tenés alguna duda, dejá un comentario en este post y voy a intentar ayudar con el poco conocimiento que he adquirido en este tiempo. Nunca es tarde para empezar a usarlo y es genial poder usar el mismo entorno para escribir código en distintos lenguajes, posts para un blog o una lista de to-do’s para gestionar un proyecto.

No puedo pasar la oportunidad de comentar sobre el sitio Emacs.sexy que creé para difundirlo y animar a más gente a usarlo. Tengo la intención de escribir algunos posts más sobre cosas que fui aprendiendo y usando con Emacs, así que este post sirve como introducción a lo que se viene.

9 comentarios en este post

Feed de comentarios
  1. Avatar

    Osvaldo 14 julio. 2015 - 20:38

    Hola, Como estás?

    La verdad que es algo que tengo en el debe. Por laburo ultimamente vengo usando eclipse nomás pero para otras cosas que trato de hacer por fuera voy a ver si le doy una oportunidad a emacs. Para la edición de algunos textos uso VIM ahora, pero voy a hacer el cambio!

    Usas emacs desde consola no? Hay algún paquete que recomiendes que esté bueno usar?

    Saludos.

    Debian IceWeasel 38.1.0 GNU/Linux 64 bits
    • Avatar

      Fernando 14 julio. 2015 - 21:07

      Hola Osvaldo,
      Llegué a Emacs desde Eclipse también, venía programando en Java desde hacía unos años.

      Uso la interfaz visual de Emacs:
      Emacs
      Pero se usa prácticamente igual desde la consola.

      Lo instalé directamente desde los repositorios oficiales de Debian testing. Actualmente está en la versión 24.5.1, en testing por lo menos se mantiene bastante al día.

      Más adelante voy a ir publicando algunos posts más de las cosas que le instalé y partes de mi configuración. Pero cualquier duda que tengas empezando con Emacs, comenta por acá e intento darte una mano.

      ¡Saludos!

      Firefox 41.0 GNU/Linux 64 bits
  2. Avatar

    nicoman 15 julio. 2015 - 11:48

    Uno mas que se suma a la movida, es una deuda pendiente que tengo, así que pienso darle una oportunidad, encarandolo con ganas :).

    Cualquier cosa chiflo, la finalidad va a ser principalmente el desarrollo web (python, javascript).

    Debian IceWeasel 38.1.0 GNU/Linux 64 bits
    • Avatar

      Fernando 15 julio. 2015 - 12:29

      ¡Bienvenido! 😀

      Emacs es ideal para desarrollo. Con Python nunca lo usé pero creo que por defecto trae coloreado de sintaxis y eso, igual sino es un toque entrar en python-mode. Con JavaScript lo podés hasta integrar con JSHint y cosas así, es bastante personalizable todo.

      Bienvenido y cualquier duda acá andamos 🙂

      Firefox 41.0 GNU/Linux 64 bits
    • Avatar

      Fernando 28 septiembre. 2018 - 12:29

      ¡Sí! Definitivamente. Soporta un montón de formatos como Markdown o su propio org-mode (creo que leí en algún lado que alguien escribió un libro con org-mode). El libro “Mastering Emacs” fue escrito con Emacs y tiene su propio capítulo sobre escribir un libro con Emacs.

      Firefox 64.0 GNU/Linux 64 bits
  1. WordPress Mi entorno de desarollo con Emacs | Picando Código | 16 julio. 2015 - 13:30

    […] comentaba en el post anterior sobre Emacs, arranqué mi archivo de configuración de Emacs de cero. Antes que nada comentar que si les […]

Dejar un comentario

Notificarme los nuevos comentarios por correo electrónico. Tambien puedes suscribirte sin comentar.

Toasty!