Comandi vi di Linux: le 3 modalità di Vim e la modalità visuale

Informativa sull'affiliazione v3.1
Informativa sull'affiliazione v3.2 (solo mobile)
Ambiente di testFamiglia RHELAlmaLinux 9.8account rootVerificato il 07/10/2026

Aprire vi e scoprire che non compare niente di quello che scrivi, o chiudere la finestra perché non sai come uscire: quasi tutti quelli che toccano un server per la prima volta ci passano una volta. Il comando vi di Linux ha la modalità normale e quella di inserimento separate, quindi appena sai in quale sei, il resto sono pochi tasti. Questo articolo raccoglie in tabelle le tre modalità e i comandi di ciascuna, e puoi provare vi tu stesso su un server virtuale nel browser.

Su AlmaLinux 9.8 vi e vim vengono entrambi dal pacchetto vim 8.2, e le schermate e i messaggi di questo articolo sono stati aperti con vim. Se non è installato, installalo con [dnf -y install vim-enhanced].

Schema del passaggio tra le tre modalità di vi Linux vi command: three modes diagram

✅ Le tre modalità di vi

In vi lo stesso tasto fa cose diverse secondo la modalità. Il file si apre in modalità normale; i ti porta in modalità inserimento per scrivere, Esc ti riporta indietro e i due punti [:] ti portano nella modalità riga di comando per salvare e uscire.

ModalitàTasto per entrareCompito
Modalità normaleDove parte vi · Esc da qualsiasi altra modalitàSpostare il cursore, eliminare, copiare, incollare, annullare
Modalità inserimentoi a I A o OScrivere testo. [-- INSERT --] in fondo allo schermo
Modalità riga di comando:Salvare, uscire, sostituire, numeri di riga. In fondo allo schermo compare un :
Modalità visualev V Ctrl-vSelezionare un intervallo e poi eliminare, copiare o inserire su tutte le righe

Ci sono tre modi per aprire un file dalla console.

ComandoDescrizione
vi nomefileApre il file in modalità normale. Se il file non esiste viene creato e compare [New]
vi +20 nomefileApre con il cursore sulla riga 20
view nomefile= vi -RApre in sola lettura. Modificando compare l'avviso [W10], salvando [E45]

Digita [vi httpd.conf] sul server virtuale qui sotto per aprire vi, e il menu a sinistra passa ai comandi interni di vi. Facendo clic su un chip quel tasto va sullo schermo, oppure puoi scriverlo con la tastiera.

Simulatore dei comandi vivim 8.2
[root@server work]#
Funziona solo nel tuo browser e non tocca file reali. Apri prima un file con vi httpd.conf e il menu a sinistra passa ai comandi interni di vi. Facendo clic su un chip quel tasto viene scritto sullo schermo, oppure puoi usare la tastiera. Dopo aver salvato e chiuso con :wq controlla il risultato con cat; se qualcosa si ingarbuglia, premi [Start over]. Prova tu stesso gli altri tasti delle tabelle.

✅ Riepilogo dei comandi vi di Linux

🔲 Spostare il cursore

TastoDescrizione
h j k l← ↓ ↑ →Sposta di un carattere. Funzionano anche le frecce
0 · ^Inizio della riga (0) · primo carattere non vuoto (^)
$Fine della riga
w · b · eInizio della parola successiva · inizio della parola precedente · fine della parola successiva
gg · GPrima riga · ultima riga del file
20Gcome :20Va alla riga 20. Cambia il numero per un'altra riga
H · M · LRiga in alto · al centro · in basso dello schermo
Ctrl-f · Ctrl-bUna schermata giù · su
Ctrl-d · Ctrl-uMezza schermata giù · su

🔲 Entrare in modalità inserimento

Qualunque tasto usi per entrare, premi Esc quando hai finito di scrivere. cw, cc, C e s cancellano e ti mettono subito in modalità inserimento, quindi correggere una parola o una riga è più rapido che premere x e i separatamente.

TastoDescrizione
i · aIniziare a scrivere prima (i) · dopo (a) il cursore
I · AIniziare a scrivere all'inizio (I) · alla fine (A) della riga
o · OAprire una riga vuota sotto (o) · sopra (O) e scrivere
cwCancellare dal cursore alla fine della parola e scrivere
ccCancellare l'intera riga e scrivere
CCancellare dal cursore alla fine della riga e scrivere
sCancellare un carattere e scrivere
EscSmettere di scrivere e tornare alla modalità normale

🔲 Eliminare e modificare

Metti un tasto di movimento dopo d e quell'intervallo viene cancellato. dw cancella una parola, dd una riga, dG tutto fino alla fine del file, e un numero davanti lo ripete altrettante volte.

