vim regex non ha bisogno di \ per scappare


17

In Vim v'è la possibilità di scrivere regexs nello stesso stile come Awk per esempio

/sp\{0,\}/
sarebbe più

/sp{0,}/

Risposte:


29

Precedendo il tuo modello renderai \vil modello "magico" e simboli simili {e [avranno un significato interpretato (e i letterali devono essere sfuggiti).

Quindi /\vsp{1,}troverei quello che volevi (l'ho appena provato).

Puoi renderlo una sorta di default rimappando /a /\vcon le seguenti righe nel tuo vimrc:

nnoremap / /\v
vnoremap / /\v

Vedi :help patterndi più.


1

/sp\{0,}

Naturalmente per {0,}, sarebbe meglio usare *: /sp*(uguale a quanto sopra) troverebbe una 's' seguita da zero o più p. Nota che zero o più è sempre vero, quindi non c'è motivo per farlo in questa particolare espressione.


Questa è stata una buona informazione e molto utile. C'è un modo per evitare la fuga di personaggi speciali in vim?
— MageProspero,

Capisco cosa intendi adesso. Ne dubito seriamente, che quasi certamente richiederebbe un diverso parser sviluppato in parallelo, e dubito che sarebbe una caratteristica con una domanda sufficiente a giustificare tale ulteriore implementazione e manutenzione.
— Kevin,

-1

Vim non ha un'opzione per emulare espressioni regolari in stile awk, no. Esistono molti dialetti di regex e sfortunatamente ci sono sempre queste piccole differenze dialettiche da tenere traccia quando si passa da uno strumento all'altro.

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.