Другая вещь, которую я пробовал, комбинировала C-u # и C-s, но это не сработало
Это будет с макросом клавиатуры, который вы можете определить в интерактивном режиме.
- C-x ( - начать запись
- C-s , RET - поиск запятой (важно
RET
; см. Ниже)
- C-x ) - остановить запись
Теперь вы можете снова выполнить этот макрос с помощью Cx e (а затем просто e для продолжающихся одиночных повторений) или использовать префиксный аргумент для его повторения заданное количество раз:
C-u 100
C-x e
Макросы клавиатуры чрезвычайно полезны и могут быть легко связаны с ключами или даже добавлены в ваш файл .emacs в форме elisp, если вы хотите сохранить его для будущего использования. Подробнее см. В руководстве .
редактирование:
Более гладко для специальных макросов, вы можете указать префиксный аргумент при остановке записи, чтобы получить ровно столько повторений, включая тот, который использовался для записи:
Cx ( Cs , RET Cu 100
Cx )
Я наблюдал неожиданное поведение с этой последовательностью, прежде чем добавить RET для явного вызова isearch-exit
перед остановкой записи. Он вел себя так, как будто он только записывал и повторял запятую (приводя к тому, что запятая вставлялась много раз вместо поиска много раз).
Используя edit-last-kbd-macro
после записи, я мог видеть причуду при использовании isearch в макросе, так что C-x
, напечатанный при остановке записи, фактически включается в определение макроса, что, вероятно, вызывало проблему для этот конкретный метод вызова. Аналогично с альтернативными привязками F3 и F4 (в этом случае F4
заканчивается в определении). Я не знаю, является ли это ошибкой или функцией, но, очевидно, стоит прекратить isearch перед остановкой записи макроса!
p.s. Хотя два набора привязок записи макросов не одинаковы в всех отношениях, все здесь также работает с F3
и F4
, поэтому для этого примера вы могли бы немного более кратко использовать F3 Cs , RET Cu 100
F4