En intro til Vim - Burde det læres?

Harald Vinje

Del:

31. mai 2022

4 min lesning

Kategorier:Productivity

Vim er en terminalbasert teksteditor med historiske røtter tilbake til 70-tallet, men er fremdeles relevant i utviklerverdenen i dag. På samme som med programmeringsspråk har enkelte Vimentusiaster en nesten religiøs forkjærlighet til Vim. Er det fornuftig å lære seg Vim som utvikler i 2022? Hvordan kan det brukes? How to exit? Her kommer noen tanker etter noen år som Vimbruker.

Photo of the Vim logo

Liten intro

Vim er per def. en teksteditor, men etter min mening er det mer nyttig å heller se på det som en metode for å navigere, skrive og endre tekst. En av hovedhensiktene med Vim er at du kun skal bruke tastaturet når du jobber. Vim består av 3 moduser (egentlig flere, men du trenger bare disse 3), hvor brukeren befinner seg i én av dem til enhver tid. Insert mode brukes for å skrive tekst, og er den modusen som føles mest ut som en mer vanlig teksteditor. Normal mode er der du starter når du åper Vim, og brukes til å navigere horisontalt eller vertikalt i tekstfilen, slette linjer, kopiere og lime inn tekst + en hel del andre ting. Visual mode brukes til å markere tekst, som regel for sletting, kopiering eller redigering.

Picture showing flow between modes in Vim

Grunnleggende navigering og how to exit

Navigering rundt omkring foregår som sagt i normal mode. Piltastene funker, men Vimmåten er å bruke h (venstre), j (ned), k (opp), l (høyre). Oftere enn å bruke disse navigerer du deg heller ett eller flere ord av gangen i teksten. w tar deg til begynnelsen av neste ord, e tar deg til slutten av ordet du er på, og b tar deg til forrige ord. En svært nyttig feature med Vim er at du som regel kan prefixe navigeringstasten med et tall for å fortelle hvor mange steg du ønsker. F. eks vil å trykke 3w ta deg 3 ord fremover, mens 10j tar deg 10 steg ned. Dette er grunnen til at du ofte ser Vimbrukere ha merkelige linjenummere i editoren sin, som vist på bildet under.

Code in the Vim editor showing navigation

I dette tilfellet vil 5j ta deg hit

Code in the Vim editor showing down navigation with 5j

For å skrive tekst må du i insert mode ved å trykke i. Når du er fornøyd med teksten (eller bare lei Vim) er det på tide å komme seg ut. Du må befinne deg i normal mode for dette, så trykk ESC (i noen tilfeller flere ganger) for å komme dit. I normal mode trykker du de fire tastene inne i anførselstegnene: ":q! ENTER". Om du ønsker å lagre endringene trykker du ":wq ENTER".

Dette er alt du trenger for å kunne fungere i Vim! Så om du blir slengt inn ved et uhell er du etter dette forhåpentligvis ikke helt hjelpesløs.

Ressurser for å lære

Vim har mye mer ved seg enn det som er nevnt, men jeg skal ikke gå inn på alle disse nå. For å lære det anbefaler jeg heller disse ressursene:

  • Vimtutor. Skriv "vimtutor" i terminalen for å åpne en nyttig tutorial.
  • Vim adventures. Et spill for å bli vant med navigeringen.

Har du gått gjennom disse og bestemt deg for å fortsette vil jeg anbefalt å bare committe med å bruke Vim (eller Vim mode i VSCode f. eks) utelukkende i 1-2 uker. Det går overraskende fort og greit når man først får litt dreisen!

Vim + IDE 🚀

Flere av de moderne teskteditorene/IDEene (Integrated Development Enviornment) tilbyr plugins for å kunne benytte Vim i editoren. Da får du alle de nyttige featurene moderne editorer tilbyr i tillegg navigering- og redigeringsmulighetene Vim gir deg. Etter litt frem og tilbake er det dette jeg har landet på personlig.

Picture of code in VSCode Vim mode

Vim mode i VSCode.

Burde det læres?

Som datamaskinen selv er Vim kun et verktøy for å løse problemet tekstredigering. Og med teksteditorer som med de andre fleste verktøy er det ingen "one size fits all". Mange av de store IDEene, som VSCode og Intellij, har mange andre metoder for å redigere tekst effektivt, og er du vant og fornøyd med disse er det ikke sikkert Vim er verdt å lære seg. Etter litt refleksjon har jeg kommet frem til at hovedgrunnen til at jeg bruker Vim er at jeg syns det er morsommere heller enn at det er mer effektivt (selv jeg også mener det er det).

Meme showing preachy Vim user

Med det sagt vil jeg fortsatt anbefale alle som jobber daglig med kode og tekstredigering å gi det et forsøk, enten det er for moro skyld eller for effektivitet. Prøv det en uke eller to og se hva du synes!

Del: