Hace poco vi un comando sustituto donde el autor tenía el /reemplazado por uno !como este::s!abc!ABC!g
Traté de encontrar documentación sobre este uso, pero no pude encontrar nada relevante. Así que intenté experimentar solo y una vez más no pude descubrir la diferencia real entre los dos signos. Esto es lo que encontré:
- No es posible mezclar
!y/en un comando. Por ejemplo:s!abc/ABCfalla. - Puede ser útil usar
!para evitar escapar/de un patrón. Por ejemplo, si quiero reemplazar</con%puedo usar en:%s!</!%!glugar de:%s/<\//%/g. - Parece que, en algunos casos, algunas expresiones regulares no funcionarán
/y funcionarán correctamente,!pero como no soy realmente un experto en expresiones regulares, no estoy seguro de eso.
Entonces mi pregunta es simple: ¿Cuál es la ventaja de usar !un comando sustituto y cuándo debería decidir usarlo en lugar de /?
substitute
statox
fuente
fuente

Respuestas:
De
:help :global:Como ya ideó a partir de su experimentación, esto es para prevenir el llamado " síndrome del palillo inclinado ". Considera esto:
versus:
La segunda forma es obviamente mucho más legible.
Esta es la única razón por la que puede cambiar el delimitador; para que sea más legible para nosotros los humanos. A la computadora no le importa.
Por cierto, algunos otros programas son aún más flexibles,
sedpor ejemplo , en GNU puede usarloxcomo delimitador si lo desea.sed sxaxbxg filees el mismo quesed s/a/b/g file.fuente
:%s@/home/martin/test@/home/jake/x@, ya que la "grasa"@hace que sea aún más fácil ver dónde comienzan / terminan las partes individuales de la declaración.:%s#/home/martin/test#/home/jake/x#funciona aún mejor, pero eso es solo una opinión personal.