Come trovare e sostituire il testo in Vim su Linux

vim è uno degli editor di file più popolari in Linux. Parte della popolarità è dovuta alla modalità della riga di comando di vim, che consente agli utenti, in particolare agli sviluppatori di software e agli utenti avanzati, di ottimizzare il tempo per le operazioni di modifica dei file.

In questo articolo vedremo come trovare e sostituire il testo in vim modalità riga di comando.

Per prima cosa, apriamo un file di testo in vim:

vim test.txt

Vim opera in varie modalità. Le due modalità più importanti sono la modalità di comando menzionata sopra e la seconda è la modalità di inserimento, utilizzata per modificare il contenuto del file.

Per impostazione predefinita, quando viene aperto un file, vim opera in modalità comando. puoi premere io per passare alla modalità di inserimento.

In modalità Command, puoi iniziare direttamente a digitare i comandi vim; appaiono nella parte inferiore del terminale. Questa parte inferiore funge da prompt dei comandi integrato in vim.

Per cercare una stringa, digita barra rovesciata / seguito dalla stringa da cercare.

Ad esempio: /cane

Come visto sopra, porta il cursore all'occorrenza successiva della stringa dalla posizione in cui è posizionato il cursore. Il cursore è stato posizionato sulla stringa Marrone come mostrato in un'immagine precedente. Per trovare le occorrenze successive, premere n. Dopo l'ultima occorrenza, torna alla prima, dando un messaggio “ricerca ha colpito BOTTOM, continuando a TOP”.

Per cercare una stringa con un carattere speciale, o ad esempio caratteri come un più (+) o uno spazio, precedono il carattere con una barra:

Ad esempio: /C\+

Per trovare e sostituire la prima occorrenza della stringa su una riga, posizioniamo il cursore su quella riga e usiamo il seguente comando:

Ad esempio: :s/cane/tigre

Come puoi vedere nello screenshot qui sopra, la terza riga in cui è posizionato il cursore, la parola cane è stato sostituito con tigre come indicato nel comando.

Per trovare e sostituire tutte le occorrenze di stringa su una riga, uso /G alla fine.

Ad esempio: :s/cat/dog/g

Per trovare e sostituire tutte le occorrenze a livello globale, noi usiamo %S invece di solo S:

Ad esempio: :%s/cane/topo

Se la stringa è costituita da un carattere speciale come lo spazio, può essere preceduta da una barra, come mostrato in precedenza.

? Saluti!