Kasus penggunaan klasik:
- Anda mulai merekam makro:
C-x ( - Anda melakukan beberapa hal, katakanlah
hello. - Anda menjalankan perintah yang melempar kesalahan, katakanlah
C-g(mis. Anda salah menjalankanC-sdan Anda harus membatalkannya denganC-g, sekarang pekerjaan Anda hilang).
Sekarang rekaman Anda sejauh ini hilang.
Saya ingin melanjutkan di mana saya tinggalkan sebelum saya menjalankan perintah yang mengganggu rekaman saya. Saya melihat C-h f start-kbd-macro, tapi itu ditulis dalam C, jadi saya tidak bisa men-tweak itu. Saya juga mencari-cari variabel suka current-kbd-macro, tetapi sejauh ini tidak menemukan.
Bisakah itu dipulihkan?
Memperbarui:
Saya tidak tahu mengapa C-u C-x (tidak bekerja untuk saya, tetapi saya menemukan itu karena saya mengujinya C-g.
Ternyata itu C-gistimewa - jika Anda memicu jenis kesalahan yang berbeda misalnya
C-x ( M-: (signal 'quit nil)
Maka ini akan menghentikan rekaman, tetapi last-kbd-macroakan berisi "M-: M-( signal 'quit nil", tetapi dengan
C-x ( C-g
Ini berhenti merekam dan membuang apa pun yang direkam. Sebagai pengguna Cg-happy (seperti setidaknya dua dari teman saya), ini adalah perbedaan yang agak disayangkan. Saya mencoba mengedit keyboard-quit, tetapi tidak ada yang bisa saya lakukan di sana.
Sepertinya satu-satunya cara untuk memulihkan ini adalah melalui recent-keysdan secara otomatis mencari tahu di mana start-kbd-macro (atau serupa) dipanggil, seperti pada kmacro-edit-lossage.