Módy

vi pracuje v rôznych módov, ktoré sa používajú na rôzne úlohy. Keď po prvý krát naštartujete vi, dostanete sa do príkazového módu. Od tohto momentu môžete zadávať rôzne príkazy na manipulovanie textu, posúvanie sa v súbore, ukladanie, ukončenie a zmenu módu. Editovanie textu sa robí vo vkladacom (insert) móde. Medzi rôznymi módmi sa môžete rýchlo prepínať rôznymi klávesami, čo rozoberieme nižšie.

Príkazový mód

Najprv sa dostanete do príkazového módu. Z tohto módu nemôžete priamo vkladať text alebo editovať to čo už v súbore je. Ale môžete spracovávať text, hľadať, ukončiť, uložiť, nahrať iný súbor a iné. Toto je mienené ako úvod do príkazového módu. Popis rôznych príkazov nájdete v sekcii nazvanej vi klávesy.

Pravdepodobne najčastejšie používaný príkaz v príkazovom móde je zmena na vladací (insert) mód. To dosiahnete stlačením klávesy i . Kurzor zmení tvar a v spodnej časti obrazovky s zobrazí -- INSERT -- (pozor, toto sa nestane na všetkých klonoch vi). Oteraz, všetky klávesy, ktoré stlačíte, sú vložené do aktuálneho bufra a sú zobrazené na obrazovke. Ak sa chcete dostať naspäť do príkazového módu, stlačte klávesu escape.

V príkazovom móde sa tiež môžete pohybovať po súbore. Na niektorých systeémoch môžete na pohybovanie používať kurzorové klávesy. Na iných systémoch, môžete potrebovať tradičnejšia klávesy “hjkl”. Tu je jednoduchý zoznam toho ako sa tieto klávesy používajú na pohybovanie:

hposun vľavo o jeden znak
jposun dole o jeden znak
kposun hore o jeden znak
lposun vpravo o jeden znak

Jednoduch na pohyb stlačte klávesu. Ako uvidíte neskôr tieto klávesy môžu byť kombinované s číslom na oveľa efektívnejšie pohybovanie.

Veľa príkazov, ktoré môžete použiť v príkazovom móde začína dvojbodkou. Napríklad ukončenie(quit) je :q, o čom sme hovorili už predtým. Dvojbodka jednoducho naznačuje, že toto je príkaz, zatiaľ čo “q” hovorí vi aby skončilo. Iné príkazy sú voliteľné číslo nasledované písmenom. Tieto príkazy nemajú pred sebou dvojbodku a sú vo všeobecnosti používané na manipulovanie s textom.

Napríklad zmazanie jedného riadku zo súboru dosiahnete stlačením dd. To zmaže riadok, na ktorom je kurzor. Zadanie príkazu 4dd povie vi aby zmazalo riadok, na ktorom je kurzor a tri nasledujúce. Vo všeobecnosti číslo hovorí vi koľko krát má vykonať príkaz.

Môžete kombinovať číslo s klávesami na pohyb na to aby ste sa mohli pohnúť o niekoľko znakov naraz. Napríklad 10k vás posunie na obrazovke hore o desať riadkov.

Príkazový mód možno tiež použiť na vystrihovanie a prilepovanie, vkladanie textu a načítanie iných súborov do aktuálneho bufra. Kopírovanie textu sa robí pomocou klávesy y (y je zo slova vytrhnúť(yank)). Kopírovanie aktuálneho riadku sa robí stlačením yy, a to môže byť prefixované číslom ak chcete vytrhnúť viac riadkov. Potom sa presuňte na miesto, kde chcete okopírovať a stlačte p. Text bude prilepený (paste) na riadok za aktuálnym riadkom.

Vystrihnutie textu sa robí stlačením dd, a p môžete použiť na prilepenie vystrihnutého textu späť do súboru. Čítanie textu z iného súboru je jednoduchá procedúra. Len stlačte :r, nasledované medzerou a menom súboru, ktorý obsahuje text, ktorý chcete vložiť. Obsah súboru bude prilepený do aktuálneho bufra na riadok za kurzorom. Inteligentnejšie klony vi dokonca obsahujú dopĺňanie mien súborov podobné tomu, ktoré je v shell-i.

Posledné použitie, ktorým sa budeme zaoberať je vyhľadávanie. Príkazový mód dovoľuje jednoduché vyhľadávanie, rovnako ako aj príkazy na komplikované vyhľadávanie a nahrádzanie, ktoré využívajú výkonnú verziu regulárnych výrazov. Úplná diskusia o regulárnych výrazoch je mimo rozsah tejto kapitoly, takže táto sekcia popisuje len jednoduché prípady vyhľadávania.

Jednoduché vyhľadávanie sa dosiahne stlačením klávesy / nasledovanej textom, ktorý sa má hľadať. vi bude hľadať zhodu od pozície kurzora smerom dopredu ku koncu súboru a zastane, keď nejakú nájde. Všimnite si, že vi zastaví vyhľadávanie aj pri nepresnej zhode. Napríklad, vyhľadávanie “the” spôsobí, že vi zastaví na “then”, “therefore”, a tak ďalej. To preto, že všetky tieto slová, sa zhosdujú, s “the”, ale len na začiatku.

Po tom ako vi nájde prvú zhodu, môžete pokračovať v hľadaní ďalšej zhody jednoducho stlačením klávesy / nasledovanej enter-om. Môžete tiež súbor prehľadávať opačným smerom ak nahradíte lomítko klávesou ? . Napríklad, hľadanie “the” v súbore smerom späť dosiahneme naťukaním ?the.

Vkladací mód

Vkladanie a nahrádzanie textu sa robí vo vkladacom móde. Ako sme už spomínali, môžete sa do vkladacieho módu dostať stlačením i v príkazovom móde. Potom všetok text, ktorý napíšete, je vložený do aktuálneho bufra. Stlačenie klávesy escape vás vezme späť do príkazového módu.

Nahrádzanie textu sa môže robiť viacerými spôsobmi. V príkazovom móde vám stlačenie r dovolí nahradiť jeden znak pod kurzorom. Stačí stlačiť nový znak a ten nahradí znak, ktorý sa práve nachádza pod kurzorom. Vzápätí sa vrátite späť do príkazového módu. Stlačenie R vám dovolí nahradiť toľko znakov, koľko chcete. Aby ste sa dostali von z tohto nahrádzacieho módu, stačí stlačiť escape a dostanete sa späť do príkazového módu.

Existuje ešte iný spôsob ako sa prepínať medzi vkladaním a nahrádzaním. Stlačenie klávesy insert v príkazovom móde vás prepne do vkladacieho módu. Keď už ste raz vo vkladacom móde, tak klávesa Insert na klávesnici slúži na prepínanie medzi vkladaním a nahrádzaním. Keď ju stlačíte raz, môžete nahrádzať. Ak ju stlačíte ešte raz, tak môžete opäť vkladať text.