Con mucha frecuencia tendría que realizar el conjunto de pasos que requieren múltiples pulsaciones de teclas. Para la misma sesión, esos pasos se pueden grabar en una macro de teclado.
Un ejemplo es guardar una operación de búsqueda / reemplazo ejecutada con frecuencia como una macro de teclado. Pero esa macro se pierde cuando salgo de emacs.
¿Cómo puedo guardar mi macro de teclado de uso frecuente como una función Lisp?
En aras de la simplicidad, quiero guardar la acción de reemplazar "abc" con "def" como una función para poder reutilizarlo en las sesiones de emacs.
fuente

insert-kbd-macro. Esa es la respuesta a la pregunta (y el resto de esta respuesta proporciona ayuda adicional).insert-kbd-macrodepende de si lo nombró usandokmacro-name-last-macro(como en la respuesta anterior) oname-last-kbd-macro.name-last-kbd-macroformato (como se menciona anteriormente en @phils) terminará con una cadena, no una función.fsetting eso a un símbolo le permite ejecutar la macro usando Mx, pero no llamarlo desde lisp (commandp->t,functionp->nil). Curiosamente, incluso llamarlo a través decall-interactivelyno funciona (aunque puede usarloexecute-kbd-macropara ejecutarlo).@lunaryorn ya mencionó elmacro, pero como autor de este paquete, pensé que sería bueno dar un ejemplo.
Si graba una macro como esta:
F3 C-e M-b M-u C-a C-n F4
Entonces haciendo M-x elmacro-show-last-macro upcase-last-wordproduce un buffer con:
fuente
El paquete elmacro le permite ver la última macro grabada con Emacs Lisp adecuada M-x elmacro-show-last-macro.
fuente