Okna

Okna jsou jednou z velmi p°φjemn²ch vymo╛enostφ vim. Umo╛≥ujφ vßm vid∞t zßrove≥ n∞kolik soubor∙ (nebo t°eba n∞kolik pohled∙ do jednoho a toho samΘho souboru), libovoln∞ je st°φdat a p°enß╣et Φßsti textu z jednoho do druhΘho. Na obrßzku vidφte vim se dv∞ma otev°en²mi okny.

[Obrßzek]

Otevφrßnφ a zavφrßnφ oken

Nejzßkladn∞j╣φm zp∙sobem, jak spustit vim s n∞kolika okny je zadat mu na p°φkazovΘm °ßdku volbu -o. V takovΘm p°φpad∞ otev°e okno pro ka╛d² soubor, kter² mß editovat.

P°φklad:
P°φkazem
vim -o histor.htm okna.htm
jsem spustil vim, jeho╛ obrazovka bude rozd∞lena na dv∞ okna. Jedno bude obsahovat soubor histor.htm a druhΘ okna.htm. V²sledek vidφte v²╣e.
╚asto si v╣ak a╛ b∞hem editace vzpomenete, ╛e byste rßdi na chvφli nahlΘdli i do jinΘho souboru a t°eba z n∞j kousek p°evzali do toho aktußlnφho. V takovΘm p°φpad∞ poslou╛φ p°φkaz :split <soubor>, kde <soubor> je jmΘno souboru, kter² se mß v okn∞ objevit. Samoz°ejm∞ je nemusφte zadßvat. V takovΘm p°φpad∞ se vßm objevφ prßzdnΘ okno.

Zavφrßnφ okna se nijak neli╣φ od uzav°enφ souboru - pou╛ijte prost∞ :q (p°φpadn∞ :q!, :wq Φi ZZ - podle toho, zda jste obsah okna zm∞nili a zda jej chcete ulo╛it).

P°i prßci s okny se p°φkaz :q chovß pon∞kud odli╣n∞, ne╛ bez nich. Jestli╛e toti╛ mßte otev°eno dal╣φ okno se stejn²m souborem, nezavφrß se soubor, ale jen okno. Proto se editor nestarß o p°φpadnΘ neulo╛enΘ zm∞ny. Teprve p°i zavφrßnφ poslednφho okna do souboru pou╛ije klasickΘ chovßnφ.

Jestli╛e se zßrove≥ jednß o poslednφ okno editoru, bude souΦasn∞ s oknem ukonΦen i vim. B∞╛n² "neokennφ" re╛im prßce je vlastn∞ re╛im "okennφ" s jedin²m otev°en²m oknem.

Pou╛φvßnφ

Ka╛dΘ okno jest chßpati jako okΘnko, kter²m nahlφ╛φte do obsahu souboru. M∙╛te si jich otev°φt mnoho, ale v praxi nejΦast∞ji pracujete se dv∞ma okny - v jenom je "hlavnφ" editova² soubor a ve druhΘm soubor, do kterΘho momentßln∞ chcete nahlΘdnout Φi z n∞j n∞co zkopφrovat.

V╣echny okennφ operace se vyvolßvajφ dvojicφ znak∙, z nich╛ prvnφ je Ctrl-W (W jako window). Zßkladem pou╛itφ oken je pochopiteln∞ poskakovßnφ z jednoho do druhΘho. Asi nejΦast∞ji pou╛φvan² je p°φkaz Ctrl-W Ctrl-W. P°esune kurzor do okna pod aktußlnφm. Jste-li v nejni╛╣φm okn∞ obrazovky, p°etoΦφ se zp∞t nahoru. vim si pamatuje pozici, ze kterΘ jste dotyΦnΘ okno opustili a p°i nßvratu vßs posadφ p°φmo na ni.

Pozor! P°φkazy pro prßci s okny je t°eba provßd∞t v normßlnφm re╛imu. Ve vklßdacφm toti╛ Ctrl-W vyma╛e slovo p°ed kurzorem.

Pom∞rn∞ intuitivnφ je i dal╣φ zp∙sob p°epφnßnφ oken: po Ctrl-W stiskn∞te n∞kter² z p°φkaz∙ pro pohyb nahoru Φi dol∙ a kurzor p°ejde do sousednφho okna v uvedenΘm sm∞ru. Tak╛e Ctrl-W [╣ipka nahoru] nebo Ctrl-W k posouvajφ kurzor do vy╣╣φho okna, zatφmco p°i Ctrl-W [╣ipka dol∙] Φi Ctrl-W j naopak klesßte.

Pokud va╣e verze vim podporuje my╣, m∙╛ete st°φdat okna prost²m klepnutφm my╣i. Kurzor se toti╛ p°esune na pozici klepnutφ, a╗ je kdekoli. Tak╛e p°φpadn∞ zm∞nφ aktußlnφ okno. Klepnete-li na stavov² °ßdek okna, p°est∞huje se kurzor do n∞j na pozici, ze kterΘ jste je naposledy opustili.

Zm∞ny uspo°ßdßnφ

╚lov∞ku je v∞t╣inou jedno, v jakΘm po°adφ se okna na obrazovce vyskytujφ. Pokud by to nßhodou nebyla pravda, p°φkaz Ctrl-W r rotuje okna sm∞rem dol∙, Ctrl-W R rotuje okna nahoru a Ctrl-W x vym∞nφ aktußlnφ okno s oknem pod nφm.

Naopak pom∞rn∞ Φastou pot°ebou je zm∞na velikosti oken. Implicitn∞ je vim nastaven tak, ╛e p°i vytvo°enφ novΘho okna zm∞nφ velikosti v╣ech stßvajφcφch tak, aby v╣echna okna byla stejn∞ vysokß. Toto chovßnφ °φdφ volba equalalways. Pokud ji vypnete (:set noequalalways), rozd∞lφ se p°i vytvß°enφ novΘho okna to stßvajφcφ na dv∞ poloviny a v²╣ky ostatnφch oken z∙stanou zachovßny.

Kdy╛ vßm stßvajφcφ velikost okna nevyhovuje, m∙╛ete ji upravit. P°φkaz Ctrl-W + ji zv∞t╣uje a Ctrl-W - zmen╣uje. Uvedete-li p°ed nimi Φφslo, zv∞t╣φ/zmen╣φ se o dan² poΦet °ßdk∙. Implicitnφ hodnotou je 1. Pomocφ Ctrl-W _ nastavφte v²╣ku okna p°esn∞ na Φφslo, kterΘ jste uvedli p°ed p°φkazem. Implicitn∞ pou╛ije maximßlnφ v²╣ku okna (v╣em ostatnφm ponechß jedin² °ßdek).

Zm∞nu velikosti lze zajistit i automaticky. Volba winheight toti╛ udßvß minimßlnφ po╛adovanou v²╣ku aktußlnφho okna. Nastavφte-li t°eba :set winheight=10 a p°ejdete s kurzorem do malinkΘho okΘnka, roztßhne se na v²╣ku deseti °ßdk∙. Kdy╛ do winheight ulo╛φte velkou hodnotu (t°eba 100), bude aktußlnφ okno v╛dy rozta╛eno na maximßlnφ plochu a v╣echna ostatnφ degradovßna na jedin² °ßdek. N∞komu takovΘ chovßnφ vyhovuje, n∞kdo dßvß p°ednost stabilnφmu uspo°ßdßnφ oken. Volba je na vßs.

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