A vi működése, üzemmódjai
A vi egy pufferbe olvassa be a szerkesztendő állományt. Minden módosítás, amit a fájlon végrehajtunk, ebben a belső pufferben tárolódik mindaddig, amíg egy írási paranccsal el nem mentjük.
A vi-nak alapvetően háromféle üzemmódja van: a parancsmód, a beviteli mód, és az ex mód.
Parancsmódban (ez a vi kiindulási módja) a leütött billentyűket a vi parancsokként értelmezi és hajtja végre. Az ex módból is parancsmódba tér vissza, ha elvégezte a feladatát, és beviteli módból is ide térünk vissza, ha parancsot akarunk kiadni. Futó parancsot az ESC billentyűvel lehet megszakítani.
Beviteli módba akkor kerül a vi, ha az a A i I o O c C s S R parancsok valamelyikét adtuk ki. Beviteli módban a begépelt szöveg a szerkesztett állományba kerül, s ilyenkor semmilyen parancsot nem lehet kiadni mindaddig, amíg a beviteli módból vissza nem lépünk parancsmódba, rendesen az ESC billentyű lenyomásával. (A vi-nak ez a tulajdonsága az, ami a más editorokhoz szokott felhasználóknak a legtöbb gondot okozza, nevezetesen hogy a parancsmegadás és a szövegbevitel ennyire hermetikusan szét vannak választva egymástól. Ennek valószínű oka, hogy a UNIX-os gépek termináljai annak idején nem ismerték a PC-ken megszokott kurzormozgató- és funkcióbillentyűket.
ex
módba akkor kerül a vi, amikor a : / ? ! karakterek valamelyikét ütjük le parancsmódban. Ekkor az ex editornak szóló parancsokat gépelhetünk be, a sorlezáró újsor karakter hatására a begépelt parancsokat az ex végrehajtja. A parancs végrehajtását a DEL billentyűvel szakíthatjuk meg.Mivel inkább a gyakorlati felhasználó szemével szeretnénk látni és láttatni a vi-t, tárgyalásunk során először egy olyan minimális funkciókészletet mutatunk be, mellyel már biztonsággal használható a vi, ezt fogja követni az egyes parancsok funkciók szerint csoportosított részletesebb leírása. Kezdjük hát meg túránkat a vi körül! (Olvasóinknak azt javasoljuk, nyissanak meg egy fájlt - lehetőleg ne rendszergazdai jogosultságokkal és ne a legpótolhatatlanabbat... -, s azon gyakorolják az olvasottakat.) Az alábbiakban a parancskaraktereket vastagon szedett betűvel jelöljük. A ^ karakter a vezérlőkaraktereket jelzi majd, így például a ^c jelölés a CTRL-C karakternek felel meg.
8. ábra: A
vi editor üzemmódátmeneteiről