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-macro
depende de si lo nombró usandokmacro-name-last-macro
(como en la respuesta anterior) oname-last-kbd-macro
.name-last-kbd-macro
formato (como se menciona anteriormente en @phils) terminará con una cadena, no una función.fset
ting 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-interactively
no funciona (aunque puede usarloexecute-kbd-macro
para ejecutarlo).