Introduzione
Vim o il suo precursore Vi sono preinstallati sulla maggior parte delle distribuzioni Linux e macOS. Conoscere le basi di Vim è importante se sei un amministratore di sistema o solo un normale utente Linux.
Molto spesso, quando si lavora con file di testo, è necessario eliminare una o più righe.
Questo articolo mostra come eliminare le righe in Vim/Vi.
Eliminare una riga
Il comando per eliminare una riga in Vim è dd
.
Di seguito sono riportate le istruzioni dettagliate per eliminare una riga:
- Premere il tasto
Esc
per passare alla modalità normale. - Posiziona il cursore sulla riga che desideri eliminare.
- Digita
dd
e premi Invio per rimuovere la linea.
Premendo dd
più volte verranno eliminate più righe.
Eliminare più righe
Per eliminare più righe contemporaneamente, anteporre al comando dd
il numero di righe da eliminare. Ad esempio, per eliminare cinque righe si dovrebbe fare quanto segue:
- Premere il tasto
Esc
per passare alla modalità normale. - Posiziona il cursore sulla prima riga che desideri eliminare.
- Digita
5dd
e premi Invio per eliminare le cinque righe successive.
Eliminare un intervallo di righe
La sintassi per l'eliminazione di un intervallo di righe è la seguente:
:[start],[end]d
Ad esempio, per eliminare le righe da 3 a 5, devi eseguire quanto segue:
- Premere il tasto
Esc
per passare alla modalità normale. - Digita
:3,5d
e premi Invio per eliminare le righe.
È inoltre possibile utilizzare i seguenti caratteri per specificare l'intervallo:
.
(punto) - La linea corrente.$
- L'ultima riga.%
- Tutte le linee.
Ecco alcuni esempi:
:.,$d
- Dalla riga corrente alla fine del file.:.,1d
- Dalla riga corrente all'inizio del file.10,$d
- Dalla decima riga alla fine del file.
Eliminare tutte le righe
Per eliminare tutte le linee è possibile utilizzare il simbolo %
che rappresenta tutte le linee o l'intervallo 1,$
:
- Premere il tasto
Esc
per passare alla modalità normale. - Digita
%d
e premi Invio per eliminare tutte le righe.
Eliminare le righe contenenti un modello
La sintassi per l'eliminazione di più righe in base a un modello specifico è la seguente:
:g/<pattern>/d
Il comando globale (g
) indica al comando delete (d
) di eliminare tutte le righe contenenti il file <pattern>
.
Per abbinare le linee che non corrispondono al modello, aggiungi un punto esclamativo (!
) prima del modello:
:g!/<pattern>/d
Il modello può essere una corrispondenza letterale o un'espressione regolare. Di seguito sono riportati alcuni esempi:
:g/foo/d
- Elimina tutte le righe contenenti la stringa "foo". Rimuove anche la linea in cui "foo" è incorporato in parole più grandi, come "football".:g!/foo/d
- Elimina tutte le righe che non contengono la stringa "foo".:g/^#/d
- Rimuovi tutti i commenti da uno script Bash. Il modello^#
indica che ogni riga inizia con#
.:g/^$/d
- Rimuovere tutte le righe vuote. Il modello^$
corrisponde a tutte le linee vuote.:g/^\s*$/d
- Rimuovere tutte le righe vuote. A differenza del comando precedente, questo rimuove anche le righe vuote che hanno zero o più caratteri di spazi bianchi (\s*
).
Conclusione
Ti abbiamo mostrato come eliminare le righe in Vim.
Se non conosci Vim, visita il sito Open Vim dove puoi esercitarti con un tutorial interattivo.