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,}/

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.


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.


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.