Avslutt Vi/Vim-editoren: Rask guide & løsninger!

Vi-editoren kan virke forvirrende for de som ikke er kjent med den. Det føles nesten som om det kreves et hemmelig passord for å komme seg ut av denne applikasjonen dersom du ved et uhell har havnet inni den. Her forklarer vi hvordan du kan avslutte vi eller vim på Linux, macOS eller andre Unix-lignende operativsystemer.

Den Raske Løsningen

Hvis du er inne i vi eller vim og trenger å komme deg ut – enten du ønsker å lagre endringene dine eller ikke – følger du disse stegene:

Først trykker du på Esc-tasten et par ganger. Dette sikrer at du er ute av innsettingsmodus og tilbake i kommandomodus. Deretter skriver du inn :q! og trykker Enter. Dette gir vi beskjed om å avslutte uten å lagre noen endringer. (Dersom du ønsker å lagre endringene, skriver du isteden :wq).

For å mestre Linux-kommandolinjen, er det nødvendig å kunne mer enn dette. Les videre, så skal vi forklare hvordan vi fungerer og hvorfor kommandoene for å avslutte er såpass uvanlige. Vi er et kraftig og viktig verktøy, og innsatsen det krever å lære det, er vel verdt det.

Vi: Den Allestedsnærværende Editoren

Sjansen er stor for at du vil støte på vi, siden den finnes overalt. Du kan til og med havne inne i vi helt utilsiktet. Kanskje noen ber deg om hjelp med Linux-maskinen sin. Du kjører en kommando som crontab -e, og plutselig dukker vi opp. Overraskende nok har noen konfigurert vi som standard editor for crontab.

Det kan også være at du administrerer et system der vi er den eneste editoren, eller den eneste som fungerer via en ekstern SSH-sesjon, og du trenger å redigere en brukers .bashrc-fil.

Kommandoen for å starte vi og åpne en fil er enkel: Skriv vi, et mellomrom, og deretter filnavnet, og trykk enter. Programmet som starter kan enten være vi eller vim, en «forbedret vi»-versjon. Dette avhenger av hvilken Linux-distribusjon du bruker – for eksempel bruker Ubuntu vim. Alle instruksjonene i denne artikkelen gjelder for vim på samme måte som for vi.

vi .bashrc

Den mest umiddelbare forskjellen mellom vi og andre editorer er at du ikke bare kan begynne å skrive tekst når vi starter. Dette er fordi vi er en modal editor. Redigering foregår i innsettingsmodus, mens kommandoer gis i kommandomodus. vi starter i kommandomodus.

Dette konseptet med innsettingsmodus og kommandomodus kan virke forvirrende hvis du ikke er kjent med det. Mange av kommandoene du kan gi i kommandomodus påvirker filen du redigerer. Hvis du er i kommandomodus, men forsøker å skrive inn tekst, vil dette ikke gå bra. Noen av tastetrykkene dine vil bli tolket som kommandoer, som kan slette eller dele linjer, flytte markøren eller slette tekst.

Uansett hva du prøver å skrive, finner du ingen måte å avslutte editoren på. I mellomtiden blir filen din stadig mer rotete, og de tilsynelatende tilfeldige pipelydene gjør deg frustrert.

Kommandomodus og Innsettingsmodus

Du må veksle vi til riktig modus, avhengig av hva du ønsker å oppnå.

Kommandomodus er standard når vi starter. Uten at du vet bedre, vil du antagelig prøve å begynne å skrive. Hvis du ved et uhell trykker på «i»-tasten, eller en av de ti andre tastene som starter innsettingsmodus (a, A, c, C, I, o, O, R, s og S), vil teksten du skriver plutselig dukke opp. Du er nå i innsettingsmodus.

Dette kan føles som et fremskritt, inntil du trykker på en av piltastene. Da vil A, B, C eller D dukke opp som den eneste bokstaven på en ny, ellers tom linje, øverst i filen.

Men ikke bekymre deg, vi hjelper deg. Det er overraskende enkelt når du vet hvordan. Husk disse to tastetrykkene: Esc tar deg tilbake til kommandomodus, og «i» tar deg til innsettingsmodus.

Du må være i kommandomodus og angi riktig kommando for å forlate editoren.

Fra Kommandomodus til Sikkerhet

For å gå inn i kommandomodus, trykk på Esc-tasten. Ingenting synlig vil skje. Trykk den et par ganger til. Hvis du hører en pipelyd når du trykker Esc, er du i kommandomodus. Pipelyden forteller deg at du ikke trenger å trykke Esc flere ganger, da du allerede er i kommandomodus. Hvis du hører en pipelyd når du trykker Esc, er alt i orden.

Skriv inn et kolon, bokstaven «q» og et utropstegn, uten mellomrom. Disse tre tegnene skal vises helt til venstre på den nederste linjen i terminalen. Hvis de ikke gjør det, trykk Esc til du hører en pipelyd, og prøv igjen. Trykk Enter når du ser dem:

:q!

I denne kommandoen er «q» forkortelse for «quit» (avslutt). Utropstegnet gir kommandoen litt ekstra trykk, som om du roper «avslutt!» til vi. Det kan gjøre at du føler deg litt bedre.

Utropstegnet instruerer også vi om ikke å lagre eventuelle endringer du har gjort i filen. Hvis du har rotet rundt i vi uten å vite hva du gjorde, vil du sannsynligvis ikke lagre endringene du har forårsaket.

Når du er tilbake på kommandolinjen, kan det være lurt å dobbeltsjekke at filen ikke er endret. Dette kan du gjøre med følgende kommando:

cat .bashrc | less

Når du forsøker å avslutte vi, og du ser en melding som sier «ingen skriving siden siste endring», betyr det at du glemte utropstegnet i kommandoen. For å forhindre at du mister endringer du kanskje ønsker å beholde, gir vi deg en mulighet til å lagre dem. For å avslutte vi og forkaste eventuelle endringer, gir du bare kommandoen :q! med utropstegnet.

Lagre Endringene Dine Hvis Du Er Sikker

Hvis du er fornøyd med endringene du har gjort i filen, kan du avslutte og lagre endringene ved å bruke kommandoen :wq (write and quit). Pass på at du er helt sikker på at du ønsker at endringene dine skal lagres i filen før du fortsetter.

Skriv et kolon, bokstaven «w» (write) og bokstaven «q» (quit). Trykk Enter når du ser dem nederst til venstre i terminalen:

:wq

Læringskurven Er Verdt Det

Å bruke vi kan sammenlignes med å spille piano. Du kan ikke bare sette deg ned og forvente å mestre det; du må øve litt. Det er ikke lurt å prøve å lære vi under press når du har behov for å redigere noe. Det ville være like meningsløst som å sette seg ved et piano for første gang rett før teppet går opp for din åpningskonsert.

Mye av kraften i vi ligger i de mange tastekombinasjonene som utfører vanlige redigeringsoppgaver. Dette er flott, men du kan ikke dra nytte av disse før du har lært dem utenat, øvd på dem, og de har blitt en del av din muskelhukommelse.

Inntil den tid kommer, hvis du havner i vi og ser på en viktig fil, så bare skriv :q! og kom deg grasiøst ut. Din viktige fil vil takke deg for det.