vim regex no necesita \ para escapar

17

En Vim hay una opción para escribir expresiones regulares en el mismo estilo que Awk, por ejemplo,

/sp\{0,\}/
sería

/sp{0,}/

MagoProspero
fuente

Respuestas:

29

Anteriores a su patrón con \vhará que el patrón “mágica”, y como símbolos {y [tienen un significado interpretado (y literales necesitará ser escapado).

Entonces /\vsp{1,}encontraría lo que buscaba (lo acabo de probar).

Usted puede hacer esto una especie de incumplimiento por parte de reasignación /a /\vlas siguientes líneas en su vimrc:

nnoremap / /\v
vnoremap / /\v

Mira :help patternpara más.

Edd Steel
fuente
1

/sp\{0,}

Por supuesto {0,}, sería mejor usar *: encontraría /sp*(igual que el anterior) una 's' seguida de cero o más p. Tenga en cuenta que cero o más siempre es cierto, por lo que no hay razón para ello en esta expresión en particular.

Kevin
fuente
Todo esto fue buena información y muy útil. ¿Hay alguna forma de evitar el escape de caracteres especiales en vim?
MageProspero
Ahora entiendo lo que quieres decir. Lo dudo seriamente, eso seguramente requeriría un analizador diferente desarrollado en paralelo, y dudo que sea una característica con suficiente demanda para justificar esa implementación y mantenimiento adicionales.
Kevin
-1

Vim no tiene una opción para emular expresiones regulares de estilo awk, no. Hay muchos dialectos de expresiones regulares, y desafortunadamente siempre hay estas pequeñas diferencias dialécticas para realizar un seguimiento cuando se pasa de una herramienta a otra.

MetaEd
fuente