Globala kommandon

  • :help nyckelord - visa hjälp för kommando "nyckelord"
  • :saveas fil - spara fil som
  • :close - stäng nuvarande ruta
  • K - öppna man page för ordet under markören

Markörkontroller

  • h - flytta markören åt vänster
  • j - flytta markören åt höger
  • k - flytta markören uppåt
  • l - flytta markören neråt
  • H - flytta till toppen av skärmen
  • M - flytta till mitten av skärmen
  • L - flytta till botten av skärmen
  • w - hoppa framåt till starten av nästa ord
  • W - hoppa framåt till starten av nästa ord (orden kan innehålla skiljetecken)
  • e - hoppa framåt till slutet av nästa ord
  • E - hoppa framåt till slutet av nästa ord (orden kan innehålla skiljetecken)
  • b - hoppa bakåt till starten av föregående ord
  • B - hoppa bakåt till starten av föregående ord (orden kan innehålla skiljetecken)
  • % - flytta till matchande tecken (gäller följande par: '()', '{}', '[]' - använd <code>:h matchpairs</code> i vim för mer information)
  • 0 - hoppa till början av raden
  • ^ - hoppa till första icke-blanka tecknet på raden
  • $ - hoppa till slutet av raden
  • g_ - hoppa till sista icke-blanka tecknet på raden
  • gg - gå till första raden i dokumentet
  • G - gå till sista raden i dokumentet
  • 5G - gå till rad 5
  • fx - hoppa till nästa förekomst av tecknet x
  • tx - hoppa till tecknet före nästa förekomst av tecknet x
  • Fx - hoppa till föregående förekomst av tecknet x
  • Tx - hoppa till tecknet efter föregående förekomst av tecknet x
  • ; - upprepa föregående kommando av typ f, t, F eller T
  • , - upprepa föregående kommando av typ f, t, F eller T, baklänges
  • } - hoppa till nästa paragraf (eller funktion/block av kod)
  • { - hoppa till föregående paragraf (eller funktion/block av kod)
  • zz - centrera markören på skärmen
  • Ctrl + e - flytta ner skärmen en rad (utan att flytta markören)
  • Ctrl + y - flytta upp skärmen en rad (utan att flytta markören)
  • Ctrl + b - flytta bakåt en hel skärm
  • Ctrl + f -
  • Ctrl + d -
  • Ctrl + u -
Tip Skriv ett tal före ett markörkommando för att upprepa det. Till exempel: 4j flyttar ner 4 rader.

Insättning - sätta in/lägga till text

  • i - sätt in efter markören
  • I - sätt in på början av raden
  • a - sätt in (lägg till) efter markören
  • A - sätt in (lägg till) på slutet av raden
  • o - lägg till (öppna) en ny rad under nuvarande rad
  • O - lägg till (öppna) enny rad över nuvarande rad
  • ea - sätt in (lägg till) efter slutet av ordet
  • Esc - lämna insättningsläget

Redigering

  • r - byt ut ett tecken
  • J - sammanfoga raden under med nuvarande rad med mellanslag mellan
  • gJ - sammanfoga raden under med nuvarande rad utan mellanslag mellan
  • gwip - flyt ihop paragrafen
  • cc - byt (ersätt) hela raden
  • C - byt (ersätt) till slutet av raden
  • c$ - byt (ersätt) till slutet av raden
  • ciw - byt (ersätt) ett helt ord
  • cw - byt (ersätt) till slutet av ordet
  • s - tag bort tecken och ersätt med text
  • S - tag bort rad och ersätt med text (samma som cc)
  • xp - byt ut två tecken (klipp och klistra)
  • u - ångra
  • Ctrl + r - gör om
  • . - upprepa föregående kommando

Markera text (visuellt läge)

  • v - starta visuellt läge, markera rader, utför sedan kommando (t.ex. y-kopiera)
  • V - starta radvist visuellt läge
  • o - flytta till andra änden av redan markerat område
  • Ctrl + v - starta visuellt blockläge
  • O - flytta till ett annat hörn av redan markerat block
  • aw - markera ett ord
  • ab - markera ett block med ()
  • aB - markera ett block med {}
  • ib - markera inre block med ()
  • iB - markera inre block med {}
  • Esc - avsluta visuellt läge

Visuella kommandon

  • > - flytta texten åt höger
  • < - flytta texten åt vänster
  • y - yank (copy) marked text
  • d - tag bort markerad text
  • ~ - byt till stora/små bokstäver

Register

  • :reg - visa alla registers innehåll
  • "xy - kopiera till register x
  • "xp - klistra in innehållet av register x
Tip Register förvaras i ~/.viminfo och kommer att laddas igen nästa gång vim startar om.
Tip Register 0 innehåller alltid värdet av det senaste kopieringskommandot (yank).

Märken

  • :marks - visa en lista över märken
  • ma - spara nuvarande position i märke A
  • `a - hoppa till märke A
  • y`a - klistra in text vid märke A

Macros

  • qa - record macro a
  • q - stop recording macro
  • @a - run macro a
  • @@ - rerun last run macro

Klipp och klistra

  • yy - kopiera en rad
  • 2yy - kopiera två rader
  • yw - kopiera tecken från nuvarande position till starten av nästa ord
  • y$ - kopiera till slutet av raden
  • p - klistra in urklippet efter markören
  • P - klistra in före markören
  • dd - tag bort en rad
  • 2dd - tag bort två rader
  • dw - tag bort tecken från markören till början av nästa ord
  • D - tag bort till slutet av raden
  • d$ - tag bort till slutet av raden
  • x - tag bort tecken

Avslutning

  • :w - skriv (spara) filen, men avsluta inte
  • :w !sudo tee % - skriv nuvarande fil med sudo
  • :wq or :x or ZZ - skriv (spara) och avsluta
  • :q - avsluta (fungerar inte om det finns osparade ändringar)
  • :q! or ZQ - avsluta och kassera alla ändringar
  • :wqa - skriv (spara) och avsluta i alla tabbar

Sök och ersätt

  • /pattern - sök efter mönster
  • ?pattern - sök baklänges efter mönster
  • \vpattern - 'väldigt magiskt' mönster: icke-alfanumeriska tecken räknas som särskilda regexsymboler (escape character behövs inte)
  • n - upprepa sökning i samma riktning
  • N - upprepa sökning i motsatt riktning
  • :%s/old/new/g - ersätt alla "old" med "new" i hela filen
  • :%s/old/new/gc - ersätt alla "old" med "new" i hela filen, med konfirmering för varje ord
  • :noh - stäng av färgmarkering av sökresultat

Sök i flera filer

  • :vimgrep /pattern/ {file} - search for pattern in multiple files
e.g.:vimgrep /foo/ **/*
  • :cn - jump to the next match
  • :cp - jump to the previous match
  • :copen - open a window containing the list of matches

Working with multiple files

  • :e fil - öppna en fil i en ny buffer
  • :bnext or :bn - gå till nästa buffer
  • :bprev or :bp - gå till föregående buffer
  • :bd - tag bort buffer (stäng en fil)
  • :ls - visa lista över alla öppna buffrar
  • :sp fil - öppna en fil i en ny buffer och dela fönstret horisontellt
  • :vsp fil - öppna en fil i en ny buffer och dela fönstret vertikalt
  • Ctrl + ws - splitta fönster
  • Ctrl + ww - byt fönster
  • Ctrl + wq - stäng ett fönster
  • Ctrl + wv - dela ett fönster vertikalt
  • Ctrl + wh - flytta till fönstret åt vänster (vertikal delning)
  • Ctrl + wl - flytta till fönstret åt höger (vertikal delning)
  • Ctrl + wj - flytta till fönstret nedanför (horisontell delning)
  • Ctrl + wk - flytta till fönstret ovanför (horisontell delning)

Tabbar

  • :tabnew or :tabnew fil - öppna en fil i en ny tabb
  • Ctrl + wT - flytta nuvarande fönster till en egen tabb
  • gt or :tabnext or :tabn - flytta till nästa tabb
  • gT or :tabprev or :tabp - flytta till föregåendetabb
  • #gt - flytta till tabb nummer #
  • :tabmove # - flytta nuvarande tabb till den #e positionen (räknar från 0)
  • :tabclose or :tabc - stäng nuvarande tabb och alla dess fönster
  • :tabonly or :tabo - stäng alla tabbar förutom nuvarande
  • :tabdo command - kör kommando på alla tabbar (t.ex. :tabdo q - stänger alla öppna tabbar)