Recentemente ho trovato un comando sostituto per vim in cui l'autore ha avuto l'/
sostituito da un !
come questo: :%s!foo!bar
e non capisco la differenza con il traditionnal :%s/foo/bar
.Vim cosa è l'uso del punto esclamativo al comando sostituto
Ho cercato della documentazione su questa sintassi ma non ho trovato nulla di rilevante, quindi ho provato a sperimentare da solo e non sono riuscito a capire chiaramente la differenza tra le due forme. Ecco cosa ho trovato:
- Non si può mescolare
/
e!
nello stesso comando. Ad esempio::%s/foo!bar
non riuscirà. - Il segno
!
può essere utile con motivi che includono uno/
. Ad esempio, se voglio sostituire</
con%
nel mio file, posso fare:%s!</!%!g
anziché:%s/<\//%/g
: non ho bisogno di sfuggire a/
nel primo comando, ma sarei sorpreso se quello fosse l'unico uso di!
. - Alcune espressioni regolari non funzionano con
/
e funzionano in modo corretto con!
ma, poiché non sono certo un regex master, non sono sicuro di questo punto.
Quindi la mia domanda è: qual è la differenza tra /
e !
in sostituzione vim e quando devo usare uno invece dell'altro?
Questa domanda è stata [pubblicata anche su vi.stackexchange] (http://vi.stackexchange.com/q/3156/51). – Carpetsmoker
Effettivamente ho fatto un doppio post per errore l'ho segnalato su vim per sapere cosa dovrei fare. – statox