Допустим, у меня есть такой текст ниже:
AC (пп) AC (пп) AC (пп) AC (пп) AC (пп) AC (пп) AC (пп) AC (пп) AC (пп) AC (пп) AC (пп)
Теперь я хочу заменить на nn
цифры, как так
AC (0) AC (1) AC (2) AC (3) AC (4) AC (5) AC (6) AC (7) AC (8) AC (9) AC (10)
Я имел обыкновение M-x replace-regexp nn RET \# RET
достигать этого.
Вопросы:
- Я хочу начать номер замены, чтобы начать с,
1
а не с0
. Вернее начать с указанного числа, скажем25
. Как мне изменить вышеуказанную команду? - Как заменить
nn
на цифры, как001
,002
....998
, и999
т. Д. - я имею в виду с ведущими нулями
regular-expressions
replace
Prasanna
источник
источник
Ответы:
Общая техника
Ваша замещающая строка может содержать произвольный код lisp. Из документации для replace-regexp :
Мы можем использовать эту технику несколькими способами.
Начиная с
1
Ват, который мы хотим сделать, это заменить
nn
на один больше, чемreplace-count
вы использовали с\#
.Позвоните
#'replace-regexp
с аргументом\,(1+ \#)
:C-M-% nn \,(1+ \#)
заменит nn1
сначала, затем2
,3
и т. д.Начинается с
25
Вы можете изменить это, не просто добавив один, но (в вашем примере) 25:
C-M-% nn \,(+ 25 \#)
Ведущие нули
Или мы можем использовать,
format
чтобы добавить ведущие нули. Это заменитnn
с000
,001
,002
и т.д. Вы можете комбинировать другой код LISP , чтобы начать на001
,025
или все , что вы хотите.C-M-% nn \,(format "$03d" \#)
источник
Вы также можете использовать
cua-mode
.Выберите прямоугольник (все nn) и затем
M-x cua-rectangle-mark-mode
.Далее
M-n
и примите значения по умолчанию.источник