
Suponha que você queira selecionar linhas que sejam: espaço em branco opcional, seguido por um número inteiro positivo, seguido por mais espaços em branco opcionais.
Aqui está um regex que funciona para isso:
:g/^\s*\d\+\s*/
O *
operador não tem escape, enquanto o +
é. Escapar *
quebra o regex. O mesmo acontece com o un-escaping +
.
Existe uma boa explicação para isso? Idealmente, algo para tornar a regra intuitiva. Com o vim, sempre tive dificuldade para escrever regexes por causa de regras de escape incomuns, então adoraria algumas dicas que fariam tudo funcionar para mim.
Responder1
É por razões históricas e quebraria a compatibilidade se fosse alterado. No entanto, você pode prefixar seu padrão com \v
para ativar "muito mágico", para que não precise fazer escapes especiais. Ver :help /\v
.