Det er ikke uvanlig å begå feil når man redigerer tekst med Vim i Linux. Heldigvis er det like enkelt å korrigere disse feilene.
Slik angrer du en redigering i Vim
Angre-funksjonen i Vim fungerer på mange måter likt som i moderne tekstbehandlere som Microsoft Word, LibreOffice Writer eller Google Docs. Vim lagrer alle endringene du gjør i en fil, slik at du kan gå tilbake til tidligere versjoner når det er nødvendig.
Vim registrerer alt du gjør i innsettingsmodus, samt alle kommandoer du utfører i kommandomodus, som endringer. Dette betyr for eksempel:
- Hvis du skriver flere linjer i innsettingsmodus og deretter bruker angre-kommandoen umiddelbart, vil alle disse linjene bli fjernet.
- Hvis du skriver en linje, går over til kommandomodus, og deretter tilbake til innsettingsmodus for å skrive litt mer tekst, vil dette bli registrert som to separate endringer. Angre-funksjonen vil derfor fjerne hver av disse endringene individuelt.
Vim lar deg også gjenta kommandoer, som for eksempel «3dd» for å slette tre linjer. Hvis du bruker en slik sammensatt kommando, vil angre-funksjonen behandle hele kommandoen som én enkel endring. Du kan fortsette å angre helt til du er tilbake til utgangspunktet, altså slik filen var da du åpnet eller opprettet den.
Hvis du innser at du har gjort en redigering i Vim som du angrer på, er det en enkel prosess i to trinn:
Det er alt som skal til. Du vil se en melding som bekrefter endringen, for eksempel «n linjer fjernet».
Dersom du ønsker å angre flere endringer, er også dette mulig. Du kan angi antall endringer du vil angre ved å legge til et tall foran angre-kommandoen, akkurat som med de fleste andre Vim-kommandoer. For eksempel, hvis du ønsker å angre to endringer, trykker du:
2u
Slik gjentar du en endring i Vim
Noen ganger kan du oppdage at angre-kommandoen har gjort noe du ikke ønsker, eller kanskje du bare har ombestemt deg. I slike tilfeller kan du bruke gjenta-kommandoen for å bringe filen tilbake til sin forrige tilstand.
Akkurat som Vim lagrer alle endringene du gjør, lagres også alle angre-operasjoner. Dette betyr at du kan angre angre-operasjoner for å gjenopprette filen slik den var før du brukte angre-kommandoen. Det er viktig å huske at Vim behandler flere linjer skrevet inn i innsettingsmodus som en enkelt endring. Dermed vil en gjenta-kommando hente tilbake alle disse linjene med én operasjon.
Kommandoen for å gjenta en endring er Ctrl + r, som står for «redo». Som vanlig, sørg for at du er i kommandomodus ved å trykke på Esc. Gjenta-kommandoen fungerer etter samme prinsipp som angre-kommandoen: du kan for eksempel gjenta flere omgjøringer ved å angi antall foran kommandoen.
Som med angre-kommandoen, vil du se en kort melding som informerer deg om endringene som er gjenopprettet, som for eksempel antall linjer som er lagt til i filen. Du kan gjenta endringer et ubegrenset antall ganger, helt til du er tilbake til den nåværende tilstanden i filen.