Digamos que tengo un texto como el siguiente:
AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn)
Ahora quiero reemplazar el nncon números así
AC (0) AC (1) AC (2) AC (3) AC (4) AC (5) AC (6) AC (7) AC (8) AC (9) AC (10)
Solía M-x replace-regexp nn RET \# RETlograr esto.
Preguntas:
- Quiero comenzar el número de reemplazo para comenzar en
1lugar de desde0. O más bien comenzar desde un número específico, por ejemplo25. ¿Cómo debo modificar el comando anterior? - Cómo reemplazar
nncon dígitos como001,002....998,999etc. - Quiero decir con ceros a la izquierda
regular-expressions
replace
Prasanna
fuente
fuente

Respuestas:
Técnica general
Su cadena de reemplazo puede contener código arbitrario de lisp. De la documentación para replace-regexp :
Podemos usar esta técnica de varias maneras.
Empezando desde
1Lo que queremos hacer es reemplazarlo
nnpor uno más que elreplace-countque usó\#.Llama
#'replace-regexpcon el argumento\,(1+ \#):C-M-% nn \,(1+ \#)reemplazará con nn1primero, y luego2,3, etc.A partir de
25Puede modificar esto no solo agregando uno, sino (en su ejemplo) 25:
C-M-% nn \,(+ 25 \#)Ceros a la izquierda
O podemos usar
formatpara agregar ceros a la izquierda. Esto reemplazaránncon000,001,002, etc Usted puede combinar otro código Lisp de arriba para empezar a001,025o lo que quiera.C-M-% nn \,(format "$03d" \#)fuente
También puedes usar
cua-mode.Seleccione la región del rectángulo (todas las nn) y luego
M-x cua-rectangle-mark-mode.A continuación,
M-ny acepte los valores predeterminados.fuente