Hur man avslutar Vi eller Vim Editor

By rik

Vi-editorn kan upplevas som förvirrande om man inte är bekant med den. Det krävs nästan ett hemligt knep för att ta sig ut ur applikationen om man av misstag hamnat i den. Här beskrivs hur man avslutar vi eller vim på Linux, macOS eller andra Unix-liknande system.

Det korta svaret

Om du befinner dig i vi eller vim och behöver komma ut – med eller utan att spara dina ändringar – följ dessa steg:

Tryck först på Esc-tangenten upprepade gånger. Detta försäkrar att vi är i kommandoläge och inte i infogningsläge.
För det andra, skriv :q! och tryck på Enter. Detta instruerar vi att avsluta utan att spara. Om du däremot vill spara ändringarna, skriv :wq istället.

För att behärska Linux-kommandoraden krävs mer kunskap. Läs vidare för en djupare förståelse av hur vi fungerar och varför stegen för att avsluta kan tyckas udda. Vi är ett kraftfullt verktyg, och det är värt mödan att lära sig det.

Vi, den ständigt närvarande editorn

Eftersom vi finns tillgänglig på många system är det troligt att du någon gång kommer att stöta på den. Du kan till och med hamna i vi av misstag, exempelvis om någon ber dig att undersöka en Linux-dator. Om du utfärdar kommandot crontab -e, kan vi oväntat dyka upp, eftersom någon kan ha ställt in vi som standardredigerare för crontab.

Det är även möjligt att du administrerar ett system där vi är den enda tillgängliga editorn, eller den enda som fungerar via SSH, och du behöver redigera en användares .bashrc-fil.

Kommandot för att starta vi och öppna en fil är enkelt. Skriv vi, ett mellanslag och sedan filnamnet, och tryck på Enter. Programmet som startas kan vara vi eller vim, en ”förbättrad vi”-version. Detta varierar beroende på din Linux-distribution. Till exempel använder Ubuntu vim. Instruktionerna i denna artikel fungerar lika bra för både vi och vim.

vi .bashrc

Den mest framträdande skillnaden mellan vi och andra editorer är att man inte kan börja skriva text direkt efter start. Detta beror på att vi är en modal editor. Redigering sker i ett läge, infogningsläget, medan kommandon utfärdas i kommandoläget. vi startar i kommandoläge.

Om man inte är bekant med begreppen infogningsläge och kommandoläge, kan det bli förvirrande. Många av kommandona i kommandoläget påverkar filen. Om du befinner dig i kommandoläge och försöker skriva text, kommer det inte att fungera bra. Tangenttryckningar kan tolkas som kommandon som tar bort eller delar rader, flyttar markören eller raderar text.

Du kan inte hitta ett sätt att avsluta editorn. Samtidigt kan filen skadas, och de oväntade ljudsignalerna kan göra dig frustrerad.

Kommandoläge och Infogningsläge

Du måste byta vi till rätt läge beroende på vad du vill göra.

Kommandoläge är standardläget när vi startar. Om man inte vet vad man ska göra kan man börja skriva. Om du trycker på ’i’-tangenten eller någon av de andra tangenterna som aktiverar infogningsläget (a, A, c, C, I, o, O, R, s och S), kommer texten du skriver synas. Du är då i infogningsläge.

Det kan kännas som ett framsteg, tills du trycker på en av piltangenterna. Då kan A, B, C eller D dyka upp som en ensam bokstav på en ny rad, högst upp i filen.

Lugn, vi hjälper dig. Det är förvånansvärt enkelt när man vet hur. Kom ihåg dessa två tangenttryckningar: Esc tar dig till kommandoläge, och ”i” tar dig till infogningsläge.

För att avsluta editorn måste du vara i kommandoläge och ange rätt kommando.

Från Kommandoläge till Utgång

För att gå till kommandoläge, tryck på Esc-tangenten. Inget synligt kommer att hända. Tryck några gånger till. Om du hör ett pip när du trycker på Escape-tangenten, är du i kommandoläge. Pipet signalerar att du redan är i kommandoläge.

Skriv ett kolon, bokstaven ”q” och ett utropstecken, utan mellanslag. Dessa tre tecken ska visas längst ner till vänster i terminalen. Om de inte visas, tryck på Esc tills du hör ett pip, och försök igen. Tryck på Enter när du ser dem:

:q!

I detta kommando är q en förkortning för quit, dvs. avsluta. Utropstecknet ger kraft åt kommandot, som om du ropade ”Avsluta!”. Det kan kännas bra.

Utropstecknet instruerar också vi att inte spara några av de ändringar du kan ha gjort. Om du har trasslat till det i vi och inte vet vad du gör, vill du troligen inte spara den oredan.

När du är tillbaka på kommandoraden, kontrollera att filen inte har ändrats. Det kan du göra med följande kommando:

cat .bashrc | less

Om du när du avslutar vi ser ett meddelande som säger ”ingen skrivelse sedan senaste ändring”, innebär det att du glömde utropstecknet i kommandot. För att förhindra att du slutar och förlorar eventuella ändringar du vill behålla, får du en chans att spara. Ange kommandot :q! med utropstecken för att avsluta och ignorera alla ändringar.

Spara dina ändringar om du är säker

Om du är nöjd med ändringarna du gjort i filen, kan du avsluta och spara med kommandot :wq (skriv och avsluta). Se till att du är säker på att du vill att dina ändringar sparas innan du fortsätter.

Skriv ett kolon, bokstaven w (skriv) och bokstaven q (avsluta). Tryck på Enter när de visas längst ner till vänster i terminalen:

:wq

Det är värt att lära sig

Att använda vi är lite som att spela piano. Man kan inte bara sätta sig och använda det; man måste öva. Att försöka lära sig i stunden när du är under press att göra en ändring, är inte rätt tillvägagångssätt. Det är som att sätta sig vid pianot för första gången precis när ridån går upp för din debutkonsert.

Mycket av styrkan i vi kommer från de många tangentkombinationerna som utför olika redigeringsuppgifter. Det är bra, men du kan inte dra nytta av dem förrän du har memorerat dem och de sitter i muskelminnet.

Tills dess, om du befinner dig i vi och tittar på en viktig fil, använd bara :q! och avsluta elegant. Din fil kommer att tacka dig.