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 matchpairs
in 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
comando
in 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