2012-12-22 16 views
10

Esiste un metodo per associare più parole contemporaneamente in un search-and-replace vim? Qualcosa di simile:Match foo o bar vim regex

:%s/foo|bar//g 

per la ricerca di foo o bar e sostituire con niente (questa ricerca il modello foo|bar, che non è quello che voglio). Posso cercare più personaggi questo modo:

abcdef 
:%s/[ace]//g 

risultati in:

bdf 

Posso fare la stessa cosa con le parole?

Sono ben consapevole che potrei farlo in questo modo:

:%s/foo//g 
:%s/bar//g 

Sto cercando una soluzione one-line, se esiste una cosa del genere.

risposta

18

In vim regex, l'operatore di alternanza deve essere preceduto da escape con una barra rovesciata: utilizzare foo\|bar.

9

Invece di fuggire | con una barra rovesciata, è possibile utilizzare vim di "very magic" mode con la sequenza \v:

:%s/\vfoo|bar//g 
Problemi correlati