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.