Globali
- 
            :h[elp] parola chiave - apri il manuale (di vim) per 
keyword - :sav[eas] file - salva il file con nome
 - :clo[se] - chiudi il pannello corrente
 - :ter[minal] - apri in una finestra di terminale
 - K - apri la pagina del manuale (man) relativa alla parola sotto al cursore
 
Movimento del cursore
- h - muovi cursore a sinistra
 - j - muovi cursore in basso
 - k - muovi cursore in alto
 - l - muovi cursore a destra
 - gj - move cursor down (multi-line text)
 - gk - move cursor up (multi-line text)
 - H - vai in cima alla schermata
 - M - vai a metà della schermata
 - L - vai in fondo alla schermata
 - w - salta avanti fino all'inizio di una parola
 - W - salta avanti fino all'inizio di una parola (le parole possono contenere punteggiatura)
 - e - salta avanti fino alla fine di una parola
 - E - salta avanti fino alla fine di una parola (le parole possono contenere punteggiatura)
 - b - salta indietro fino all'inizio di una parola
 - B - salta indietro fino all'inizio di una parola (le parole possono contenere punteggiatura)
 - ge - saòta indietro alla fine della parola
 - gE - saòta indietro alla fine della parola (le parole possono contenere la punteggiatura)
 - 
            % - vai al carattere corrispondente (le coppie supportate automaticamente sono: '()', '{}', '[]' - per ulteriori informazioni usa 
:h matchpairsin vim) - 0 - salta all'inizio della linea
 - ^ - salta fino al primo carattere non vuoto della linea
 - $ - salta alla fine della linea
 - g_ - salta fino all'ultimo carattere non vuoto della linea
 - gg - vai alla prima linea del documento
 - G - vai all'ultima linea del documento
 - 5gg or 5G - vai alla linea 5
 - gd - move to local declaration
 - gD - move to global declaration
 - fx - salta alla prossima occorrenza del carattere x
 - tx - salta a prima della prossima occorrenza del carattere x
 - Fx - salta all'occorrenza precedente del carattere x
 - Tx - salta al carattere successivo alla precedente occorrenza del carattere x
 - ; - ripeti l'ultimo movimento f, t, F o T
 - , - ripeti l'ultimo movimento f, t, F o T, all'indietro
 - } - salta al prossimo paragrafo (o funzione/blocco, se si scrive codice)
 - { - salta al paragrafo precedente (o funzione/blocco, se si scrive codice)
 - zz - centra il cursore nella schermata
 - zt - position cursor on top of the screen
 - zb - position cursor on bottom of the screen
 - Ctrl + e - sposta la schermata in basso di una linea (senza muovere il cursore)
 - Ctrl + y - sposta la schermata in alto di una linea (senza muovere il cursore)
 - Ctrl + b - sposta indietro di un'intera schermata
 - Ctrl + f - sposta avanti di un'intera schermata
 - Ctrl + d - sposta avanti di mezza schermata
 - Ctrl + u - sposta indietro di mezza schermata
 
Modalità inserimento - inserisci/aggiungi testo
- i - inserisci prima del cursore
 - I - inserisci all'inizio della linea
 - a - inserisci (aggiungi) dopo il cursore
 - A - inserisci (aggiungi) alla fine della linea
 - o - aggiungi (apri) una nuova linea sotto la linea corrente
 - O - aggiungi (apri) una nuova linea sopra la linea corrente
 - ea - inserisci (aggiungi) alla fine della parola
 - Ctrl + h - elimina un carattere prima del cursore durante la modalità inserimento
 - Ctrl + w - elimina una parola prima del cursore durante la modalità inserimento
 - Ctrl + j - inizia nuova linea nella fase di inserimento
 - Ctrl + t - indenta (spostamento a destra) una linea nella fase di inserimento
 - Ctrl + d - de-indenta (spostamento a sinistra) una linea nella fase di inserimento
 - Ctrl + n - inserimento (auto completamento) nel match successivo prima del cursore nella fase di inserimento
 - Ctrl + p - inserimento (auto completamento) nel match precedente prima del cursore nella fase di inserimento
 - Ctrl + rx - inserimento del contenuto del registro x
 - Ctrl + ox - Temporaneamente entra in modalità normale per eseguire un comando x.
 - Esc or Ctrl + c - esci dalla modalità inserimento
 
Modifica
- r - sostituisci un singolo carattere
 - R - replace more than one character, until ESC is pressed.
 - J - unisci la linea sottostante con quella corrente
 - gJ - unisci la linea sottostante con quella corrente senza spazi in mezzo
 - gwip - riformatta paragrafo
 - g~ - cambia carattere maiuscolo in movimento
 - gu - cambia il carattere minuscolo in maiuscolo, in movimento
 - gU - cambia il carattere maiuscolo in minuscolo, in movimento
 - cc - cambia (sostituisci) l'intera linea
 - c$ or C - cambia (sostituisci) fino alla fine della linea
 - ciw - cambia (sostituisci) una parola intera
 - cw or ce - cambia (sostituisci) fino alla fine della parola
 - s - cancella carattere e sostituisci testo
 - S - cancella linea e sostituisci testo (uguale a cc)
 - xp - scambia due lettere (cancella e incolla)
 - u - annulla l'ultima modifica
 - U - Recupera (rifai) l' ultima linea cambiata
 - Ctrl + r - ripeti l'ultima modifica
 - . - ripeti l'ultimo comando
 
Seleziona testo (modalità visuale)
- v - inizia modalità visuale, seleziona linee, quindi esegui un comando (per esempio y-copia)
 - V - inizia modalità visuale su linee intere
 - o - vai all'altro capo dell'area selezionata
 - Ctrl + v - inizia modalità visuale su blocchi
 - O - vai ad un altro angolo del blocco
 - aw - seleziona una parola
 - ab - un blocco con ()
 - aB - un blocco con {}
 - at - a block with <> tags
 - ib - un blocco con () (parentesi escluse)
 - iB - un blocco con {} (parentesi escluse)
 - it - blocco interno tra <> tags
 - Esc or Ctrl + c - esci dalla modalità visuale
 
Comandi della modalità visuale
- > - scorri testo a destra
 - < - scorri testo a sinistra
 - y - copia testo selezionato
 - d - elimina testo selezionato
 - ~ - inverti maiuscole e minuscole
 - u - cambio marcatore di testo a minuscolo
 - U - cambio marcatore di testo a maiuscolo
 
Registri
- :reg[isters] - mostra il contenuto dei registri
 - "xy - copia dentro al registro <code>x</code>
 - "xp - incolla il contenuto del registro <code>x</code>
 - "+y - taglia dentro il registro della clipboard di sistema
 - "+p - incolla dal registro della clipboard di sistema
 
             0 - ultimo strappo
             " - registri senza nome , ultimo eliminato o tirato
             % - nome del file attuale
             # - nome del file alternativo
             * - contenuto della clipboard (X11 primaria)
             + - contenuto della clipboard (X11 clipboard)
             / - ultimo pattern di ricerca
             : - ultimo comando eseguito
             . - ultima linea inserita
             - - ultima piccola (più piccola di una riga) cancellazione
             = - registro di espressione
             _ - registro di buco nero
          
Segnalibri
- :marks - elenca i segnalibri
 - ma - imposta il segnalibro <code>A</code> alla posizione corrente
 - `a - salta alla posizione del segnalibro <code>A</code>
 - y`a - copia il testo fino alla posizione del segnalibro <code>A</code>
 - `0 - vai all' ultima posizione dove vim è uscito
 - `" - vai alla posizione quando l' ultima modifica nel file
 - `. - vai alla posizione dell' ultima modifica nel file
 - `` - vai alla posizione prima dell' ultimo salto
 - :ju[mps] - lista di salti
 - Ctrl + i - vai ad una nuova posizione nella lista dei salti
 - Ctrl + o - vai ad una vecchia posizione nella lista dei salti
 - :changes - lista di cambiamenti
 - g, - vai ad una nuova posizione nella lista dei cambiamenti
 - g; - vai ad una vecchia posizione nella lista dei cambiamenti
 - Ctrl + ] - salta al tag sotto il cursore
 
Macro
- qa - registra la macro <code>a</code>
 - q - smetti di registrare macro
 - @a - esegui la macro <code>a</code>
 - @@ - esegui di nuovo l'ultima macro eseguita
 
Taglia e incolla
- yy - copia una linea
 - 2yy - copia due linee
 - yw - copia una parola
 - yiw - copia la parola sotto il cursore
 - yaw - copia la parola sotto il cursore e lo spazio prima o dopo
 - y$ or Y - copia fino alla fine della linea
 - p - incolla dopo il cursore
 - P - incolla prima del cursore
 - gp - put (paste) the clipboard after cursor and leave cursor after the new text
 - gP - put (paste) before cursor and leave cursor after the new text
 - dd - cancella (taglia) una linea
 - 2dd - cancella (taglia) due linee
 - dw - cancella (taglia) una parola
 - diw - cancella (taglia) la parola sotto il cursore
 - daw - cancella (taglia) la parola sotto il cursore e lo spazio prima o dopo
 - :3,5d - delete lines starting from 3 to 5
 
e.g.
            :.,$d - From the current line to the end of the file 
            :.,1d - From the current line to the beginning of the file 
            :10,1d - From the 10th line to the beginning of the file 
          
- :g/{pattern}/d - delete all lines containing pattern
 - :g!/{pattern}/d - delete all lines not containing pattern
 - d$ or D - cancella (taglia) fino alla fine della linea
 - x - cancella (taglia) carattere
 
Indent text
- >> - indenta una linea ( muovi a destra) shiftwidth
 - << - deindenta (muovi a sinistra) una linea shiftwidth
 - >% - indenta un blocco compreso tra () o {} (cursore nelle parentesi)
 - <% - de-indent a block with () or {} (cursor on brace)
 - >ib - indenta un blocco interno compreso tra ()
 - >at - indenta un blocco compreso tra tag <>
 - 3== - re indenta tre linee
 - =% - reindenta un blocco compreso tra () o {} (cursore nelle parentesi)
 - =iB - reindenta il blocco interno compreso tra {}
 - gg=G - reindenta l' intero buffer
 - ]p - incolla e aggiusta l' indenzione della linea attuale
 
Uscire
- :w - scrivi (salva) il file, ma non uscire
 - :w !sudo tee % - scrivi il file corrente usando sudo
 - :wq or :x or ZZ - scrivi (salva) ed esci
 - :q - esci (fallisce se ci sono modifiche non salvate)
 - :q! or ZQ - esci e ignora modifiche non salvate
 - :wqa - scrivi (salva) ed esci su tutti i tab
 
Cerca e sostituisci
- /pattern - cerca pattern
 - ?pattern - cerca pattern all'indietro
 - \vpattern - pattern 'very magic': i caratteri non alfanumerici sono interpretati come simboli speciali di regex (nessun carattere di escape necessario)
 - n - ripeti ricerca nella stessa direzione
 - N - ripeti ricerca nella direzione opposta
 - :%s/old/new/g - sostituisci old con new in tutto il file
 - :%s/old/new/gc - sostituisci old con new in tutto il file senza chiedere conferma
 - :noh[lsearch] - rimuove l'evidenziazione dei risultati della ricerca
 
Cerca in più file
- :vim[grep] /pattern/ {`{file}`} - cerca il pattern in più file
 
- :cn[ext] - salta al prossimo risultato
 - :cp[revious] - salta al risultato precedente
 - :cope[n] - apri una finestra contenente la lista di risultati
 - :ccl[ose] - close the quickfix window
 
Tabs
- :tabnew or :tabnew {page.words.file} - apri un file in un nuovo tab
 - Ctrl + wT - muovi la finestra corrente nel suo proprio tab
 - gt or :tabn[ext] - vai al tab successivo
 - gT or :tabp[revious] - vai al tab precedente
 - #gt - vai al tab numero #
 - :tabm[ove] # - muovi il tab corrente nella #-esima posizione (l'indice parte da 0)
 - :tabc[lose] - chiudi il tab corrente e tutte le sue finestre
 - :tabo[nly] - chiudi tutti i tab tranne quello corrente
 - 
            :tabdo command - esegui il 
comandoin tutti i tab (es.:tabdo q- chiude tutti i tab aperti) 
Lavorare con file multipli
- :e[dit] file - modifica file in un nuovo buffer
 - :bn[ext] - vai al buffer successivo
 - :bp[revious] - vai al buffer precedente
 - :bd[elete] - cancella un buffer (chiudi un file)
 - :b[uffer]# - vai al buffer numero #
 - :b[uffer] file - vai al buffer per file
 - :ls or :buffers - elenca tutti i buffer aperti
 - :sp[lit] file - apri file in un nuovo buffer e dividi la finestra
 - :vs[plit] file - apri file in un nuovo buffer e dividi la finestra verticalmente
 - :vert[ical] ba[ll] - rendi i buffer come schermate verticali
 - :tab ba[ll] - rendi i buffer come delle tab
 - Ctrl + ws - dividi finestra
 - Ctrl + wv - dividi finestra verticalmente
 - Ctrl + ww - cambia finestra
 - Ctrl + wq - esci da una finestra
 - Ctrl + wx - scambia la finestra attuale con la prossima
 - Ctrl + w= - rendi tutte le finestre con uguale altezza e larghezza
 - Ctrl + wh - muovi cursore sul buffer successivo (a destra)
 - Ctrl + wl - muovi cursore sul buffer precedente (a sinistra)
 - Ctrl + wj - muovi cursore sul buffer inferiore (divisione orizzontale)
 - Ctrl + wk - muovi cursore sul buffer superiore (divisione orizzontale)
 - Ctrl + wH - rendi la finestra attuale a tutta altezza nell' estrema sinistra (finestra verticale più a sinistra)
 - Ctrl + wL - rendi la finestra attuale a tutta altezza nell' estrema destra (finestra verticale più a destra)
 - Ctrl + wJ - rendi la finestra attuale a tutta larghezza in fondo (finestra orizzontale più in basso)
 - Ctrl + wK - rendi la finestra attuale a tutta larghezza in cima (finestra orizzontale più in alto)
 
Diff
- zf - definisci manualmente la piegatura in movimento
 - zd - elimina la piegatura sotto il cursore
 - za - apri/chiudi la piegatura sotto il cursore
 - zo - apri la piegatura sotto il cursore
 - zc - chiudi la piegatura sotto il cursore
 - zr - riduci le piegature ad un livello
 - zm - piegare di più (close) tutte le pieghe ad un livello
 - zi - attiva/disattiva la modalità di piegatura
 - ]c - salta all' inizio della modifica successiva
 - [c - salta all' inizio della precedente modifica
 - do or :diffg[et] - ottieni le differenze da un altro buffer
 - dp or :diffpu[t] - inserisci le differenze in un altro buffer
 - :diffthis - rendi la finestra corrente parte del diff
 - :dif[fupdate] - aggiorna differenze
 - :diffo[ff] - spegni la modalità diff per la finestra corrente