Caso d'uso classico:
- Inizi a registrare una macro:
C-x ( - Fai delle cose, diciamo
hello. - Esegui un comando che genera un errore, diciamo
C-g(ad esempio, esegui erroneamenteC-se devi annullarlo conC-g, ora il tuo lavoro è perso).
Ora la tua registrazione finora è andata persa.
Vorrei riprendere da dove avevo interrotto prima di eseguire un comando che ha interrotto la mia registrazione. Ho guardato C-h f start-kbd-macro, ma è scritto in C, quindi non posso modificarlo. Ho anche cercato una variabile simile current-kbd-macro, ma finora non ne ho trovata nessuna.
Può essere recuperato?
Aggiornare:
Non riuscivo a capire perché C-u C-x (non funzionasse per me, ma ho scoperto che era perché stavo testando C-g.
Si scopre che C-gè speciale - se si attiva un diverso tipo di errore, ad es
C-x ( M-: (signal 'quit nil)
Quindi questo interromperà la registrazione, ma last-kbd-macroconterrà "M-: M-( signal 'quit nil", ma con
C-x ( C-g
Questo interrompe la registrazione e scarta qualsiasi cosa registrata. Come utente soddisfatto di Cg (come lo sono almeno due dei miei amici), questa è una distinzione piuttosto sfortunata. Ho provato a modificare keyboard-quit, ma non c'è niente che io possa fare lì.
Sembra che l'unico modo per recuperarlo sia tramite recent-keyse automaticamente capire dove è stato chiamato start-kbd-macro (o simile), come in kmacro-edit-lossage.