Dokumentáció/CLP10/Alapok/7.fejezet

Rövid ismerkedés a vi szerkesztővel

A programozáson túl különféle rendszerfelügyeleti feladatok elvégzésére is szükség van még ASCII-szövegszerkesztőkre (text editor). A Unix világában a vi az a szerkesztő, amelyik meglepően széleskörű funkcionalitást kínál, ugyanakkor ergonomikusabb, mint sok más, egérhasználatot is lehetővé tevő szerkesztő.

Működési módok

A vi háromféle módban működhet: beszúrási módban, parancs módban és kiterjesztett módban. Az egyes billentyűknek más hatása van a módoktól függően. Induláskor a vi általában parancs módban indul. Az első dolog, hogy megtanuljunk váltani a módok között:

Parancs módból beszúrási módba
Ez többféleképp is lehetséges: az A megnyomására hozzáfűzés, az I megnyomására beszúrás történik, az O megnyomására pedig egy új sor kerül beszúrásra az aktuális sor alatt.
Beszúrási módból parancs módba
A beszúrási módból az Esc billentyű megnyomásával lehet kilépni. A vi semmiképpen nem állítható le beszúrási módban, ezért fontos, hogy hozzászokjon az Esc billentyű használatához.
Parancs módból kiterjesztett módba
A vi kiterjesztett módja egy kettőspont (:) beírásával érhető el. A kiterjesztett, rövid nevén ex mód olyan, mint egy kis egysoros, különféle egyszerű és bonyolultabb feladatokra használható szerkesztő.
Kiterjesztett módból parancs módba
A kiterjesztett módból a szerkesztő egy parancs végrehajtása után automatikusan visszatér parancs módba. Ha nem kíván semmilyen parancsot végrehajtani kiterjesztett módban, akkor törölje a kettőspontot a billentyűvel. Ennek hatására a szerkesztő visszatér parancs módba.Beszúrási módból nem lehet közvetlenül kiterjesztett módba kapcsolni anélkül, hogy előbb vissza ne térne parancs módba.

A vi-nak, hasonlóan más szerkesztőkhöz, megvan a maga saját kis eljárása a program leállítására. Beszúrási módban a vi nem állítható le. Először lépjen ki a beszúrási módból az Esc billentyű lenyomásával. Ezután két lehetőség közül választhat:

  1. Kilépés mentés nélkül: Ha a módosítások mentése nélkül kíván kilépni a szerkesztőből, írja be a : Q ! parancsot parancs módban. A felkiáltójel (!) hatására a vi figyelmen kívül hagyja a változásokat.
  2. Mentés és kilépés: A módosítások mentésére és a szerkesztőből kilépésre többféle lehetőség is van. Parancs módban használhatja a Z Z billentyűkombinációt. Ha kiterjesztett módból akar kilépni a programból a módosítások elmentésével, írja be, hogy : W Q. Kiterjesztett módban a W az »írást« (write) a Q pedig a »kilépést« (quit) jelenti.

A vi működés közben

A vi ugyanúgy használható, mint a többi szerkesztőprogram. Beszúrás módban szabadon írható be szöveg, illetve törölhetők karakterek a és billentyűkkel. A kurzor a nyíl billentyűkkel mozgatható.

Ezek a vezérlőbillentyűk azonban sokszor okoznak gondot, mert akadnak termináltípusok, amelyek speciális billentyűkombinációkat használnak. Itt segít a parancs mód. Nyomja meg az Esc billentyűt, mire visszalép beszúrás módból parancs módba. Parancs módban a kurzor a H, J, K ésL billentyűkkel mozgatható.

Az egyes billentyűk hatása:

H
egy karakterrel balra mozgás
J
egy sorral lejjebb mozgás
K
egy sorral feljebb mozgás
L
egy karakterrel jobbra mozgásA parancs mód parancsai sokféleképpen variálhatók. Ha egy parancsot többször egymás után kíván végrehajtani, egyszerűen írja be a parancs elé az ismétlések számát. Az 5L leütésére például a kurzor 5 karakterrel jobbra mozog.

