Vi recentemente um comando substituto em que o autor foi /
substituído por um !
como este::s!abc!ABC!g
Tentei encontrar alguma documentação sobre esse uso, mas não encontrei nada relevante. Então, tentei experimentar sozinho e mais uma vez não consegui descobrir a diferença real entre os dois sinais. Aqui está o que eu encontrei:
- Não é possível misturar
!
e/
em um comando. Por exemplo,:s!abc/ABC
falha. - Pode ser útil usar
!
para evitar escapar de/
um padrão. Por exemplo, se eu quiser substituir</
por%
, posso usar em:%s!</!%!g
vez de:%s/<\//%/g
. - Parece que, em alguns casos, algum regex não funcionará
/
e funcionará corretamente,!
mas como eu não sou um especialista em regex, não tenho certeza disso.
Portanto, minha pergunta é simples: qual é a vantagem de usar !
em um comando substituto e quando devo decidir usá-lo em vez de /
?