vim
Trova e sostituisci
Ricerca…
Comando sostitutivo
Questo comando:
:s/foo/bar/g
sostituisce ogni occorrenza di foo
con bar
sulla riga corrente.
fool around with a foodie
diventa
barl around with a bardie
Se si lascia l'ultimo /g
, sostituirà solo la prima occorrenza sulla linea. Per esempio,
:s/foo/bar
Sulla linea precedente diventerebbe
barl around with a foodie
Questo comando:
:5,10s/foo/bar/g
esegue la stessa sostituzione nelle righe da 5 a 10.
Questo comando
:5,$s/foo/bar/g
esegue la stessa sostituzione dalla riga 5 alla fine del file.
Questo comando:
:%s/foo/bar/g
esegue la stessa sostituzione sull'intero buffer.
Se sei in modalità visuale e premi i due punti, apparirà il simbolo '<,'>
. Puoi quindi farlo
:'<,'>s/foo/bar/g
e la sostituzione avviene all'interno della selezione della modalità visiva.
Questo comando:
:%s/foo/bar/gc
è equivalente al comando precedente ma richiede conferma su ogni occorrenza grazie al flag /c
(per "conferma").
Vedi :help :s
e :help :s_flags
.
Vedi anche questa sezione sugli intervalli della riga di comando .
Sostituisci con o senza le espressioni regolari
Questo comando sostitutivo può utilizzare le espressioni regolari e corrisponderà a qualsiasi istanza di foo
seguita da qualsiasi carattere (uno) dal periodo .
in Regular Expressions corrisponde a qualsiasi carattere, quindi il seguente comando corrisponderà a tutte le istanze di foo
seguite da qualsiasi carattere nella riga corrente.
:s/foo./bar/g
1 fooing fooes fool foobar foosup
diventerà
1 barng bars bar barar barup
Se vuoi abbinare il letterale .
periodo puoi evaderlo nel campo di ricerca con una barra rovesciata \
.
:s/foo\./bar/g
1 fooing fooes foo.l foo.bar foosup
diventerà
1 fooing fooes barl barbar foosup
Oppure disabilitare tutti i pattern matching seguendo il comando s
con no
.
:sno/foo./bar/g
1 fooing fooes foo.l foo.bar foosup
genererà un errore
E486: Pattern not found