További információ

A vi sokféle parancsot ismer. Használhatók makrók, billentyűparancsok, megnevezett pufferek, és még sok-sok egyéb hasznos funkció. A különféle lehetőség részletes leírása messze meghaladja a jelen kézikönyv lehetőségeit. A SUSE LINUX a vim (vi improved) nevű programot, a vi egy még tovább fejlesztett változatát tartalmazza. Az alkalmazással kapcsolatban igen sokféle forrásból szerezhető információ:

Icon-Important.png A VIM-licenc

A vim charityware, ami azt akarja jelenteni, hogy bár a szerzők maguk nem kérnek pénzt a szoftverért, de kérik, hogy a felhasználók támogassanak valamilyen nonprofit projektet pénzükkel. Konkrétan a projekt fel is kér az ugandai szegény gyerekek megsegítésére. További információ online, a http://iccf-holland.org/index.html, http://www.vim.org/iccf/ és http://www.iccf.nl/ címeken olvasható.

A vi szerkesztő

A vi szerkesztő használata egy kis gyakorlatot igényel. Sok embernek ez a kedvenc szerkesztője, részben azért, mert minden UNIX-jellegű operációs rendszeren rendelkezésre áll, és mert része az alapértelmezett Linux-telepítéseknek is. Emellett, ha semmi más nem is, de a vi mindig működik. Az itt következő rövid útmutatás segít abban, hogy könnyebben szerkeszthesse a különféle konfigurációs és egyéb fájlokat a vi programmal.

A vi háromféle módban működik. Parancs módban a rendszer a billentyűket parancselemekként értelmezi. A beszúrás mód minden billentyűt szövegbejegyzésként értelmez. Az utolsó sor módot az összetettebb parancsoknál használjuk, amelyek az utolsó sorba kerülnek beírásra.


Táblázat: A vi szerkesztő egyszerű parancsai
ESC Utolsó sor módba vált.
i Beszúrási módra vált (a karakterek az aktuális kurzorpozícióban jelennek meg).
a Beszúrási módra vált (a karakterek az aktuális kurzorpozíció után jelennek meg).
A Beszúrási módra vált (a karakterek a sor végéhez adódnak hozzá).
R Parancs módba vált (felülírja a régebbi szöveget).
r Beszúrási módba vált, és felülírja a karaktereket.
s Beszúrás módba vált (az a karakter, ahol a kurzor van, behelyettesítésre kerül az Ön által megadott következő bejegyzéssel).
C Beszúrás módba vált (a sor hátralévő része lecserélésre kerül az új szöveggel).
o Beszúrás módba vált (a jelenlegi után egy új sor kerül beszúrásra).
O Beszúrás módba vált (a jelenlegi elé egy új sor kerül beszúrásra).
x Törli az aktuális karaktert.
dd Törli az aktuális sort.
dw Töröl az aktuális szó végéig.
cw Beszúrás módba vált (az aktuális szó maradék része felülírásra kerül a következő bejegyzéssel).
u Visszavonja a legutolsó parancsot.
J A következő sort a jelenlegihez kapcsolja.
. Megismétli a legutolsó parancsot.
: Utolsó sor módba vált.


A legfontosabb parancsok listája (parancs módban): A vi szerkesztő egyszerű parancsai. Minden parancsot megelőzhet egy szám, amely megadja, hogy a következő parancs hány objektumra vonatkozzon. Egyszerre három szó törléséhez például adja meg: 3dw. A 10x parancs tíz karaktert töröl a kurzor után, a 20dd pedig húsz sort.

A legfontosabb parancsok listája (utolsó sor módban): A vi szerkesztő összetett parancsai.


Táblázat: A vi szerkesztő összetett parancsai
:q! mentés nélkül kilép a programból
:wfájlnév mentést készít fájlnév néven
:x menti a módosított fájlt, és kilép a szerkesztőből
:efájlnév szerkeszti (betölti) a fájlnév állományt
:u visszavonja a legutolsó szerkesztési parancsot.