Powiedzmy, że mam taki tekst poniżej:
AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn)
Teraz chcę zastąpić nn
takimi liczbami
AC (0) AC (1) AC (2) AC (3) AC (4) AC (5) AC (6) AC (7) AC (8) AC (9) AC (10)
Kiedyś M-x replace-regexp nn RET \# RET
to osiągałem.
Pytania:
- Chcę zacząć numer zastępczy, aby zacząć od,
1
a nie od0
. A raczej zacznij od określonej liczby powiedz25
. Jak zmodyfikować powyższe polecenie? - Jak zastąpić
nn
cyframi jak001
,002
....998
,999
etc - to znaczy z wiodącymi zerami
regular-expressions
replace
Prasanna
źródło
źródło
Odpowiedzi:
Ogólna technika
Łańcuch zastępczy może zawierać dowolny kod lisp. Z dokumentacji dotyczącej replace-regexp :
Możemy użyć tej techniki na wiele sposobów.
Zaczynając od
1
Wat chcemy zrobić, to wymienić
nn
jedną więcej niżreplace-count
ty stosować\#
.Zadzwoń
#'replace-regexp
z argumentem\,(1+ \#)
:C-M-% nn \,(1+ \#)
zastąpi nn z1
pierwszym, a następnie2
,3
itpZaczynać od
25
Możesz to zmienić, nie tylko dodając jeden, ale (w twoim przykładzie) 25:
C-M-% nn \,(+ 25 \#)
Zera wiodące
Lub możemy użyć,
format
aby dodać wiodące zera. Spowoduje to zastąpienienn
z000
,001
,002
, itd. Można łączyć inny kod lisp wyżej zaczynają się001
,025
czy cokolwiek chcesz.C-M-% nn \,(format "$03d" \#)
źródło
Możesz także użyć
cua-mode
.Wybierz region prostokąta (wszystkie nn), a następnie
M-x cua-rectangle-mark-mode
.Następnie
M-n
i zaakceptuj wartości domyślne.źródło