Riferimento rapido dei comandi Vim, organizzato per il lavoro di amministrazione server. Salva questa pagina nei preferiti.
| Modalità |
Accesso |
Scopo |
Ritorno a Normal |
| Normal |
Esc |
Navigare, eseguire comandi |
Già attiva |
| Inserimento |
i, a, o, I, A, O |
Digitare testo |
Esc |
| Visuale |
v (carattere), V (riga), Ctrl+v (blocco) |
Selezionare testo |
Esc |
| Riga di comando |
: |
Eseguire comandi ex |
Enter o Esc |
| Comando |
Azione |
:w |
Salvare |
:q |
Uscire (fallisce con modifiche non salvate) |
:wq o ZZ |
Salvare e uscire |
:q! |
Uscire senza salvare |
:w !sudo tee % |
Salvare un file di sola lettura (quando hai dimenticato sudoedit) |
:e /percorso/del/file |
Aprire file |
:saveas /percorso |
Salvare con un nuovo nome |
| Tasto |
Azione |
h j k l |
Sinistra, giù, su, destra |
0 |
Inizio riga |
$ |
Fine riga |
^ |
Primo carattere non vuoto |
| Tasto |
Azione |
w / W |
Parola successiva / PAROLA successiva |
b / B |
Parola precedente / PAROLA precedente |
e |
Fine della parola |
| Tasto |
Azione |
gg |
Prima riga |
G |
Ultima riga |
42G o :42 |
Riga 42 |
Ctrl+d / Ctrl+u |
Mezza pagina giù / su |
Ctrl+f / Ctrl+b |
Pagina intera giù / su |
% |
Parentesi corrispondente |
| Tasto |
Azione |
/pattern |
Cercare in avanti |
?pattern |
Cercare all'indietro |
n / N |
Prossima / precedente corrispondenza |
* |
Cercare la parola sotto il cursore (avanti) |
# |
Cercare la parola sotto il cursore (indietro) |
| Tasto |
Azione |
i |
Prima del cursore |
a |
Dopo il cursore |
I |
Inizio riga |
A |
Fine riga |
o |
Nuova riga sotto |
O |
Nuova riga sopra |
s |
Eliminare carattere e inserire |
S o cc |
Eliminare riga e inserire |
| Comando |
Azione |
x |
Eliminare carattere |
dd |
Eliminare riga |
dw |
Eliminare parola |
d$ o D |
Eliminare fino a fine riga |
d0 |
Eliminare fino a inizio riga |
cc |
Cambiare riga |
cw |
Cambiare parola |
ci" |
Cambiare dentro le virgolette |
ci( |
Cambiare dentro le parentesi |
yy |
Copiare riga |
yw |
Copiare parola |
p / P |
Incollare dopo / prima |
u |
Annullare |
Ctrl+r |
Ripristinare |
. |
Ripetere l'ultima modifica |
>> / << |
Indentare / deindentare riga |
J |
Unire riga corrente con la successiva |
I comandi Vim accettano un prefisso numerico. Combina operatori con movimenti per modifiche precise.
| Esempio |
Azione |
3dd |
Eliminare 3 righe |
5j |
Scendere di 5 righe |
d2w |
Eliminare le prossime 2 parole |
4>> |
Indentare 4 righe |
y3w |
Copiare 3 parole |
ct; |
Cambiare testo fino a ; |
df" |
Eliminare fino al prossimo " (incluso) |
| Comando |
Azione |
v |
Avviare selezione per carattere |
V |
Avviare selezione per riga |
Ctrl+v |
Avviare selezione per blocco |
d |
Eliminare la selezione |
y |
Copiare la selezione |
> / < |
Indentare / deindentare la selezione |
:s/^/#/ |
Commentare le righe selezionate (in modalità visuale per righe) |
U / u |
Maiuscole / minuscole della selezione |
| Comando |
Azione |
:s/vecchio/nuovo/ |
Sostituire il primo sulla riga corrente |
:s/vecchio/nuovo/g |
Sostituire tutti sulla riga corrente |
:%s/vecchio/nuovo/g |
Sostituire tutti nel file |
:%s/vecchio/nuovo/gc |
Sostituire tutti con conferma |
:5,10s/vecchio/nuovo/g |
Sostituire tutti sulle righe 5-10 |
| Pattern |
Corrisponde a |
^ / $ |
Inizio / fine riga |
. |
Qualsiasi carattere |
\d |
Cifra |
\s |
Spazio bianco |
.* |
Qualsiasi carattere (greedy) |
\v |
Modalità "very magic" (meno escaping) |
:%s/listen 80;/listen 443 ssl;/g
:%s/nginx:1.24/nginx:1.27/g
:%s/192\.168\.1\.1/10.0.0.1/g
| Comando |
Azione |
:e file |
Aprire nel buffer |
:bn / :bp |
Buffer successivo / precedente |
:ls |
Elencare i buffer |
:b2 |
Andare al buffer 2 |
:bd |
Chiudere buffer |
| Comando |
Azione |
:sp file |
Split orizzontale |
:vs file |
Split verticale |
Ctrl+w h/j/k/l |
Spostarsi tra gli split |
Ctrl+w = |
Dimensioni uguali degli split |
Ctrl+w q |
Chiudere split |
Ctrl+w _ |
Massimizzare l'altezza dello split corrente |
Ctrl+w | |
Massimizzare la larghezza dello split corrente |
| Comando |
Azione |
:tabnew file |
Aprire in una nuova scheda |
gt / gT |
Scheda successiva / precedente |
:tabclose |
Chiudere scheda |
Configurazione minimale ottimizzata per il server:
set nocompatible
set encoding=utf-8
set number relativenumber
syntax on
set expandtab tabstop=2 shiftwidth=2 softtabstop=2
set incsearch hlsearch ignorecase smartcase
set showmatch laststatus=2 showmode
set mouse=a
set pastetoggle=<F2>
set noswapfile
set cursorline
set list listchars=tab:>>·,trail:·
filetype plugin indent on
| Compito |
Comandi |
| Modificare un file root in sicurezza |
sudoedit /etc/nginx/nginx.conf |
| Incollare senza indentazione a cascata |
F2, i, incolla, F2 |
| Saltare alla riga dell'errore |
vim +42 file.yml |
| Convertire tab in spazi (fix YAML) |
:%s/\t/ /g |
| Commentare più righe |
V, seleziona, :s/^/#/ |
| Decommentare più righe |
V, seleziona, :s/^#// |
| Verificare la configurazione Nginx |
:!sudo nginx -t |
| Ricaricare senza uscire da Vim |
:!sudo systemctl reload nginx |
| Problema |
Soluzione |
| Non posso digitare dopo aver aperto Vim |
Premi i (sei in modalità Normal) |
Terminale bloccato (Ctrl+s) |
Premi Ctrl+q |
| Indentazione a scaletta quando incollo |
Attiva modalità incolla: F2 o :set paste |
| File di sola lettura |
Esci, riapri con sudoedit |
| Avviso file swap |
Scegli (D)elete se nessun'altra sessione sta modificando |
Copyright 2026 Virtua.Cloud. Tutti i diritti riservati.
Questo contenuto è un'opera originale del team Virtua.Cloud.
La riproduzione, ripubblicazione o redistribuzione senza autorizzazione scritta è vietata.