1

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

-1 ACT/CNS
-2 AG NFC
-3 AID
-4 BBG
-5 BIA
-6 BLM
-7 BOC
-8 BPD
-9 CCC
-10 CDC
-11 Census

Другими словами, с точкой на

-1 ACT/CNS
^

Я хотел бы иметь возможность нажать клавишу и запустить следующую команду

query-replace RET ACT/CNS RET -1 RET

Я попытался определить макрос клавиатуры, но, похоже, достаточно переходов между буферами и вызовами Mx, чтобы запутать kbmacro и сделать его непригодным для использования.

Мысли?

1 ответ1

2

Это то, что я сделал для создания макроса клавиатуры, который заменял символы числами.

C-a                     ;; move-beginning-of-line
M-f                     ;; forward-word
C-f                     ;; forward-char
C-SPC                   ;; set-mark-command
C-e                     ;; move-end-of-line
M-w                     ;; kill-ring-save
C-a                     ;; move-beginning-of-line
C-SPC                   ;; set-mark-command
M-f                     ;; forward-word
M-w                     ;; kill-ring-save
M-%                     ;; query-replace
C-y                     ;; yank
M-y                     ;; yank-pop
RET                     ;; newline-and-indent
C-y                     ;; yank
M-y                     ;; yank-pop
RET                     ;; newline-and-indent

Когда курсор находится на строке «-1 ACT/CNS», вышеприведенное запустит запрос / заменит нужные значения - в текущем буфере.

Если вы не делаете это много (например, больше, чем просто сегодня), я буду придерживаться макроса, потому что его легко настроить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .