¿Hay alguna alternativa en vim search y replace para cadenas, que tener que escapar de cada carácter especial en cadena?
Por ejemplo, si quiero hacer coincidir la siguiente cadena y reemplazarla por algo
[ERROR] Login unsucessful
Entonces tengo que hacer
:%s/\[ERROR\]\ Login\ unsucessful/something/g
Y se vuelve mucho más feo y doloroso para las cadenas complejas que contienen muchos caracteres especiales
Me gustaria hacer algo como
:%s/"[ERROR] Login unsucessful"/something/g
lo que evitaría todo escape. ¿Hay alguna característica como esta?
fuente
/
para/\v
habilitar "muy mágico" para la mayoría de las búsquedas, por lo que me he mapeado//
para/
comenzar una búsqueda no modificada (útil para pasar por el historial de búsqueda ignorando modificadores) y/v/
para/\V
apagar rápidamente toda la magia para la búsqueda.No necesitas escapar de los espacios. Así que esto:
en realidad debería ser:
Y, por supuesto, puede habilitar el "modo" muy nomagic para que esos caracteres especiales sean menos especiales:
Ver
:help /magic
.fuente
Además de las banderas nomagic mencionan en otras respuestas.
Es frecuente que no necesite ser preciso en su cadena de búsqueda
Por ejemplo, para que coincida
Podrías usar la expresión
Obviamente, debe saber que sus datos no contendrán otras cadenas, que diferirán de su objetivo previsto pero que coinciden con la expresión.
fuente