Добавление символов в конец каждой строки в Emacs
Предположим, у меня есть текстовый файл с контентом
1
123
12
12345
Если я хочу добавить 'a' в начале каждой строки, я могу просто использовать строковый прямоугольник (Cx rt), но что, если я хочу добавить 'a' в конец каждой строки, после чего файл должен стать
1a
123a
12a
12345a
Спасибо.
Ответы
Ответ 1
Вы можете использовать replace-regexp
для этой цели с метасимволом $
regexp, который соответствует концу строки. Перейдите в начало буфера, а затем выполните M-x replace-regexp
и ответьте $
и (ваш текст) на два приглашения.
Или, в emacs-talk, для вашего конкретного примера добавления a
:
M-< M-x replace-regexp RET $ RET a RET
Ответ 2
Макросы клавиатуры Emacs - ваш друг.
C-x ( C-e a C-n C-x )
Что только устанавливает макрос клавиатуры: начиная с макроса клавиатуры (C-x (), перейдите к концу строки (C-e), вставьте a
, перейдите к следующей строке (C-n), а затем завершите макросъемку (C-x )).
Теперь вы можете выполнить его (C-x e) и продолжать нажимать e для каждой строки, в которой вы хотите ее запустить, или вы можете запустить ее в области с C-x C-k r.
Если вы сделаете это много, вы можете сохранить макрос, или вы можете написать функцию. Это была бы одна такая функция:
(defun add-string-to-end-of-lines-in-region (str b e)
"prompt for string, add it to end of lines in the region"
(interactive "sWhat shall we append? \nr")
(goto-char e)
(forward-line -1)
(while (> (point) b)
(end-of-line)
(insert str)
(forward-line -1)))