vim regex não precisa \ escapar

13

No Vim há uma opção para escrever regexs no mesmo estilo que o Awk, por exemplo

/sp\{0,\}/
Seria

/sp{0,}/

    
por Prospero 27.10.2011 / 21:41

3 respostas

24

Precedendo seu padrão com \v tornará o padrão "mágico", e símbolos como { e [ terão um significado interpretado (e os literais precisam ser escapados).

Então /\vsp{1,} encontraria o que você queria (eu testei).

Você pode tornar isso uma espécie de padrão ao remapear / para /\v com as seguintes linhas no seu vimrc:

nnoremap / /\v
vnoremap / /\v

Veja :help pattern para saber mais.

    
por 27.10.2011 / 23:39
1

/sp\{0,}

É claro que para {0,} , seria melhor usar * : /sp* iria (igual ao anterior) encontrar um 's' seguido por zero ou mais p's. Note que zero ou mais é sempre true, então não há razão para isso nesta expressão em particular.

    
por 27.10.2011 / 21:47
-1

O Vim não tem uma opção para emular expressões regulares no estilo awk, não. Existem muitos dialetos de regex e, infelizmente, há sempre essas pequenas diferenças dialéticas para se acompanhar ao passar de uma ferramenta para outra.

    
por 27.10.2011 / 22:03