Macros de teclado en Emacs

Publicado el Viernes, 13 de diciembre de 2024

Un macro de teclado es un comando que podemos definir en Emacs para ejecutar una secuencia de teclas. Al estar editando texto, es muy común repetir los mismos comandos varias veces. Con macros, podemos grabar una serie de teclazos para volver a usarla y repetirla.

Picando Código Emacs

Si bien Emacs los denomina "macros de teclado", podemos grabar casi cualquier acción, incluyendo interacciones con el mouse.

Cómo definir un macro:

  • Presionar las teclas Ctrl x (.
  • En el mini-buffer de Emacs aparece el mensaje Defining kbd macro....
  • Ejecutamos las acciones que queremos incluir en el macro: acciones de teclado o mouse.
  • Guardamos el macro con Ctrl x ).
  • En el mini-buffer de Emacs aparece el mensaje Keyboard macro defined.

El macro quedó definido y ahora podemos ejecutarlo con Ctrl x e. Así es como lo uso yo, pero también podemos empezar a definir un macro con F3, guardarlo con F4 y ejecutarlo con F4 (la función se llama kmacro-end-or-call-macro).

Con el comando Ctrl x Ctrl k r (que llama a la función apply-macro-to-region-lines), repetimos el último macro definido en cada línea que tiene su inicio dentro de la región actual. Una vez definido el macro, podemos ejecutarlo n veces. Para eso usamos Ctrl u, el número de veces y Ctrl x e. Por ejemplo Ctrl u 64 Ctrl x e va a ejecutar el macro 64 veces.

También podemos darle un nombre de comando al último macro definido con Ctrl x Ctrl k n, lo que nos permite llamarlo con Meta x nombre_del_macro. Podemos asignarlo a un atajo de teclado con Ctrl x Ctrl k b.

Darle nombre es necesario si queremos guardar un macro para reutilizar más adelante. Una vez nombrado, podemos guardar su definición en un archivo (probablemente uno de nuestros archivos de configuración de Emacs). Visitando el archivo, ejecutamos Meta x insert-kbd-macro Enter nombre_del_macro Enter. Esto agrega el código Lisp que define al macro al archivo abierto. ¡Es interesante ver la sintaxis que define a nuestros macros para aprender más!

Los macros me resultan súper prácticos y pueden ahorrar un montón de tiempo. Y si los usamos seguido, poder guardarlos para reutilizarlos más adelante es muy conveniente. Sirven mucho a la hora de editar y convertir archivos de mucha información y texto aburrido. ¡Hagamos que Emacs nos ahorre ese trabajo!

Más información sobre Macros de Emacs en el manual.

2 comentarios en este post

Feed de comentarios
    • Avatar

      Fernando 13 diciembre. 2024 - 16:39

      ¡Gracias por tu comentario Alan!
      Somos al menos dos con Emacs entonces 😆

      Vengo trabajando en una idea para una serie de posts sobre Emacs que con suerte iré publicando en breve, espero tener tiempo para poder dedicarle. Ya veremos.

      ¡Saludos!

Dejar un comentario

Toasty!