TastoDescrizione
x · XCancellare il carattere sotto (x) · prima (X) del cursore. 3x ne cancella tre
dwCancellare dal cursore alla fine della parola
ddCancellare la riga. 3dd ne cancella tre
D= d$Cancellare dal cursore alla fine della riga
d0Cancellare dall'inizio della riga fino al cursore
dGCancellare dalla riga corrente alla fine del file
:6d · :6,10dCancellare la riga 6 · cancellare le righe 6–10
JUnire la riga successiva alla fine di quella corrente
rSostituire il carattere sotto il cursore con il prossimo tasto premuto
~Alternare maiuscolo/minuscolo
>> · <<Indentare · ridurre l'indentazione della riga

🔲 Copiare, incollare e annullare

Il testo cancellato si incolla con p come quello copiato, quindi dd seguito da p sposta una riga in basso. u torna indietro di più modifiche, e Ctrl-r rifà ciò che hai annullato.

TastoDescrizione
yyCopiare la riga. 3yy ne copia tre
ywCopiare dal cursore alla fine della parola
p · PIncollare sotto (p) · sopra (P). Per una copia a caratteri, dopo · prima del cursore
:1 co 7come :1 t 7Copiare la riga 1 sotto la riga 7
:1,7 co 8Copiare le righe 1–7 sotto la riga 8
:1 m 8Spostare la riga 1 sotto la riga 8
uAnnullare. Premi ancora per continuare a tornare indietro
Ctrl-rRifare ciò che hai annullato
.Ripetere l'ultima modifica

🔲 Cercare e sostituire

La sostituzione si fa nella modalità riga di comando. Senza intervallo vale solo per la riga corrente, [%] copre l'intero file e senza g alla fine cambia solo la prima occorrenza di ogni riga.

TastoDescrizione
/testoCerca verso il basso dal cursore. Alla fine riprende dall'inizio: [search hit BOTTOM, continuing at TOP]
?testoCerca verso l'alto dal cursore
n · NOccorrenza successiva nella stessa direzione (n) · in direzione opposta (N)
*Cercare verso il basso la parola sotto il cursore
:s/old/new/Primo old della riga corrente in new
:s/old/new/gTutti gli old della riga corrente in new
:%s/old/new/gTutti gli old dell'intero file in new
:10,20s/old/new/gTutti gli old delle righe 10–20 in new
:%s/old/new/gcChiedere prima di ogni modifica (y cambia · n salta · a tutte · q basta)

🔲 Salvare, uscire e numeri di riga

TastoDescrizione
:wSalvare. Al termine: [36L, 1094B written]
:w nomefileSalvare con un altro nome. Il file originale resta com'è
:wq= :⁠x = ZZSalvare e uscire
:qUscire. Se ci sono modifiche non salvate: [E37: No write since last change]
:q!Uscire senza salvare
:set nu · :set nonuMostrare · nascondere i numeri di riga

✅ Commentare una colonna con la modalità visuale a blocchi di Vim

Per mettere lo stesso testo all'inizio di più righe, usa la modalità visuale a blocchi invece di premere i su ogni riga. In modalità normale v seleziona per carattere, Shift-v per riga e Ctrl-v per colonna.

Schema delle tre modalità visuali di vim vim visual mode: three kinds diagram

Ecco come commentare un intero blocco di un file di configurazione. Metti il cursore sul primo carattere della prima riga, premi Ctrl-v, scendi con j per selezionare le righe, poi premi I, digita # e premi Esc.

Avviare la modalità visuale a blocchi di vim
1. Premi Ctrl-v sul primo carattere della prima riga e compare [-- VISUAL BLOCK --].
Selezionare righe con il cursore nella modalità visuale a blocchi di vim
2. Scendi con j per selezionare tutte le righe da commentare.
Scrivere nell'inserimento a blocchi di vim
3. Premi I e digita #; compare solo sulla prima riga.
Modifica di colonna completata nella modalità visuale a blocchi di vim
4. Premi Esc e # viene aggiunto a tutte le righe selezionate.

Togliere i commenti funziona allo stesso modo. Metti il cursore sul # della prima riga, seleziona verso il basso con Ctrl-v, premi x e la colonna selezionata sparisce in un colpo. Puoi provarlo così su vhost.conf nel simulatore qui sopra.

  • Comandi vi e vim
  • Comandi di elaborazione del testo
  • Struttura dell'editor vi: modalità normale, inserimento e riga di comando

ℹ️ Informativa sull'affiliazione
I contenuti di questo sito includono link di affiliazione. Se un visitatore acquista un prodotto o un servizio tramite uno di questi link, il sito riceve una commissione dal venditore. In questo processo l'importo pagato dall'acquirente (durante le promozioni l'importo scende↓) non aumenta. Prezzi, sconti e disponibilità indicati si riferiscono al momento della stesura e possono differire da quelli reali: prima di acquistare verifica sempre presso il venditore. I prodotti vengono scelti e valutati secondo criteri propri, e le commissioni non influiscono sull'ordine di presentazione né sul contenuto delle valutazioni.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Dimostra di essere umano: 1   +   5   =