3.4. Editor vi

Textové editory se stále používají pro správu systému i při programování. Editor vi je v unixovém světě považován za velmi komfortní a výkonný editor, jehož ovládání je mnohem ergonomičtější, než ovládání většiny textových editorů s grafickým rozhraním a podporou myši.

3.4.1. Režimy práce

[Note]Značení kláves v tomto manuálu

V následujícím textu je popsána řada příkazů editoru vi. Příkazy vi jsou citlivé na velikost písmen. Popis příkazů obsahuje velká písmena, ale pouze proto, že jsou takto popsány příslušné klávesy na klávesnici. Pokud má příkaz skutečně obsahovat velké písmeno, je to explicitně vyjádřeno zahrnutím klávesy Shift do příslušné kombinace. Jinak používejte písmena malá.

Editor vi používá tři hlavní režimy práce: vkládací (insert) režim, příkazový (normální, command) režim a řádkový (rozšířený, extended) režim. Klávesy mají v různých režimech různé funkce. Za běžných okolností se vi po startu nachází v příkazovém režimu. První věc, kterou se uživatel musí naučit, je přepínat mezi režimy:

Přechod z příkazového do vkládacího režimu

Možností je několik, patří mezi ně stisknutí A (z anglického append, vkládá text za aktuální pozici kurzoru), I (z anglického insert, vkládá text na aktuální pozici kurzoru) nebo O (vkládá text na začátek nové řádky pod aktuální řádkou).

Přechod z vkládacího do příkazového režimu

Stisknutí klávesy Esc ukončí vkládací režim a způsobí přechod do příkazového režimu. Pokud se editor vi nachází ve vkládacím režimu, nelze ukončit, a proto je důležité zapamatovat si klávesu Esc pro jeho opuštění.

Přechod z příkazového režimu do řádkového režimu

Řádkový režim lze aktivovat zápisem dvojtečky (:) v příkazovém režimu. Řádkový režim je obdobou řádkově orientovaného textového editoru.

Přechod z řádkového režimu do příkazového režimu

Po vykonání příkazu v řádkovém režimu se editor automaticky vrátí do příkazového režimu. Pokud nechcete vykonat žádný příkaz, smažte dvojtečku v příkazovém řádku pomocí klávesy <—. Editor se tak vrátí do příkazového režimu.

Přepnout vi z vkládacího do řádkového režimu přímo, aniž by se nejdříve přepnulo do příkazového režimu, nelze.

Editor vi má vlastní způsob ukončení. Nemůže být ukončen během práce ve vkládacím režimu. Nejprve je nutno tento režim ukončit stiskem klávesy Esc. Dále jsou dvě možnosti:

  1. Ukončení bez uložení změn: aby byl editor ukončen bez uložení změn v souborech, zapište v příkazovém režimu sekvenci : Q !. Vykřičník (!) způsobí, že bude vi ukončen bez ohledu na neuložené změny v editovaných souborech.

  2. Uložit změny a ukončit editor: možností, jak uložit změny a ukončit editor, je několik. V příkazovém režimu zapište sekvenci Shift Z Shift Z. V řádkovém režimu zapište sekvenci : W Q. Příkaz W v řádkovém režimu znamená zapsat do souboru, Q znamená ukončit editor.

3.4.2. Editor vi v akci

Editor vi je možno používat jako jakýkoliv běžný editor. Ve vkládacím režimu, lze vkládat text nebo text pomocí kláves <— a Del mazat. Kurzorem lze pohybovat pomocí kurzorových kláves.

Tento způsob ovládání však může v určitých situacích působit problémy, neboť některé terminály používají speciální klávesové kódy. Tehdy se hodí příkazový režim. Přepněte do něj stiskem klávesy Esc. V příkazovém režimu lze pohybovat kurzorem pomocí kláves H, J, K a L. Klávesy mají následující funkce:

H

přesunout kurzor o jeden znak doleva

J

přesunout kurzor o jeden řádek dolů

K

přesunout kurzor o jeden řádek nahoru

L

přesunout kurzor o jeden řádek doprava

Příkazy lze v příkazovém režimu různě modifikovat. Chcete-li příkaz vykonat několikrát, jednoduše vložte množství opakování před vlastní příkaz. Chcete-li například, aby se kurzor posunul o pět znaků doprava, stiskněte 5 L.

Nejdůležitější příkazy jsou uvedeny v tabulce 3.1 – „Základní příkazy editoru vi“, která však není v žádném případě kompletní.

Tabulka 3.1. Základní příkazy editoru vi

Esc

Přepnutí do příkazového režimu

I

Přepnutí do vkládacího režimu (vkládání na aktuální pozici kurzoru)

A

Přepnutí do vkládacího režimu (vkládání za aktuální pozici kurzoru)

Shift-A

Přepnutí do vkládacího režimu (vkládání na konec řádky)

Shift-R

Přepnutí do přepisovacího režimu (přepisuje původní text)

R

Změna znaku pod kurzorem

O

Přepnutí do vkládacího režimu (vložena nová řádka za aktuální)

Shift-O

Přepnutí do vkládacího režimu (vložena nová řádka před aktuální)

X

Smazání aktuálního znaku

D D

Smazání aktuální řádky

D W

Smazání znaků od pozice kurzoru ke konci slova

C W

Přepnutí do vkládacího režimu (přepíše se zbytek aktuálního slova)

U

Navrácení poslední akce

Ctrl-R

Obnovení navrácené akce

Shift-J

Spojení následující řádky s aktuální řádkou

.

Opakování posledního příkazu

3.4.3. Další informace

Editor vi podporuje širokou paletu funkcí a příkazů. Umožňuje používat makra, uživatelem definované klávesové zkratky, pojmenované buffery a další užitečné vlastnosti. Podrobný popis přesahuje možnosti tohoto krátkého manuálu. SUSE Linux obsahuje vim, zdokonalenou verzi editoru vi. Podrobnější informace o tomto editoru najdete na mnoha místech:

[Important]Licence editoru VIM

Editor VIM je šířen jako tzv. charityware, což znamená, že autoři za něj pro sebe nežádají žádné peníze, nicméně vyzývají uživatele k finanční podpoře dobročinného projektu na pomoc chudým dětem z Ugandy. Více informací lze získat na webových stránkách http://iccf-holland.org/index.html, http://www.vim.org/iccf/ a http://www.iccf.nl/.