Ответ 1
вы можете попробовать: M-20000 C-x e
, чтобы сделать материал за 20000 раз, после определения макроса.
У меня есть текстовый файл с некоторым содержимым примера, как показано ниже:
Sno = 1p
Sno = 2p
Sno = 3p
Я хочу удалить p
из каждого столбца.
С этим намерением я напишу макрос:
M-x //go to buffer
C-x (//start the macro
C-s = // search for equalto sign
RET C-f C-f // reach to te alphabet 'p'
DEL // Delete
C-n C-x )//go to new line and Close the macro definition
C-x e
Нажатие e
дважды удалит p
, но если я захочу сделать то же самое до конца файла, как я могу это сделать, я не могу продолжать нажимать e
, если у меня есть 20000 таких строк, Что нужно сделать?
Пожалуйста, не предлагайте regex, так как это пример примера, а не фактический случай. Пожалуйста, предложите какой-либо elisp, мне удобно запоминать shortcutf для emacs.
вы можете попробовать: M-20000 C-x e
, чтобы сделать материал за 20000 раз, после определения макроса.
M-0 C-x e
, чтобы повторить последний макрос до тех пор, пока не произойдет ошибка (после последней строки произойдет ошибка C-s =
или C-n
).
Вы можете услышать раздражающий звуковой сигнал.
Вы можете использовать функцию apply-macro-to-region-lines для применения последнего заданного макроса клавиатуры ко всем линиям в регионе. Итак, следующие шаги:
Определите свой макрос клавиатуры (который вы уже сделали, но я добавил еще одну C-f в третью строку):
C-x ( C-s = RET C-f C-f C-f DEL C-n C-x )
Выберите весь буфер с помощью команды "mark-whole-buffer" (по умолчанию она привязана к C-x h). Кроме того, если вы просто хотите изменить определенное количество строк, просто выберите строки, которые вы хотите изменить.
Запустите функцию apply-macro-to-region-lines (по умолчанию она привязана к C-x C-k r).
Все p будут удалены.
Обычно я указываю имя макросу после определения его с помощью M-x name-last-kbd-macro
, поэтому я могу назвать его с помощью M-x удобно. И затем я называю это числовым префиксом. Например.
M-1000 M-x macroname
В файлах, на которых я работаю, обычно нет 1000 мест, где макрос может действовать, поэтому 1000 достаточно велик и автоматически остановится в конце файла. Вы можете использовать, скажем, 1000000 в качестве префикса, если у вас есть большие файлы, и если он еще не достаточно, вы можете перезвонить ему с 1000000 как префикс.