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:

  1. Premere il tasto Esc per passare alla modalità normale.
  2. Posiziona il cursore sulla riga che desideri eliminare.
  3. 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:

  1. Premere il tasto Esc per passare alla modalità normale.
  2. Posiziona il cursore sulla prima riga che desideri eliminare.
  3. 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:

  1. Premere il tasto Esc per passare alla modalità normale.
  2. 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,$:

  1. Premere il tasto Esc per passare alla modalità normale.
  2. 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.