Cas d'utilisation classique:
- Vous commencez à enregistrer une macro:
C-x ( - Vous faites des trucs, disons
hello. - Vous exécutez une commande qui génère une erreur, disons
C-g(par exemple, vous exécutez par erreurC-set vous devez l'annuler avecC-g, maintenant votre travail est perdu).
Jusqu'à présent, votre enregistrement est perdu.
Je voudrais reprendre là où je m'étais arrêté avant d'exécuter une commande qui a interrompu mon enregistrement. J'ai regardé C-h f start-kbd-macro, mais c'est écrit en C, donc je ne peux pas le modifier. J'ai également cherché une variable comme current-kbd-macro, mais je n'en ai pas trouvé jusqu'à présent.
Peut-il être récupéré?
Mettre à jour:
Je ne pouvais pas comprendre pourquoi C-u C-x (ne fonctionnait pas pour moi, mais j'ai découvert que c'était parce que je testais avec C-g.
Il s'avère que C-gc'est spécial - si vous déclenchez un autre type d'erreur, par exemple
C-x ( M-: (signal 'quit nil)
Ensuite, cela arrêtera l'enregistrement, mais last-kbd-macrocontiendra "M-: M-( signal 'quit nil", mais avec
C-x ( C-g
Cela arrête l'enregistrement et supprime tout ce qui a été enregistré. En tant qu'utilisateur Cg-happy (comme au moins deux de mes amis), c'est une distinction plutôt malheureuse. J'ai essayé le montage keyboard-quit, mais je ne peux rien y faire.
Il semble que la seule façon de récupérer cela est via recent-keyset de déterminer automatiquement où une macro start-kbd (ou similaire) a été appelée, comme dans kmacro-edit-lossage.