Vi-redigeraren är förvirrande om du inte är van vid den. Det krävs ett hemligt handslag för att undkomma den här applikationen om du har snubblat in i den. Så här avslutar du vi eller vim på Linux, macOS eller något annat Unix-liknande system.
Innehållsförteckning
Det snabba svaret
Om du är i vi eller vim och behöver komma ut – med eller utan att spara dina ändringar – gör du så här:
Tryck först på Esc-tangenten några gånger. Detta kommer att säkerställa att vi är ur infogningsläge och i kommandoläge.
För det andra, skriv :q! och tryck på Enter. Detta säger åt vi att avsluta utan att spara några ändringar. (Om du vill spara dina ändringar, skriv :wq istället.)
Om du vill lära dig Linux-kommandoraden behöver du veta mycket mer än så. Läs vidare så visar vi dig hur vi fungerar och varför instruktionerna för att sluta är så ovanliga. vi är ett viktigt, kraftfullt verktyg och inlärningskurvan är värt det.
vi, Den Ubiquitous Editor
Eftersom vi finns överallt är chansen stor att du kommer att stöta på det. Du kan till och med befinna dig inuti vi av en slump. Kanske någon ber dig att titta på deras Linux-dator åt dem. Du utfärdar ett kommando som crontab -e och vi dyker upp. Överraskning, någon har konfigurerat standardredigeraren för crontab att vara vi.
Du kanske administrerar ett system där vi är den enda redigeraren, eller den enda som fungerar genom en fjärrstyrd SSH-session, och du behöver redigera en användares .bashrc-fil.
Kommandot för att starta vi och öppna en fil är rakt fram. Skriv vi , ett mellanslag och sedan filnamnet. Tryck enter. Programmet som startas kan vara vi eller det kan vara vim , ett ”förbättrat vi”. Det beror på din Linux-distribution – till exempel använder Ubuntu vim . Alla instruktioner i den här artikeln gäller lika mycket för vim.
vi .bashrc
Den direkt märkbara skillnaden mellan vi och andra redigerare är att när vi startar kan du inte bara börja skriva text. Det beror på att vi är en modal editor. Redigering utförs i ett läge, infogningsläget, och utfärdande av kommandon utförs i kommandoläget. vi startar i kommandoläge.
Om du inte är bekant med begreppen infogningsläge och kommandoläge kan det vara förbryllande. Många av kommandona som du kan utfärda i kommandoläge påverkar filen du skriver. Om du är i kommandoläge men av misstag försöker skriva text i din fil, kommer det inte att sluta bra. Några av tangenttryckningarna du gör kommer att kännas igen som kommandon. Dessa kommandon kan ta bort eller dela rader, flytta runt markören eller radera text.
Och oavsett vad du skriver kan du inte hitta ett sätt att avsluta eller avsluta redigeraren. Samtidigt håller din fil på att bli ganska trasig och de till synes slumpmässiga ljudsignalerna gör dig galen.
Kommandoläge och infogningsläge
Du måste byta vi till rätt läge för det du försöker åstadkomma.
Kommandoläge är standardläget när vi startar. Om du inte vet bättre börjar du försöka skriva. Om du råkar trycka på ’i’-tangenten eller någon av de andra 10 tangenterna som anropar infogningsläge (a, A, c, C, I, o, O, R, s och S) kommer du plötsligt se vad du skriver. Du är nu i infogningsläge.
Detta kan kännas som framsteg tills du trycker på en av piltangenterna. Om du gör det kommer A, B, C eller D att visas som den enda bokstaven på en annars tom ny rad. Överst i filen.
Det är okej, vi har din rygg. Detta är förvånansvärt enkelt när du vet hur. Kom ihåg dessa två tangenttryckningar: Esc tar dig till kommandoläge och ”i” tar dig till infogningsläge.
Du måste vara i kommandoläge och ange rätt kommando för att lämna redigeraren.
Från kommandoläge till säkerhet
För att gå in i kommandoläge, tryck på Esc-tangenten. Inget synligt kommer att hända. Slå den några gånger till. Om du hör ett pip när du trycker på Escape-tangenten är du i kommandoläge. Pipet säger till dig ”Sluta trycka på Esc, du är redan i kommandoläge.” Om du hör ett pip när du trycker på Esc är vi bra.
Skriv ett kolon, bokstaven ”q” och ett utropstecken, utan mellanslag. Dessa tre tecken ska visas längst till vänster på terminalens nedre rad. Om de inte gör det, tryck på Esc tills du hör ett pip och försök igen. Tryck på Enter när du kan se dem:
:q!
I detta kommando är q en förkortning för quit. Utropstecknet lägger till betoning, så det är som att du ropar ”Sluta!” vid vi. Det kan få dig att må lite bättre.
Utropstecknet instruerar också vi att inte spara några av de ändringar du kan ha gjort i filen. Om du har missat i vi och inte vetat vad du gör vill du förmodligen inte rädda den förödelse du har orsakat.
När du är tillbaka på kommandoraden kanske du vill dubbelkolla för att se till att filen inte har ändrats. Du kan göra detta med följande kommando:
cat .bashrc | less
När du avslutar vi, om du ser ett meddelande som säger ”ingen skrivelse sedan senaste ändring”, betyder det att du missade utropstecknet från kommandot. För att förhindra att du slutar och förlorar eventuella ändringar du kanske vill behålla, ger vi dig chansen att spara dem. Ge bara ut :q! kommandot med utropstecken på plats för att lämna vi och överge alla ändringar.
Om du är säker, spara dina ändringar
Om du är nöjd med ändringarna du har gjort i din fil kan du avsluta och spara ändringarna med kommandot :wq (skriv och avsluta). Se till att du är helt nöjd med att du vill att dina skärmredigeringar ska skrivas till filen innan du fortsätter.
Skriv ett kolon, bokstaven w (skriv) och bokstaven q (avsluta). Tryck på Enter-tangenten när du kan se dem i terminalens nedre vänstra hörn:
:wq
Inlärningskurvan är värt det
Att använda vi är lite som att använda ett piano. Du kan inte bara sitta ner och använda den; du måste träna lite. Att sitta ner till det kallt och försöka lära sig i farten när pressen är på dig att få något redigerat är inte sättet att göra det. Det är lika vettigt som att sitta ner vid ett piano för första gången precis när ridån höjs för din invigningskonsert.
Mycket av kraften i vi kommer från dess många tangentkombinationer som var och en utför en vanlig redigeringsuppgift. Det är bra, men du kan inte dra nytta av dem förrän du har memorerat dem, tränat dem och de är en del av ditt muskelminne.
Tills dess, om du befinner dig i vi och tittar på en viktig fil, bara :q! och gå ut graciöst. Din viktiga fil kommer att tacka dig.