Cerca una stringa ignorando le nuove righe


11

Sono abituato a scrivere file in cui i paragrafi sono suddivisi in più righe, ad esempio con fill-column. Quando cerco una stringa ( C-s) come this is a long text, i risultati della ricerca non restituiscono le posizioni in cui appare la stringa con un'interruzione di riga tra due delle parole (come this\nis a long text).

Esiste un comando che restituirebbe anche questi risultati?

Risposte:


11

Date un'occhiata a delle variabili isearch-lax-whitespace, isearch-regexp-lax-whitespacee search-whitespace-regexp.

Se le prime due variabili sono impostate su un valore diverso da zero (ad es. t), Qualsiasi carattere di spazio nella stringa di ricerca corrisponderà a qualsiasi sequenza corrispondente all'espressione regolare definita dalla search-whitespace-regexpvariabile.

Per abbinare le parole tra le interruzioni di riga, procedere come segue:

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

Un carattere di spazio nella query ora corrisponderà a qualsiasi spazio, scheda o interruzione di riga un numero qualsiasi di volte.


Grazie, ma non funziona per me. La mia versione di Emacs è il 23.4.1. Apparentemente non ha una variabile "isearch-lax-whitespace".
Tony,

1
Sì, queste funzionalità sono state introdotte in Emacs 24.3. Qualche possibilità di passare a una versione più recente? La versione 23.4.1 ha già più di tre anni.
rekado,

2
Prova isearch-forward-word, che è legato a M-s wEmacs recenti.
politza,

Emacs 23 non ha funzionato per me, assicurati di usare 24.
ragerdl,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.