Den ultimata textredigeraren i Linux
Vim låter användaren arbeta snabbt och effektivt genom att erbjuda högnivå-kommandon för att editera text och flytta runt i texten. Jag tänkte skriva ner några av de kommandon som finns i Vim så vi får en lathund. Det är kommandon för att starta och lämna Vim, filhantering, inmatning av text, förflyttning av markören, radering, kopiera, klipp ut och klistra in, sökning, ångra redigering samt fönsterhantering.

Vim är en av mina baskommandon som jag använder varje dag. Det är svårt att lära sig men när du kan det är det toppen.
Alla kommandon i Vim ges i kommandoläget eller det visuella läget, beroende på vad du vill göra. För att komma till kommandoläget trycker du på Esc-tangenten. Om det inte står särskilt angivet att kommandot ska anges i det visuella läget är det kommandoläget som gäller.
Om det står en liten bokstav i kommandona nedan är det den lilla bokstaven du ska skriva. Om det står en stor bokstav är det den stora bokstaven du ska skriva. Står det t.ex. w ska du trycka på bokstaven w och står det D ska du hålla ned shift-tangenten och trycka på bokstaven d. Står det två tecken efter varandra, t.ex. de ska du trycka på d, släppa d, trycka på e och sedan släppa e.
Starta och lämna Vim
- vim - Starta Vim (i kommandotolken).
- vim fil.txt - Starta Vim och öppna filen fil.txt (i kommandotolken).
- :q - Avsluta Vim, om inga ändringar har gjorts.
- :wq - Spara dina senaste ändringar och avsluta Vim.
- :q! - Avsluta Vim utan att spara dina senaste ändringar.
- ZZ - Spara filen och avsluta vim.
Filhantering
- :w - Skriv aktuell buffert till fil, d.vs. spara filen. (Write)
- :w <filnamn> - Skriv aktuell buffert till en ny fil med namnet <filnamn>, d.v.s. spara som.
- :e <filnamn> - Öppna filen <filnamn> som finns i aktuell katalog, skriv annars sökvägen.
- :!ls - Visa innehållet i aktuell katalog (kommandot :!dir fungerar också).
- :!ls <sökväg> - Visa innehållet i katalogen med sökvägen <sökväg>.
Inmatning av text
- i - Sätt in text framför markören.
- I - Sätt in text i början av raden.
- a - Sätt in text efter markören.
- A - Sätt in text i slutet av raden.
- o - Öppna en ny rad under nuvarande rad för att sätta in text.
- O - Öppna en ny rad ovanför nuvarande rad för att sätta in text.
Förflyttning av markören
- gg - Flytta markören till början av filen (1G fungerar också).
- G - Flytta markören till slutet av filen.
- <n>G - Flytta markören till rad nummer <n> (:<n> fungerar också).
- h - Flytta markören ett tecken till vänster.
- l - Flytta markören ett tecken till höger.
- k - Flytta markören ett tecken uppåt.
- j - Flytta markören ett tecken nedåt.
- w - Flytta markören ett ord framåt.
- e - Flytta markören till slutet av nuvarande ord.
- <n>e - Flytta markören till slutet av det <n:te> ordet framåt (skriv t.ex. 3e för att flytta markören till slutet av det tredje ordet framåt).
- b - Flytta markören ett ord bakåt.
- <n>w - Flytta markören <n> ord framåt (skriv t.ex 3w för att flytta markören 3 ord framåt).
- <n>b - Flytta markören <n> ord bakåt (skriv t.ex 3b för att flytta markören 3 ord bakåt).
- <End> - Flytta markören till radens slut ($ fungerar också).
- <n><End> - Flytta markören till den <n>:te radens slut (skriv t.ex. 2<End> för att flytta till nästa rads slut).
- ^ - Flytta markören till första tecknet i radens början som inte är ett blanksteg.
- <Home> - Flytta markören till första tecknet i radens början (0 fungerar också).
Radering
- x - Radera tecknet under markören.
- X - Radera tecknet framför markören.
- dw - Radera ett ord, ställ markören över det första tecknet i ordet som du ska ta bort och tryck dw.
- d<n>w - Radera ”<n>” ord framåt (skriv t.ex. d3w för att radera 3 ord framåt).
- de - Radera från markören till ordets slut.
- D - Radera från markören till radens slut, håll ned shift-tangenten och tryck på d (d$ fungerar också).
- dd - Radera en rad.
- <n>dd - Radera <n> rader (skriv t.e.x. 3dd för att radera tre rader).
- p - Lägg tillbaka senast raderade text efter markören.
Kopiera, klipp ut och klistra in
För att kopiera eller klippa ut ett område gör du följande:
- Flytta markören till början av området du vill kopiera.
- Tryck v för att gå in i det visuella läget.
- Flytta markören till slutet av området du vill kopiera.
Om man vill vara effektiv så kan man tänka på detta. Tryck e för att markera till slutet av ordet eller w upprepade gånger för att utöka markeringen med fler ord. Stora W markerar fram till nästa mellanslag. Om man skulle ha råkat markerat för långt så kan man använda exempelvis b för att avmarkera. En super cool sak är att o hoppar till början av markeringen vilket då gör så man kan ändra startpunkten för markeringen med hjkl eller de andra förflyttningskommandona.
- Tryck y för att kopiera området och tryck c för att klippa ut området.
Du kan också kopiera en rad genom att skriva "yy” eller ett ord genom att skriva ”yw”. Om du tar bort en rad med ”dd” kan du senare klistra in den om du vill. För att klistra in text som du har kopierat eller klippt ut skriver du ”p” när du är i kommandoläget. Texten kommer klistras in efter markören. Om du har kopierat en hel rad kommer texten klistras in efter raden som markören står på.
Sökning
- /<sträng> - Sök efter strängen ”<sträng>”, tryck på returtangenten för att utföra sökningen.
- n - Sök efter nästa matchning i samma riktning.
- N - Sök efter nästa matchning fast i motsatt riktning.
Ångra redigering
- Ctrl-r - Göra om (redo)
- u - Ångra senaste redigering.
- U - Ångra alla senaste ändringar på en rad.
Fönsterhantering
- :split - Dela aktuellt fönster horisontellt i två delar.
- :<n>split - Öppna ett nytt fönster, i aktuellt fönster, som är <n> rader högt. Skriv t.e.x. :3split för att öppna ett nytt fönster som är tre rader högt.
- Ctrl-w + _ - Maximera aktivt fönster när du har flera fönster.
- Ctrl-w + = - Gör fönstren lika stora.
- Ctrl-w + w - Flytta markören till nästa fönster.
Gör om bokstäver till små eller stora
Ibland kan man behöva göra om bokstäver till stora eller små lätt.
- Flytta markören till början av området du vill förändra.
- Tryck v för att gå in i det visuella läget.
- Flytta markören till slutet av området du vill förändra.
- Tryck u för att göra alla till små bokstäver och U för att göra dem till stora.
Det finns många guider där ute för att lära sig vim. Ett tips är att köra vimtutor i kommandotolken för att snabbt komma igång.
Felsökning
- Backspace fungerar inte som den ska
- Lägg till set backspace=indent,eol,start i din .vimrc fil
- Backspace lägger bara till konstiga tecken i min fil som '^?'
- Lägg till stty erase '^?' i din .bashrc eller .profile fil
Smarta kommandon
Konvertera ^M radbrytningar till normala radbrytningar.
:e ++ff=dos
Byt ut tab-indentering till 2 space-indentering
:set expandtab shiftwidth=2 tabstop=2
:retab
Byt ut 2 space-indentering till tab-indentering
:set noexpandtab shiftwidth=2 tabstop=2
:%retab!