Questo articolo, suddiviso in parti, mostra degli esempi d'uso della funzione "Trova e Sostituisci" nell'editor Vim.
Vim fornisce il comando :s (sostituisci) per la ricerca e la sostituzione di stringhe di testo.
Esempi di base
:s/foo/bar/g
Trova ogni occorrenza della stringa 'foo' (nella riga corrente) e la sostituisce con la stringa 'bar'.
:%s/foo/bar/g
Trova ogni occorrenza della stringa 'foo' (in tutte le righe del testo) e la sostituisce con la stringa 'bar'.
:%s/foo/bar/gc
Trova ogni occorrenza della stringa 'foo' (in tutte le righe del testo) e la sostituisce con la stringa 'bar', chiedendo prima conferma.
:%s/\<foo\>/bar/gc
Trova ogni occorrenza esatta della stringa 'foo' (in tutte le righe del testo) e la sostituisce con la stringa 'bar', chiedendo prima conferma.
:%s/foo/bar/gci
Trova ogni occorrenza (case insensitive, per il flag i) della stringa 'foo' (in tutte le righe del testo) e la sostituisce con la stringa 'bar', chiedendo prima conferma.
:%s/foo/bar/gcI
Trova ogni occorrenza (case sensitive, per il flag i) della stringa 'foo' (in tutte le righe del testo) e la sostituisce con la stringa 'bar', chiedendo prima conferma.
Il flag g significa globale: ogni occorrenza nella riga viene cambiata, piuttosto che solo la prima.
Questo flag assume l'impostazione predefinita per l'opzione gdefault e edcompatible (off), che richiede che il flag g sia incluso in % s///g
per eseguire un sostituzione globale. Usando :set gdefault si crea confusione perché la sostituzione %s///
è globale, mentre %s///g
non lo è (cioè g inverte il suo significato).
Quando si usa la flag c, è necessario confermare cosa fare per ogni occorrenza trovata. Vim produrrà qualcosa come
replace with foobar (y/n/a/q/l/^E/^Y)?
dove foobar è la stringa in sostituzione.
Puoi digitare
y
che significa sostituire questa occorrenza,n
per saltare questa occorrenza,a
sostituire questa e tutte le occorrenze rimanenti,q
per uscire dal comando,l
per sostituire questa occorrenza e uscire,^E
per far scorrere lo schermo verso l'alto tenendo premuto il tasto Ctrl e premendo E^Y
per far scorrere lo schermo verso il basso di tenendo premuto il tasto Ctrl e premendo Y.
Le ultime due scelte sono disponibili solo se Vim è una build normal, big o huge o la funzione insert_expand è stata abilitata al momento della compilazione (cercare +insert_expand nell'output del comando :version
).