Заменить макросы в Emacs? - PullRequest
3 голосов
/ 29 июня 2010

Я часто использую встроенные привязки f3 / f4 в emacs для записи и повторения макросов, и считаю, что это очень мощная и полезная функция, особенно в сочетании с поиском. Однако недавно я заметил, что когда я делаю запрос-замену (по умолчанию M-S-5), запись моего макроса прекращается! Есть ли способ предотвратить это? Я знаю, что запрос-замена является интерактивным, но если я введу 'y' 3 раза, чтобы выполнить 3 замены, я полагаю, что макрос должен делать то же самое.

Не проблема, я полагаю, что при записи макроса я буду делать C-u 3 M-S-5, поэтому он выполнит замену ровно 3 раза, поскольку я знаю, что этого достаточно для того, что я делаю. Но, очевидно, запрос-замена игнорирует C-u! Обычно использование макросов и использование C-u без проблем для меня. Есть ли способ заставить их работать с запросом-заменой?

1 Ответ

3 голосов
/ 29 июня 2010

С моим Emacs (23.2) и без пользовательского файла инициализации (emacs -q) я нахожу, что query-replace работает просто отлично. Это мой тест

Я набрал:

1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5

Я переместил курсор в верхнюю часть этого текстового блока

<f3> M-S-5 3 RET tj RET y y y q <f4>

который оставил меня с:

1 2 tj 4 5
1 2 tj 4 5
1 2 tj 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5

Нажатие снова оставило меня с:

1 2 tj 4 5
1 2 tj 4 5
1 2 tj 4 5
1 2 3 4 5
1 2 tj 4 5
1 2 tj 4 5
1 2 tj 4 5
1 2 3 4 5

Работает как положено. Я бы рекомендовал попробовать с emacs -q, чтобы убедиться, что у вас нет настроек, влияющих на поведение.

...