Okna

Okna jsou jednou z velmi prijemnych vymozenosti vim. Umoznuji vam videt zaroven nekolik souboru (nebo treba nekolik pohledu do jednoho a toho sameho souboru), libovolne je stridat a prenaset casti textu z jednoho do druheho. Na obrazku vidite vim se dvema otevrenymi okny.

[Obrazek]

Otevirani a zavirani oken

Nejzakladnejsim zpusobem, jak spustit vim s nekolika okny je zadat mu na prikazovem radku volbu -o. V takovem pripade otevre okno pro kazdy soubor, ktery ma editovat.

Priklad:
Prikazem
vim -o histor.htm okna.htm
jsem spustil vim, jehoz obrazovka bude rozdelena na dve okna. Jedno bude obsahovat soubor histor.htm a druhe okna.htm. Vysledek vidite vyse.
Casto si vsak az behem editace vzpomenete, ze byste radi na chvili nahledli i do jineho souboru a treba z nej kousek prevzali do toho aktualniho. V takovem pripade poslouzi prikaz :split <soubor>, kde <soubor> je jmeno souboru, ktery se ma v okne objevit. Samozrejme je nemusite zadavat. V takovem pripade se vam objevi prazdne okno.

Zavirani okna se nijak nelisi od uzavreni souboru - pouzijte proste :q (pripadne :q!, :wq ci ZZ - podle toho, zda jste obsah okna zmenili a zda jej chcete ulozit).

Pri praci s okny se prikaz :q chova ponekud odlisne, nez bez nich. Jestlize totiz mate otevreno dalsi okno se stejnym souborem, nezavira se soubor, ale jen okno. Proto se editor nestara o pripadne neulozene zmeny. Teprve pri zavirani posledniho okna do souboru pouzije klasicke chovani.

Jestlize se zaroven jedna o posledni okno editoru, bude soucasne s oknem ukoncen i vim. Bezny "neokenni" rezim prace je vlastne rezim "okenni" s jedinym otevrenym oknem.

Pouzivani

Kazde okno jest chapati jako okenko, kterym nahlizite do obsahu souboru. Muzte si jich otevrit mnoho, ale v praxi nejcasteji pracujete se dvema okny - v jenom je "hlavni" editovay soubor a ve druhem soubor, do ktereho momentalne chcete nahlednout ci z nej neco zkopirovat.

Vsechny okenni operace se vyvolavaji dvojici znaku, z nichz prvni je Ctrl-W (W jako window). Zakladem pouziti oken je pochopitelne poskakovani z jednoho do druheho. Asi nejcasteji pouzivany je prikaz Ctrl-W Ctrl-W. Presune kurzor do okna pod aktualnim. Jste-li v nejnizsim okne obrazovky, pretoci se zpet nahoru. vim si pamatuje pozici, ze ktere jste dotycne okno opustili a pri navratu vas posadi primo na ni.

Pozor! Prikazy pro praci s okny je treba provadet v normalnim rezimu. Ve vkladacim totiz Ctrl-W vymaze slovo pred kurzorem.

Pomerne intuitivni je i dalsi zpusob prepinani oken: po Ctrl-W stisknete nektery z prikazu pro pohyb nahoru ci dolu a kurzor prejde do sousedniho okna v uvedenem smeru. Takze Ctrl-W [sipka nahoru] nebo Ctrl-W k posouvaji kurzor do vyssiho okna, zatimco pri Ctrl-W [sipka dolu] ci Ctrl-W j naopak klesate.

Pokud vase verze vim podporuje mys, muzete stridat okna prostym klepnutim mysi. Kurzor se totiz presune na pozici klepnuti, at je kdekoli. Takze pripadne zmeni aktualni okno. Klepnete-li na stavovy radek okna, prestehuje se kurzor do nej na pozici, ze ktere jste je naposledy opustili.

Zmeny usporadani

Cloveku je vetsinou jedno, v jakem poradi se okna na obrazovce vyskytuji. Pokud by to nahodou nebyla pravda, prikaz Ctrl-W r rotuje okna smerem dolu, Ctrl-W R rotuje okna nahoru a Ctrl-W x vymeni aktualni okno s oknem pod nim.

Naopak pomerne castou potrebou je zmena velikosti oken. Implicitne je vim nastaven tak, ze pri vytvoreni noveho okna zmeni velikosti vsech stavajicich tak, aby vsechna okna byla stejne vysoka. Toto chovani ridi volba equalalways. Pokud ji vypnete (:set noequalalways), rozdeli se pri vytvareni noveho okna to stavajici na dve poloviny a vysky ostatnich oken zustanou zachovany.

Kdyz vam stavajici velikost okna nevyhovuje, muzete ji upravit. Prikaz Ctrl-W + ji zvetsuje a Ctrl-W - zmensuje. Uvedete-li pred nimi cislo, zvetsi/zmensi se o dany pocet radku. Implicitni hodnotou je 1. Pomoci Ctrl-W _ nastavite vysku okna presne na cislo, ktere jste uvedli pred prikazem. Implicitne pouzije maximalni vysku okna (vsem ostatnim ponecha jediny radek).

Zmenu velikosti lze zajistit i automaticky. Volba winheight totiz udava minimalni pozadovanou vysku aktualniho okna. Nastavite-li treba :set winheight=10 a prejdete s kurzorem do malinkeho okenka, roztahne se na vysku deseti radku. Kdyz do winheight ulozite velkou hodnotu (treba 100), bude aktualni okno vzdy roztazeno na maximalni plochu a vsechna ostatni degradovana na jediny radek. Nekomu takove chovani vyhovuje, nekdo dava prednost stabilnimu usporadani oken. Volba je na vas.

<-- predchozi  [obsah]  dalsi -->
© 1997, 1998 Pavel Satrapa