¿Cómo reemplazar un personaje con una nueva línea en Emacs?
replace (5)
Cambiar a modo texto
M-x text-mode
Resaltar bloque a sangría
Sangrar
C+M /
Cambie de nuevo a cualquier modo ..
Estoy tratando de reemplazar un personaje, por ejemplo ;
- con una nueva línea que utiliza replace-string
y / o replace-regexp
en Emacs.
He intentado los siguientes comandos:
Mx
replace-string
;
RET/n
Esto reemplazará
;
con 2 caracteres:/n
.Mx
replace-regex
RET;
RET/n
Esto da como resultado el siguiente error (que se muestra en el minibúfer):
Uso no válido de `/ ''en el texto de reemplazo.
¿Qué hay de malo con el uso de replace-string
para esta tarea? ¿Hay alguna otra forma de hacerlo?
Gracias.
Hay cuatro formas que he encontrado para poner una nueva línea en el minibúfer.
Co
Cq Cj
Cq
12
(12 es el valor octal de nueva línea)Cx o a la ventana principal, mata una nueva línea con Ck , luego Cx o de vuelta al minibúfer, tira con Cy
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
- Escribe mx replace-string y pulsa RETURN
- el mini-buffer mostrará algo como esto: Reemplazar cadena (por defecto ^ ->):
- Escriba el carácter que desea reemplazar. En este caso, ; y pulsa VOLVER
- el mini-buffer mostrará algo como esto: cadena; con:
- Ahora ejecuta Cq Cj
- 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.
No olvides que siempre puedes cortar y pegar en el minibúfer.
Por lo tanto, solo puede copiar un carácter de nueva línea (o cualquier cadena) de su búfer y luego extraerlo cuando se le solicite el texto de reemplazo.
Mx replace-string
;
RET Cq Cj .
Cq para
quoted-insert
,Cj es una nueva línea.
¡Aclamaciones!