Cheat sheet Vim

6 min di lettura·Matthieu

Riferimento rapido dei comandi Vim, organizzato per il lavoro di amministrazione server. Salva questa pagina nei preferiti.

Modalità

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

Operazioni sui file

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

Per carattere e riga

Tasto Azione
h j k l Sinistra, giù, su, destra
0 Inizio riga
$ Fine riga
^ Primo carattere non vuoto

Per parola

Tasto Azione
w / W Parola successiva / PAROLA successiva
b / B Parola precedente / PAROLA precedente
e Fine della parola

Nel file

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

Ricerca

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)

Entrare in modalità Inserimento

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

Modifica

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

Contatori e composizione

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)

Modalità Visuale

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

Cercare e sostituire

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 regex comuni

Pattern Corrisponde a
^ / $ Inizio / fine riga
. Qualsiasi carattere
\d Cifra
\s Spazio bianco
.* Qualsiasi carattere (greedy)
\v Modalità "very magic" (meno escaping)

Esempi server

:%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

Buffer

Comando Azione
:e file Aprire nel buffer
:bn / :bp Buffer successivo / precedente
:ls Elencare i buffer
:b2 Andare al buffer 2
:bd Chiudere buffer

Split

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

Schede

Comando Azione
:tabnew file Aprire in una nuova scheda
gt / gT Scheda successiva / precedente
:tabclose Chiudere scheda

Configurazione .vimrc

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

Scorciatoie per il lavoro sul server

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

Risoluzione problemi

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.

Pronto a provare?

Distribuisci il tuo server in pochi secondi. Linux, Windows o FreeBSD.

Vedi piani VPS