4.8. Den klassiske UNIX editor vi

Indtil videre har du set, hvordan du kan manipulere filer, men det er ofte meget nyttigt at kunne redigere i en tekstfil. Naturligvis findes der et hav af meget sofistikerede editorer til UNIX, men vi er meget enkel at bruge (dette vil du helt sikkert ikke mene i starten). Som gamle UNIX-folk vil vi forfattere give dig det råd, at du lærer at bruge vi og bruger editoren til at foretage mindre rettelser i filer. Editoren vi (som udtales vi-aj) har eksisteret i mange år, og det er nok en af de mest udbredte editorer i verden. Grunden er bl.a., at vi findes på alle UNIX systemer og er så lille, at den næsten altid startes op uanset belastning af maskinen. En pine for nybegynderen, en nydelse for den erfarne.

Lad os antage, at du vil skrive en eller anden tekst, og du vil have, at filen skal hedde minFil.txt. Editoren vi startes på følgende måde:

[daisy@linus daisy]$  vi minFil.txt

Til at begynde med står der intet andet end en masse ~-tegn, med en tilde per linje. Dette betyder, at disse linjer ikke eksisterer i filen endnu. vi arbejder i et af to modes: indsæt- eller kommando-mode. Trykker du på i, når du er i kommando-mode, går du over i indsæt-mode, mens du skal trykke på Escape, hvis du ønsker at komme i kommando-mode. Du kan se, hvilket mode du er i ved at se nederst på skærmen: når der står -- INSERT --, er du i indsæt-mode. vi har en række funktioner, som du kan bruge i kommando-mode. Her er de mest almindelige.

Tabel 4-1. Oversigt over de mest anvendte vi-kommandoer.

KommandoForklaring
i Skift til indsæt-mode. Nu kan der føjes til filen, fra hvor man står.
a Skift til indsæt-mode med append. Nu kan der føjes til filen, efter der hvor man står.
o Skift til indsæt-mode (open line) og indsæt ny linie.
ESC Skift tilbage til kommando-mode.
h j k l I kommando-mode virker disse som pile-tasterne til at flytte rundt i filen.
x Slet bogstav.
X Slet bogstav til venstre for markør.
dw Slet ord (delete word).
dd Slet linje.
3dd Slet tre linjer startende med linjen, du står i.
u Fortryd sidste ændring.
/tekst Søg efter "tekst". Tryk / eller n for at søge videre.
4Y Kopier 4 linjer til buffer startende med linjen, du står i (yank).
p Indsæt fra buffer (put). Dette virker både efter yank og delete ordrerne.
J Slet linjeskift (join).
: set numberVis linienumre.
: set nonumberVis ikke linienumre.
<n>GGå til linie <n>.
Ctrl-gViser nuværende linienummer
: %s/STR1/STR2/gSøg og erstat STR1 med STR2.
ZZ Gem filen, og stop editoren.
:w Gem filen.
:w <NAVN> Gem filen som <NAVN>.
:e <NAVN> Hent filen <NAVN>.
:q! Stop vi uden at gemme filen.

Nok er vi en teksteditor, som er meget udbredt i UNIX-verdenen, men du kan også læse lidt frem; der er alternativer, som er nemmere, såsom pico og nogle, som kan meget mere, såsom emacs. Begge omtales i afsnit 6.4.