Добавление символов в конец каждой строки в Emacs - PullRequest
45 голосов
/ 02 февраля 2011

Предположим, у меня есть текстовый файл с содержимым

1
123
12
12345

Если я хочу добавить 'a' в начале каждой строки, я могу просто использовать string-rectangle (Cx rt), но что если я хочу добавить 'a' в конец каждой строки, после чего файл должен стать

1a
123a
12a
12345a

Спасибо.

Ответы [ 2 ]

59 голосов
/ 02 февраля 2011

Для этой цели вы можете использовать replace-regexp с метасимволом $ regexp, соответствующим концу строки. Перейдите в начало буфера, затем выполните M-x replace-regexp и ответьте $ и (ваш текст) на два запроса.

Или, в emacs-говорят, для вашего конкретного примера добавления a:

M-< M-x replace-regexp RET $ RET a RET

20 голосов
/ 02 февраля 2011

Макросы клавиатуры Emacs - ваш друг.

C-x ( C-e a C-n C-x )

, который просто настраивает макрос клавиатуры следующим образом: запустив макрос клавиатуры ( Cx (), перейдите в конец строки( Ce ), вставьте a, перейдите к следующей строке ( Cn ) и затем завершите запись макроса ( Cx) ).

Теперь вы можете либо выполнить его ( Cx e ), и продолжать нажимать e для каждой строки, на которой вы хотите запустить программу, или вы можете запустить ее в регионес помощью Cx Ck 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)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...