Vim: sostituire testo in tutti i buffer aperti con un solo comando
Indice dei Contenuti
Vim: è necessario sostituire del testo in tutti i buffer aperti?
Avete necessità di effettuare una sostituzione tra due parole o frammenti di testo in tutti i documenti aperti?
La prima opzione è quella di aprire tutti i documenti e di effettuare una ricerca con sostituzione in ciascuno di essi.
La stringa di ricerca e sostituzione sarebbe simile a quella sotto riportata dove foo
sarebbe il dato da sostituire e bar
il dato sostituto.
%s/foo/bar/g
La lettera g
a fine stringa determina la sostituzione globale evitando la richiesta di accettazione per ogni elemento sostituito.
Vim: è possibile effettuare l’operazione con un solo comando?
Quello precedentemente illustrato è già un buon sistema, ma si può fare di meglio: si possono sostituire tutti gli elementi in tutti i documenti aperti in Vim con un unico comando.
Il comando è il seguente:
:bufdo %s/foo//g | w
In pratica il comando bufdo
estende l’operazione a tutti i buffer aperti. Il nome stesso è mnemonico in quanto deriva da: buffer do, ovvero da fare in ogni buffer.
La barra verticale visibile alla fine della formula costitisce un argomento del comando che lancia, dopo che ogni buffer ha completato le sostituzioni, il comando posto alla destra della barra stessa.
In questo caso, il comando posto alla destra è la lettera w
che scrive (write), ovvero salva, i rispettivi buffer.
Se non fosse presente la barra verticale sarebbe salvato soltanto l’ultimo documento elaborato.
Grazie per l’attenzione