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.