MDF support - Öppet dygnet runt på <support@mds.mdh.se> och i diskussionsgruppen mdh.dator.problem


HowTo - Introduktion till vi

Vi är ökänd, välkänd, älskad och hatad. Den lämnar ingen oberörd. Alla som har sett den eller försökt använda den har en åsikt om vi. Den finns överallt (nåja) och är en allestädes närvarande faktor att räkna med. I ett Unixsystem så kan man räkna med att man alltid har vi att "falla tillbaka på, om det absolut inte finns något annat att ta till ... som t.ex ed. *ryser*

Vi har ingenting med sex att göra, om det nu var någon som trodde det. Trots vissa möjliga kopplingar till det så är det betydligt enklare än så. Förkortningen vi kan betyda många saker (kärt barn ...), men eftersom flertalet av dem inte lämpar sig för barnaöron så nöjer vi (uttalas "vi aj") oss här med att säga att det står för "VIsual editor", även om det nu finns andra mer fantasifulla tolkningar.

Vad är det som är så speciellt med vi då, kan man ju fråga sig, om man aldrig ens hört talas om eländet? Tja, ingenting egentligen. Det är bara så enkelt att vi inte fungerar alls som någon annan editor du tidigare stött på. Det finns i huvudsak tre moder/lägen i vi. Det ena är editeringsläget, där vi faktiskt skulle kunna lura någon att tro att den är en helt vanlig editor. Det andra läget är kommandoläget vilket vi startas i och som de allra flesta kör fast i... Det tredje läget är den kraftfulla editorn ex som man kan använda sig av från vi.

Ursprungsversionen av vi utvecklades av de underbara människorna vid University of California - Berkeley, framförallt skrevs den av en William Joy. Numer finns det ett ouppräkneligt antal olika varianter/kloner som mer eller mindre bygger på den ursprungliga varianten som först kom att distribueras med AT&Ts Unix System IV (Berkeley byggde sin Unix på SYSTEM VII). Det är alltså AT&T vi har att tacka för att vi ö.h.t. har Unix idag!

Vanliga kloner av vi som man kan stöta på nere på stan idag är exempelvis Vim och Elvis (Elvis lever!). Dessutom kan man faktiskt stöta på originalet i distributioner som tex Suns Solaris och HPs HP-UX. Elvis följer med som standard i Slackware Linux och Minix. Vim finns att ladda hem från http://www.vim.org/download.html och finns för en mängd olika operativsystem (t.ex Win95/98/NT, OS/2, DOS, Unix etc.).

Hur gör jag?

OK, hur gör man nu då och vad bara måste jag veta? Här är ett par saker som kan vara bra att minnas. Först av allt:

När man startar vi så börjar man ju i kommandoläge, och för att komma till editeringsläge så trycker man i (insert), a (append), o (open) eller något liknande. För att sedan lämna editeringsläget och gå tillbaka till kommandoläget trycker man ESCape.

Sålunda finns det tre typer av kommandon som man kan ge till vi. Notera: vi är designad för att man skall kunna göra så lite som möjligt i editeringsläge, detta för att man inte skall råka "kladda" så mycket.

Kom ihåg: Allting kan avbrytas med ^C, cancel.

Kort hjälp till hur vi fungerar:

Redigeringsläge

   ^L - Rita om skärmen
   ^H - Backspace
   ^J eller ^M - Enter
   ^I - Tab
   ^T - Shift right
   ^D - Shift left
   ^C - Cancel
   ^U - Undo senaste

Kommandoläge (Escape)

De flesta kommandon i kommandoläge kan föregås av ett magiskt tal. Detta magiska tal anger hur många gånger kommandot skall repeteras. Tex: 5dd tar bort denna raden samt de fyra efterföljande, fem st totalt. 7x tar bort de sju efterföljande tecknen inklusive det markören står på.

Förflyttning
   0 - Gå till början av raden.
   $ - Gå till slutet av raden.
   h - Vänster.
   j - Ned.
   k - Upp.
   l - Höger.
   w - Höger ett ord.
   W - Höger ett riktigt ord.
   b - Vänster ett ord.
   B - Vänster ett riktigt ord.
   ^F - Forward. Page down.
   ^B - Back. Page up.
   ^P - Previous. Flyttar markören en rad upp.
   ^N - Next. Flyttar markören en rad ned.
   ^E - Skrolla en rad ned.
   ^Y - Skrolla en rad upp.
Till editeringsläge
   i - Insert före markören.
   I - Insert i början av raden.
   a - Append efter markören.
   A - Append i slutet på raden.
   o - Open line, före denna rad.
   O - Open line, efter denna rad.
   R - Replace. Gå in i replace-läge, skriver över.
Redigering (obs, ej editeringsläge!)
   d? - Delete, där ? är ett ytterligare tecken ...
   dd - Delete line
   r? - Replace. Ändra tecknet under markören mot ...
   x - Delete till höger (med tecknet under markören).
   X - Backspace, tar bort till vänster.
   p - Paste, före markören.
   P - Paste, efter markären.
   J - Join lines. Slår ihop denna och efterföljande rad.
   u - Undo den senaste operationen.
   U - Undo allt som gjorts på denna raden.
Sökning
   / - Sök efter, framåt.
   ? - Sök efter, bakåt.
   n - Nästa träff.
   N - Föregående träff.

Ex (kolon)

Varje kommando i ex inleds från kommandoläget med ett ':' följt av en valfri adressrymd som kommandot skall mappas på. Ex-läget är så pass omfattande att läsaren hänvisas att ta reda på mer via antingen mansidan eller via webben. Förslagsvis: "VI Helpfile" - Rekommenderas! eller varför inte den lokala mansidan vi(1)

Allmänt
   :! - Ger dig en prompt i joonicks.
   :0 - Gå till början av filen.
   :$ - Gå till slutet av filen.
   :w - Write. Sparar aktuell fil.
   :x - Xit.
   :q - Quit. Avslutar.
   :q! - Avslutar utan att "krångla"/spara. :)
   :wq - Avslutar och sparar först.
   :1,$ - Anger all text, från rad ett till slutet av filen.
   :.,$ - Anger all text från markören till slutet av filen.
   :5,7 - Anger all text från rad 5 till rad 7.,
   :s/~ - Substitute, se nedan ...
   :e <file> - Editera annan fil.
   :r kommando/fil - Läser in ett resultat av kommando el. en fil.
Sök och ersätt, regexp

Denna sektionen handlar om hur man söker efter och ersätter text. Egentligen ligger de djupare aspekterna av reguljära uttryck bortom denna lilla introduktions omfång, men lite kan man ju alltid säga. Annars hänvisas läsaren till mansidan för regexp(3) för en utförligare "introduktion". :)

:s/tomte/leopard/
Ersätter första förekomsten av tomte med leopard på den aktuella raden.
:1,$s/tomte/leopard/
Ersätter första förekomsten av tomte med leopard i den aktuella filen.
:1,$s/tomte/leopard/g
Ersätter alla förekomster av tomte med leopard i den aktuella filen.
:1,$s/[\t\n ]+[0-9]+[\t\n ]+/<tal>/g
Ersätter alla tal som inte står inskrivna i någon text med "<tal>".

Klassiker (kommandoläge) ...

Mer om Vi

Mer information om Vi hittar du på Sven Guckes utmärkta sidor.


<-- Tillbaka till HowTosidan | <support@mds.mdh.se>

Uppdaterad: 2003-10-29