Busque una cadena que ignore las nuevas líneas

11

Estoy acostumbrado a escribir archivos donde los párrafos se dividen en varias líneas, por ejemplo, con fill-column. Cuando busco una cadena ( C-s) como this is a long text, los resultados de la búsqueda no devolverán las ubicaciones donde aparece la cadena con un salto de línea entre dos de las palabras (como this\nis a long text).

¿Hay algún comando que también devuelva estos resultados?

Tony
fuente

Respuestas:

11

Echar un vistazo a las variables isearch-lax-whitespace, isearch-regexp-lax-whitespacey search-whitespace-regexp.

Si las dos primeras variables se establecen en algo no nulo (por ejemplo t), cualquier carácter de espacio en su cadena de búsqueda coincidirá con cualquier secuencia que coincida con la expresión regular definida por la search-whitespace-regexpvariable.

Para unir palabras en saltos de línea, haga esto:

(setq isearch-lax-whitespace t)
(setq isearch-regexp-lax-whitespace t)
(setq search-whitespace-regexp "[ \t\r\n]+")

Un carácter de espacio en su consulta ahora coincidirá con cualquier espacio, tabulación o salto de línea varias veces.

rekado
fuente
Gracias, pero eso no funciona para mí. Mi versión de Emacs es 23.4.1. Aparentemente no tiene una variable "isearch-lax-whitespace".
Tony
1
Sí, estas características se introdujeron en Emacs 24.3. ¿Alguna posibilidad de actualizar a una versión más reciente? La versión 23.4.1 ya tiene más de tres años.
rekado
2
Pruebe isearch-forward-word, que está obligado a M-s wen Emacs recientes.
politza
Emacs 23 no funcionó para mí, asegúrese de que esté usando 24.
ragerdl