¿Cómo reemplazar un personaje con una nueva línea en Emacs?
Pregunta
Estoy tratando de reemplazar un carácter, digamos ;
, con una nueva línea usando replace-string
y / o replace-regexp
en Emacs.
He probado los siguientes comandos:
Mx
replace-string
RET;
RET\ n
Esto reemplazará a
;
con 2 caracteres:\n
.Mx
replace-regex
RET;
RET\ n
Esto produce el siguiente error (que se muestra en el minibúfer):
Uso no válido de `\ 'en el texto de reemplazo.
¿Qué tiene de malo usar replace-string
para esta tarea? ¿Hay alguna otra manera de hacerlo?
Gracias.
Solución
Mx replace-string
RET ;
RET Cq Cj .
C-q para
quoted-insert
,C-j es una nueva línea.
¡Salud!
Otros consejos
He encontrado cuatro formas de poner una nueva línea en el minibúfer.
C-o
C-q C-j
C-q
12
(12 es el valor octal de nueva línea)Cx o a la ventana principal, elimine una nueva línea con Ck , luego Cx o de vuelta al minibúfer, báñelo con Cy
No olvides que siempre puedes cortar y pegar en el minibúfer.
Por lo tanto, puedes copiar un carácter de nueva línea (o cualquier cadena) de tu búfer y luego tirarlo cuando se te solicite el texto de reemplazo.
Más explícitamente:
Para reemplazar el carácter de punto y coma (;) con una nueva línea, siga estos pasos exactos.
- ubique el cursor en la parte superior izquierda del búfer que contiene el texto que desea cambiar
- Escriba m-x replace-string y presione RETURN
- el mini-buffer mostrará algo como esto: Reemplazar cadena (por defecto ^ - >):
- Escriba el carácter que desea reemplazar. En este caso, ; y pulsa RETORNO
- el mini-buffer mostrará algo como esto: cuerda ; con:
- Ahora ejecuta C-q C-j
- Todas las instancias de punto y coma serán reemplazadas por una nueva línea (desde la ubicación del cursor hasta el final del búfer ahora aparecerá)
Poco más de lo que dice la explicación original.
Cambiar a modo de texto
M-x text-mode
Resaltar bloque para sangrar
Indent
C+M \
Vuelve al modo que quieras ...