Класичний футляр:
- Ви починаєте запис макросу:
C-x (
- Скажімо, ви щось робите
hello
. - Ви запускаєте команду, яка видає помилку, скажімо
C-g
(наприклад, ви помилково запуститеC-s
і вам доведеться скасувати цеC-g
, тепер ваша робота втрачена).
Тепер ваш запис поки що втрачено.
Я хотів би відновити місце, де я зупинився, перш ніж запустити команду, яка перервала запис. Я подивився C-h f start-kbd-macro
, але це написано на С, тому я не можу його налаштувати. Я також полював навколо на змінну на кшталт current-kbd-macro
, але поки не знайшов жодної.
Чи можна її відновити?
Оновлення:
Я не міг зрозуміти, чому C-u C-x (
не працює для мене, але я виявив, що це було тестування C-g
.
Виявляється, C-g
це особливе - якщо ви запускаєте помилку іншого типу, наприклад
C-x ( M-: (signal 'quit nil)
Потім це припинить запис, але last-kbd-macro
буде містити "M-: M-( signal 'quit nil"
, але з
C-x ( C-g
Це зупиняє запис і відкидає все записане. Як користувач із задоволенням від Cg (як мінімум двоє моїх друзів), це досить прикрою відмінністю. Я спробував редагувати keyboard-quit
, але там нічого не можу зробити.
Схоже, єдиний спосіб відновити це через recent-keys
і автоматично з'ясувати, куди викликався старт-kbd-макрос (або подібний), як в kmacro-edit-lossage
.