Global

  • :h[elp] keyword - obrir l'ajuda per a una paraula clau
  • :sav[eas] file - desar arxiu com a
  • :clo[se] - tancar l'arxiu actual
  • :ter[minal] - obrir un terminal
  • K - obrir la página del manual (man page) per a la paraula sota el cursor
Tip Executar vimtutor a un terminal per a aprendre els primers comandaments de Vim.

Moure el cursor

  • h - moure el cursor cap a l'esquerra
  • j - moure el cursor cap avall
  • k - moure el cursor cap amunt
  • l - moure el cursor cap a la dreta
  • H - moure's a la part superior de la pantalla
  • M - moure's a la part mitja de la pantalla
  • L - moure's al part inferior de la pantalla
  • w - saltar a l'inici de la següent paraula
  • W - saltar a l'inici de la següent paraula (la paraula pot contenir puntuació)
  • e - saltar al final de la següent paraula
  • E - saltar al final de la següent paraula (la paraula pot contenir puntuació)
  • b - tornar a l'inici d'una paraula
  • B - tornar a l'inici d'una paraula (la paraula pot contenir puntuació)
  • ge - saltar enrere fins al final d'una paraula
  • gE - saltar enrere fins al final d'una paraula (la paraula pot contenir puntuació)
  • % - anar al caràcter relacionat (parells per defecte: '()', '{}', '[]' - utilitzeu :h matchpairs a Vim per a més informació)
  • 0 - saltar a l'inici de la línia
  • ^ - saltar al primer caràcter de la línia que no estigui en blanc
  • $ - saltar al final de la línia
  • g_ - saltar a l'últim caràcter de la línia que no estigui en blanc
  • gg - anar a la primera línia del document
  • G - anar a la darrera línia del document
  • 5gg or 5G - anar a la línia 5
  • gd - saltar a la declaració local
  • gD - saltar a la declaració global
  • fx - saltar a la següent aparició del caràcter x
  • tx - saltar a la posició anterior a la següent aparició del caràcter x
  • Fx - saltar a l'aparició anterior del caràcter x
  • Tx - saltar a la posició següent a l'anterior aparició del caràcter x
  • ; - repetir el moviment anterior d'f, t, F o T
  • , - repetir el moviment anterior d'f, t, F o T, cap enrere
  • } - saltar al paràgraf següent (o funció/bloc, en mode d'edició)
  • { - saltar al paràgraf anterior (o funció/bloc, en mode d'edició)
  • zz - centrar el cursor a la pantalla
  • Ctrl + e - moure la pantalla cap avall una línia (sense moure el cursor)
  • Ctrl + y - moure la pantalla una línia cap amunt (sense moure el cursor)
  • Ctrl + b - retrocedir una pantalla sencera
  • Ctrl + f - avançar una pantalla sencera
  • Ctrl + d - avançar mitja pantalla
  • Ctrl + u - retrocedir mitja pantalla
Tip Escriure un nombre abans del comandament de moviment per a repetir-lo. Per exemple, 4j mourà el cursor cap avall 4 línies.

Mode inserir - inserir/afegir text

  • i - inserir abans del cursor
  • I - inserir a l'inici de la línia
  • a - inserir després del cursor
  • A - inserir al final de la línia
  • o - inserir una nova línia sota la línia actual
  • O - inserir una nova línia sobre la línia actual
  • ea - inserir després de la paraula
  • Ctrl + h - esborrar el caràcter abans del cursor durant el mode d'inserció
  • Ctrl + w - esborrar la paraula abans del cursor durant el mode d'inserció
  • Ctrl + j - començar una nova línia durant el mode d'inserció
  • Ctrl + t - sagnar (moure cap a la dreta) la línia un espai d'autoindentació (shiftwidth) durant el mode d'inserció
  • Ctrl + d - suprimir el sagnat (moure cap a l'esquerra) de la línia un espai d'autoindentació (shiftwidth) durant el mode d'inserció
  • Ctrl + n - inserir (autocompletar) la coincidència següent abans del cursor durant el mode d'inserció
  • Ctrl + p - inserir (autocompletar) la coincidència anterior abans del cursor durant el mode d'inserció
  • Ctrl + rx - inserir el contingut del registre x
  • Ctrl + ox - canviar temporalment al mode normal per a executar un comandament x en mode normal
  • Esc - sortir del mode d'inserció

Editar

  • r - substituir un caràcter
  • R - substituir més de un caràcter, fins que es premi ESC.
  • J - afegir la línia de sota a l'actual amb un espai entre mig
  • gJ - afegir la línia de sota a l'actual sense espai entre mig
  • gwip - redistribuir el text de paràgraf
  • g~ - intercanviar majúscules i minúscules segons el moviment
  • gu - canviar a minúscules segons el moviment
  • gU - canviar a majúscules fins al moviment
  • cc - canviar (substituir) tota la línia
  • C - canviar (substituir) fins al final de la línia
  • c$ - canviar (substituir) fins al final de la línia (igual que C)
  • ciw - canviar (substituir) la paraula sencera
  • cw or ce - canviar (substituir) fins al final de la paraula
  • s - esborrar caràcter i substituir text
  • S - esborrar línia i substituir text (igual que cc)
  • xp - transposar dos caràcters (suprimir i enganxar)
  • u - desfer
  • U - restaurar (desfer) la darrera línia modificada
  • Ctrl + r - refer
  • . - repetir el darrer comandament

Seleccionar text (mode visual)

  • v - iniciar el mode visual, seleccionar línies i executar un comandament (com y-yank)
  • V - iniciar el mode visual seleccionant la línia completa
  • o - moure's a l'altre extrem de la zona seleccionada
  • Ctrl + v - iniciar el mode visual de bloc (visual block mode)
  • O - moure's a l'altre cantó del bloc
  • aw - seleccionar una paraula
  • ab - un bloc amb ()
  • aB - un bloc amb {}
  • at - un bloc amb etiquetes <>
  • ib - un bloc intern amb ()
  • iB - un bloc intern amb {}
  • it - bloc interior amb etiquetes <>
  • Esc - sortir del mode visual
Tip En comptes de b o B també es poden utilitzar ( o { respectivament.

Comandaments visuals

  • > - desplaçar el text cap a la dreta
  • < - desplaçar el text cap a l'esquerra
  • y - copiar el text seleccionat
  • d - esborrar el text seleccionat
  • ~ - intercanviar entre majúscules i minúscules
  • u - posar el text seleccionat en minúscules
  • U - posar el text seleccionat en majúscules

Registres

  • :reg[isters] - mostrar el contingut dels registres
  • "xy - copiar al registre X
  • "xp - enganxar el contingut del registre X
  • "+y - copiar al registre del porta-retalls del sistema
  • "+p - enganxar des del registre del porta-retalls del sistema
Tip Els registres són desats a ~/.viminfo, i seran carregats la propera vegada que s'iniciï Vim.
Tip Registres especials:

0 - darrera còpia
" - registre sense nom, darrera eliminació o còpia
% - nom actual de l'arxiu
# - nom alternatiu de l'arxiu
* - contingut del porta-retalls (X11 primari)
+ - contingut del porta-retalls (porta-retalls X11)
/ - darrer patró de cerca
: - darrera línia de comandaments
. - darrer text inserit
- - darrer esborrat breu (inferior a una línia)
= - registre d'expressió
_ - registre de forat negre

Marques

  • :marks - mostrar marques
  • ma - definir la posició actual per a la marca A
  • `a - saltar a la posició de la marca A
  • y`a - copiar text a la posició de la marca A
  • `0 - anar a la posició des de la qual es va sortir prèviamente de Vim
  • `" - anar a la posició de la darrera edició de l'arxiu
  • `. - anar a la posició on es va produir el darrer canvi de l'arxiu
  • `` - anar a la posició abans del darrer salt
  • :ju[mps] - llistat de salts
  • Ctrl + i - anar a la nova posició del llistat de salts
  • Ctrl + o - anar a la posició anterior del llistat de salts
  • :changes - llistat de canvis
  • g, - anar a la nova posició del llistat de canvis
  • g; - anar a la posició anterior del llistat de canvis
  • Ctrl + ] - saltar a l'etiqueta sota el cursor
Tip Para a saltar fins a una marca, es pot utilitzar un accent obert (`) o un apòstrof ('). Utilitzant l'apòstrof saltarà fins a l'inici (primer caràcter que no estigui en blanc) de la línia que conté la marca.

Macros

  • qa - enregistrar la macro a
  • q - detenir la gravació de la macro
  • @a - executar la macro a
  • @@ - tornar a executar la darrera macro executada

Copiar i enganxar

  • yy - copiar una línia
  • 2yy - copiar dues línies
  • yw - copiar la resta de caràcters de la paraula desde la posició del cursor fins a l'inici de la paraula següent
  • yiw - copiar la paraula sota el cursor
  • yaw - copiar la paraula sota el cursor i l'espai darrere o davant d'ella
  • y$ - copiar fins al final de la línia
  • p - enganxar abans del cursor
  • P - enganxar després del cursor
  • dd - esborrar (retallar) una línia
  • 2dd - esborrar (retallar) dues línias
  • dw - esborrar (retallar) la resta de caràcters de la paraula des de la posició del cursor fins a l'inici de la paraula següent
  • diw - esborrar (retallar) la paraula sota el cursor
  • daw - esborrar (retallar) la paraula sota el cursor i l'espai darrere o davant d'ella
  • D - esborrar (retallar) fins el final de la línia
  • d$ - esborrar (retallar) fins al final de la línia
  • x - esborrar (retallar) un caràcter

Indentar el text

  • >> - sagnar (moure cap a la dreta) la línia un espai d'utoindentació (shiftwidth)
  • << - suprimir el sagnat (moure cap a l'esquerra) la línia un espai d'autoindentació (shiftwidth)
  • >% - sagnar un bloc amb () o {} (amb el cursor sobre el parèntesi o la clau)
  • >ib - sagnar el bloc interior amb ()
  • >at - sagnar un bloc amb etiquetes <>
  • 3== - tornar a sagnar 3 línies
  • =% - tornar a sagnar un bloc amb () o {} (amb el cursor sobre el parèntesi o la clau)
  • =iB - tornar a sagnar el bloc interior amb {}
  • gg=G - tornar a sagnar tots els caràcters a la memòria intermèdia (buffer)
  • ]p - enganxar i ajustar la sagnia a la línia actual

Sortir

  • :w - desar l'arxiu sense sortir
  • :w !sudo tee % - desar l'arxiu utilitzant sudo
  • :wq or :x or ZZ - desar l'arxiu i sortir
  • :q - sortir (no funcionarà en cas que hi hagi canvis sense desar)
  • :q! or ZQ - sortir descartant els canvis no desats
  • :wqa - escriure (desar) i sortir de totes les pestanyes

Cercar i substituir

  • /pattern - cercar patró
  • ?pattern - cercar patró cap enrere
  • \vpattern - patró «molt màgic» ('very magic'): els caràcters no alfanumèrics s'interpretaran com a caràcters especials regex (no cal escapar-los)
  • n - repetir la cerca en la mateixa direcció
  • N - repetir la cerca en direcció oposada
  • :%s/old/new/g - substituir a tot l'arxiu
  • :%s/old/new/gc - substituir a tot l'arxiu demanat la confirmació
  • :noh[lsearch] - desactivar el realçament (highlight) dels resultats de cerca

Cercar a múltiples arxius

  • :vim[grep] /pattern/ {`{file}`} - cercar un patró a múltiples arxius
e.g. :vim[grep] /foo/ **/*
  • :cn[ext] - anar al resultat següent
  • :cp[revious] - anar al resultat anterior
  • :cope[n] - obrir una finestra amb el llistat de resultats
  • :ccl[ose] - tancar la finestra de correcció ràpida

Pestanyes

  • :tabnew or :tabnew {page.words.file} - obrir arxiu a una nova pestanya
  • Ctrl + wT - moure la finestra actual a la seva pròpia pestanya
  • gt or :tabn[ext] - anar a la pestanya següent
  • gT or :tabp[revious] - anar a la pestanya anterior
  • #gt - anar a la pestanya número #
  • :tabm[ove] # - moure la pestanya actual a la posició número # (indexada a partir del 0)
  • :tabc[lose] - tancar totes les pestanyes i les seves finestres
  • :tabo[nly] - tancar totes les pestanyes tret de l'actual
  • :tabdo command - executar el comandament a totes las pestanyes (per exemple, :tabdo q - tanca totes les pestanyes obertes)

Treballar amb múltiples arxius

  • :e[dit] file - editar un arxiu en una nova memòria intermèdia (buffer)
  • :bn[ext] - anar a la propera memòria intermèdia (buffer)
  • :bp[revious] - anar a la memòria intermèdia (buffer) anterior
  • :bd[elete] - esborrar la memòria intermèdia (buffer) (tancar un arxiu)
  • :b[uffer]# - anar a una memòria intermèdia (buffer) a través del número # d'índex
  • :b[uffer] file - anar a una memòria intermèdia (buffer) per arxiu
  • :ls or :buffers - mostrar totes les memòries intermèdies (buffer) en ús
  • :sp[lit] file - obrir un arxiu en una nova memòria intermèdia (buffer) i dividir la finestra
  • :vs[plit] file - obrir arxiu en una nova memòria intermèdia (buffer) i dividir la finestra verticalment
  • :vert[ical] ba[ll] - editar totes les memòries intermèdies (buffers) com a finestres verticals
  • :tab ba[ll] - editar totes les memòries intermèdies (buffers) com a pestanyes
  • Ctrl + ws - dividir la finestra
  • Ctrl + wv - dividir la finestra verticalment
  • Ctrl + ww - canviar de finestra
  • Ctrl + wq - tancar la finestra
  • Ctrl + wx - intercanviar la finestra actual amb la següent
  • Ctrl + w= - igualar l'alçada i l'amplada de totes les finestres
  • Ctrl + wh - moure el cursor a la finestra esquerra (divisió vertical)
  • Ctrl + wl - moure el cursor a la finestra dreta (divisió vertical)
  • Ctrl + wj - moure el cursor a la finestra de sota (divisió horitzontal)
  • Ctrl + wk - moure el cursor a la finestra de dalt (divisió horitzontal)
  • Ctrl + wH - make current window full height at far left (leftmost vertical window)
  • Ctrl + wL - make current window full height at far right (rightmost vertical window)
  • Ctrl + wJ - make current window full width at the very bottom (bottommost horizontal window)
  • Ctrl + wK - make current window full width at the very top (topmost horizontal window)

Diferència

  • zf - definir manualment un plec (fold o línies amagades) segons el moviment
  • zd - esborrar el plec (fold o línies amagades) sota el cursor
  • za - obrir o tancar el plec (fold o línies amagades) sota el cursor
  • zo - obrir el plec (fold o línies amagades) sota el cursor
  • zc - tancar el plec (fold o línies amagades) sota el cursor
  • zr - suprimir (obrir) un nivell de plecs (folds o línies amagades)
  • zm - plegar més (tancar) un nivell de plecs (folds o línies amagades)
  • zi - obrir o tancar la funcionalitat de plegat
  • ]c - saltar a l'inici del canvi següent
  • [c - saltar a l'inici del canvi anterior
  • do or :diffg[et] - obtenir (get) la diferència (respecte a altra memòria intermèdia o buffer)
  • dp or :diffpu[t] - col·locar (put) la diferència (a una altra memòria intermèdia o buffer)
  • :diffthis - fer que la finestra actual s'incorpori al mode diferencial
  • :dif[fupdate] - actualitzar les diferències
  • :diffo[ff] - desactivar el mode diferencial per a la finestra actual
Tip El comandaments de plegar za) operan a un únic nivell. Per a operar a tots els nivells, utilitzeu lletres majúscules (per exemple, zA).
Tip Per a veure les diferències entre arxius, es pot iniciar Vim directament en el mode diferencial executant vimdiff a un terminal. Fins i tot es pot configurar com a git difftool.