Velkommen til siste luke av "Hva, Hvordan og Hvorfor Vim". Her skal jeg vise et praktisk eksempel fra min hverdag og hvordan Vim faktisk gjør en forskjell. Jeg skal også oppsummere litt og vise hvordan du kan fortsette Vim reisen din.
Før jeg kan gi eksempelet mitt må jeg vise en siste bevegelse som vi ikke har gått gjennom enda: %. Denne finner neste match fra en av {[( eller )]} og finner neste eller forrige match henholdsvis. Dette lar deg enkelt bevege deg innenfor en block. Ved hjelp av alt vi har lært til nå og % så kan man gjøre mye gøy.
Først litt kontekst: En av arbeidsoppgavene mine hos kunde går ut på å integrerere med et eksternt, åpent API. APIet tilgjengeliggjør et openAPI spec som jeg ønsker å hente ut informasjon fra. I videoen under ser du at jeg har hentet ut alle properties fra et objekt som returneres fra APIet. Jeg ønsker først å bare finne navnet på propertien, og legge på en liten "return true" på denne. Videoen under viser prosessen med at du kan se hvilke knapper jeg trykker på (key casting).
Her er listen over tastetrykk, i rekkefølge med forklaring:
qq-> Start makro "q"f:-> Finn neste kolonv-> Gå i visual modew-> gå til neste ord%-> Finner neste match fra en av([{til en av}])(og andre veien)l-> Går et tegn til høyre (for å også markere komma)d-> slett alt som er markert<Esc>-> Gå tilbake til normal modeA-> Skriv test på slutten av linja-> return true-> Tekst som Skrives<Esc>-> Gå tilbake til normal mode0-> Gå til starten av linjaj-> Gå til neste linjeq-> Lagre makro@q-> Spill av makro10@q-> spill av makro 10 ganger60@q-> spill av makro 60 ganger- Her ser dere at IntelliJ sin vim plugin er treg. I native vim eller Neovim så ville dette vært gjort merkbart raskere.
Den observante leser kan se at makroen avsluttes med å gå til starten av neste linje. Dette tillegget lar makroen være gjenbrukbar, noe jeg benytter for å kjøre den 10 + 60 ganger uten å måtte tenke på å flytte pekeren. For spesielt interesserte har jeg også skrevet en tekst "macro2" i som viser neste steg i prosessen min.
Hvis du har fulgt de siste tre lukene av serien håper jeg at du har lært noe og blitt inspirert. Jeg har vist frem alt vi trengte å vite for å gjøre noe forholdsvis komplekst, som vanligvis ellers kunne blitt gjort med scripts eller manuelt arbeid. Det er derimot raskere å benytte Vim i slike tilfeller mener jeg. Vim har også mye mer å by på, men jeg har valgt å fokusere bare på motions, siden det er dette man kan få mest gevinst ut av når man benytter seg av VSCode, Idea, m.m.
Avslutningsvis vil jeg si at målet mitt med å skrive en "Hva, Hvordan og Hvorfor Vim" egentlig har vært folkeopplysning. Hva er Vim og hvorfor bruker noen under 50 år dette? Jeg har også fått høre at "Vim er et verktøy for hardcore proggere som har et helt sinnsykt høyt tak for hva man kan gjøre og det er magisk å se på når de kan det." Som forsåvidt er sant, men jeg er bare gira på at du skal lære deg å bruke de verktøyene du bruker skikkelig, og hvordan være mer effektiv i hverdagen.
Det finnes kjempemye bra ressurser på nett, men Vim sin innebygde manual er også helt fantastisk. Du kan skrive :help [hva som helst] så kommer du til en god beskrivelse av hva det er. :help usr_01 er også starten på brukermanualen skrevet mot vanlige folk.
Jeg ønsker deg en god jul når den tid kommer og håper du har lært noe av artiklene mine. Og husk at Vim ikke er magisk, men det kan gjøre deg det.

PS: Kanskje kommer det en luke til på fredag?