GNU Emacs: Macros de teclado

emacs

Cómo definir, guardar y utilizar macros de teclado en emacs.

Introducción

La macro de teclado, como es de suponer, consiste en asociar una pulsación de teclas a un trozo de texto arbitrario y/o comandos de emacs cualesquiera, que puede insertarse/ejecutarse después cuando se necesite.

Macros de usar y tirar

Ésta es la forma más rápida de definir y utilizar una macro aunque tiene el inconveniente que solo puede haber una en cada momento. Los pasos necesarios son:

  • Pulsa F3, que indica el comienzo de la grabación de la macro.
  • Edita el texto de la forma habitual, incluyendo la ejecución de comandos que necesites.
  • Pulsa F4, que indica que la macro ha terminado.

Ahora está lista para usar, simplemente pulsa F4 cada vez que quieras ejecutarla. Obviamente si vuelves a pulsar F3 la macro anterior se pierde y empezarías a grabar una nueva.

Ponle un nombre

Esto asigna un nombre a la macro, que tendrá validez durante la sesión de emacs en curso, después se perderá. Crea la macro como se ha explicado en la sección anterior y después ejecuta:

C-x C-k n

o esto:

M-x kmacro-name-last-macro

Te pedirá el nombre de la macro, que debería ser una cadena de texto (recomendable sin espacios). Para ejecutar una macro, pulsa M-x y escribe su nombre — funciona como un comando convencional. Aquí tienes un ejemplo completo y bastante absurdo: insertar el número PI al comienzo de la línea actual:

F3 C-a 3.1415927 F4
C-X C-k n PI
M-x PI
M-x PI

Asígnale una combinación de teclas

De nuevo volvemos al punto en el que acabos de definir una macro con F3/F4, no importa si tiene nombre o no. Pues ahora ejecuta:

C-x C-k b

Y te pedirá que teclees la combinación de teclas que quieres asociar a la última macro definida. Si pulsas una combinación de teclas que ya está asociada (algo extraordinariamente probable en emacs) te preguntará si la quieres usar a pesar de eso. Yo no te lo recomiendo. Busca una combinación de teclas libre, que haberlas, haylas. En último caso te queda el recurso de usar combinaciones que empiecen por C-x C-k seguidas de un número o una letra.

Guarda la macro para usarla mañana

Y si le has cogido cariño a la macro probablemente te gustará poder ponerla a buen recaudo. Para guardar una macro necesitas que tenga nombre (ya sabes cómo se hace eso). La combinación de teclas no es necesaria para poder guardar la macro aunque yo creo que es muy útil.

Pues una vez tengas tu macro con su nombre y (opcionalmente) su combinación, ejecuta:

M-x insert-kbd-macro <RET> nombre-de-la-macro <RET>

Pero esto no la guarda en ninguna parte. Lo que hace es imprimir en el buffer actual el código Lisp necesario para definir la macro. Como habrás imaginado, debes meter ese código en tu fichero .emacs.

Referencia