Abbina due spazi con la ricerca incrementale


20

Durante la ricerca utilizzando:

C-s SPC SPC

Abbina anche spazi singoli. Voglio abbinare esattamente due spazi.

Risposte:


24

Utilizzare M-s SPCdurante Isearch per alternare letteralmente lo spazio bianco corrispondente. Quando si esegue la corrispondenza letteralmente, ogni SPCcarattere digitato viene abbinato singolarmente. (Questo era il comportamento predefinito di Emacs, BTW.)

Per configurarlo come opzione di personalizzazione del comportamento predefinito search-whitespace-regexpsu nil. ( M-x customize-option search-whitespace-regexp.)

Vedi il manuale di GNU Emacs, nodo Special Isearch.


Grazie per questo. Potrebbe essere utile inserire la linea .emacs (set-variable 'search-whitespace-regexp nil). Grazie.
Gray,

1
@Gray: set-variablenon salva il nuovo valore in modo persistente, quindi non cambierà il comportamento predefinito. Penso che M-x customize-optionsia ciò che è richiesto qui.
Estratto il

Oh, ne parlavo nel file dot emacs. Non sapevo sull'opzione di personalizzazione. Grazie per il montaggio.
Gray

3

L'uso della ricerca incrementale regexp risolve il problema se si evitano i caratteri dello spazio:

C-M-s \SPC\SPC

Puoi anche utilizzare la ricerca e la sostituzione senza le barre rovesciate, se è quello che stai cercando:

M-% SPC SPC

Ho riscontrato lo stesso problema oggi durante la creazione di una macro di tastiera. Questa risposta ha risolto il problema per me, anche se invece ho dovuto usare la combinazione di tasti ESC C-s. Vedi anche github.com/leoliu/ggtags/issues/64
Jonas Dahlbæk

3

L'uso di regexp search aiuta, ma puoi anche assicurarti spazi letterali per la ricerca usando C-q SPCper citare uno spazio nella ricerca.

Per sfogliare la risposta di @ Rovanion quindi, usando isearch-forward-regexp:

C-M-s C-q SPC C-q SPC

Ciò cercherà due spazi consecutivi. È interessante notare che isearch-forward-regexprichiede partite discrete. Ricerca aaaper aacorrisponderà una sola volta e non ancora al secondo carattere.


Per quanto riguarda la tua ultima nota, immagina di cercare "zero o più spazi bianchi seguiti da una cosa" e, dati N caratteri di spazi bianchi principali, devi passare attraverso tutte le singole partite N + 1. Vedo che si tratta di un'opzione ragionevole da fornire, ma sarebbe un default terribile.
phils il
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.