FaciLinux

Guide Facili per Linux

Trova e Sostituisci in Vim - Parte 1

- Posted in linux by

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).