Vim regex: + debe tener escape, * no. ¿Por qué?

Vim regex: + debe tener escape, * no. ¿Por qué?

Suponga que desea seleccionar líneas que sean: espacios en blanco opcionales, seguidos de un número entero positivo, seguidos de más espacios en blanco opcionales.

Aquí hay una expresión regular que funciona para esto:

:g/^\s*\d\+\s*/

El *operador no se escapa, mientras que el +sí. Escapar *rompe la expresión regular. También lo es dejar de escapar +.

¿Existe una buena explicación para esto? Idealmente, algo que haga que la regla sea intuitiva. Con vim siempre he tenido problemas para escribir expresiones regulares debido a reglas de escape inusuales, por lo que me encantaría tener alguna idea que haga que todo funcione para mí.

Respuesta1

Es por razones históricas y rompería la compatibilidad si se cambiara. Sin embargo, puede anteponer su patrón con \vpara activar "muy mágico" para no tener que hacer un escape especial. Ver :help /\v.

información relacionada