 |
Jak vypadß vim
Vzhled vim nenφ nijak neobvykl² ani osl≥ujφcφ. Jeho obrazovka je
rozd∞lena na obvyklΘ dv∞ Φßsti: editaΦnφ pole, zabφrajφcφ jejφ drtivou v∞t╣inu,
a stavov² °ßdek, pro n∞j╛ je vyhrazen poslednφ °ßdek obrazovky.
V dal╣φm textu budu malinko p°edbφhat d∞nφ a prozradφm, jak lze ovliv≥ovat
vzhled vim. Budu takΘ operovat s pojmy, kterΘ jsem dosud nevysv∞tlil
(nap°φklad re╛imy Φinnosti). Nenechte se tφm vyvΘst z
rovnovßhy a pozd∞ji se k tΘto strßnce p°φpadn∞ vra╗te.
Zobrazenφ textu
Text je zobrazen celkem p°irozen∞ po jednotliv²ch °ßdcφch. Ji╛ v p°edchozφ
kapitole jsem naznaΦil, ╛e neexistujφcφ °ßdky (pokud obsah souboru nedokß╛e
naplnit celou obrazovku) jsou znßzorn∞ny prßzdn²m °ßdkem, zahßjen²m znakem
vlnka (~ ).
ProblΘm vyvolßvajφ °ßdky, jejich╛ dΘlka p°esahuje kapacitu obrazovky.
vim je obvykle rozd∞lφ do n∞kolika po sob∞ jdoucφch °ßdk∙. TakovΘ
chovßnφ lze zapnout p°φkazem :set wrap . Jestli╛e
se takto rozd∞len² °ßdek ocitne ve spodnφ Φßsti obrazovky, m∙╛e se stßt, ╛e
jeho konec (ulo╛en² na nßsledujφcφch °ßdcφch) se ji╛ na obrazovku nevejde. V
takovΘm p°φpad∞ je poslednφ °ßdek nahrazen prßzdn²m °ßdkem, zahßjen²m znakem
zavinßΦ (@ ). Signalizuje cosi jako "pokraΦovßnφ p°φ╣t∞". Kdy╛
posunete obsah obrazovky vzh∙ru, postupn∞ se objevφ dal╣φ pokraΦujφcφ °ßdky.
Zcela fatßlnφ situace nastane, kdy╛ se objevφ extrasuperveledlouh² °ßdek, kter²
musφ b²t rozlo╛en do vφce °ßdk∙, ne╛ je v²╣ka obrazovky. Jeho konec pak za
╛ßdn²ch okolnostφ neuvidφte. vim zobrazφ, co se do n∞j vejde. Pokud
°ßdek zaΦφnß na prvnφm °ßdku obrazovky, celou ji zaplnφ a je╣t∞ by bylo pot°eba
pokraΦovat, poslednφ °ßdek editor naplnφ sam²mi znaky @ . Tφm
naznaΦuje, ╛e konec °ßdku je nezobraziteln². Pokud se text posune o jeden °ßdek
vzh∙ru, vyjede zaΦßtek °ßdku z obrazovky a tudφ╛ cel² zmizφ.
Rozd∞lenφ v re╛imu wrap standardn∞ probφhß bez ohledu
na obsah °ßdku. vim sm∞le rozd∞lφ °ßdek uprost°ed slova. Pokud v╣ak
zapnete :set linebreak , mß povoleno rozd∞lovßnφ
jen mezi slovy, tedy v mφst∞ v²skytu mezery nebo tabulßtoru. Dlu╛no p°iznat, ╛e
v tomto re╛imu jen obtφ╛n∞ poznßte, kter² °ßdek je rozd∞len automaticky pro
pot°eby zobrazenφ a kdy se jednß o dva °ßdky editovanΘho textu. Zp∞t k
p∙vodnφmu "tvrdΘmu" re╛imu rozd∞lovßnφ se m∙╛ete vrßtit pomocφ :set nolinebreak .
Jestli╛e vßm toto automatickΘ rozklßdßnφ °ßdk∙ nevyhovuje, m∙╛ete jej vypnout
p°φkazem :set nowrap . vim pak ponechß
ka╛d² °ßdek na jedinΘm °ßdku a pokud p°esahuje ╣φ°ku obrazovky, zbytek prost∞
zmizφ za jejφm okrajem. Samoz°ejm∞ na n∞j lze p°esunout kurzor a tak si jej
prohlΘdnout. To je jedinΘ °e╣enφ v²╣e popsanΘho problΘmu se super°ßdkem.
V n∞kter²ch p°φpadech (nap°φklad p°i editaci zdrojovΘho textu programu) se m∙╛e
hodit nechat si zobrazit Φφsla jednotliv²ch °ßdk∙. To zajistφ :set number . V takovΘm p°φpad∞ by v╣ak °ßdky m∞ly b²t
o n∞co krat╣φ (pro Φφslo je vyhrazeno 8~znak∙ na zaΦßtku). Pokud tu a tam
n∞kter² dΘlku p°ekroΦφ, doporuΦuji kombinovat tento re╛im se :set nowrap . PokraΦovacφ °ßdky toti╛ zaΦφnajφ od
prvnφho sloupce obrazovky a nemile se mφchajφ s Φφsly. O likvidaci Φφsel °ßdk∙
se postarß :set nonumber .
Stavov² °ßdek
Jak b²vß zvykem, obsahuje informace o va╣φ momentßlnφ Φinnosti. Zobrazuje t°i
informace:

re╛im Φinnosti
- Pokud je levß Φßst stavovΘho °ßdku prßzdnß, nachßzφte se v normßlnφm
re╛imu (nebo je zobrazovßnφ re╛imu vypnuto :-). V klasickΘm vklßdacφm re╛imu
zde najdete °et∞zec
-- INSERT -- , v jeho p°episovacφ
variant∞ -- REPLACE -- . Zobrazovßnφ zapnete/vypnete
p°φkazy :set showmode a
:set noshowmode .

zaΦßtek p°φkazu
- ╪ada p°φkaz∙ vim se zadßvß posloupnostφ znak∙. Nap°φklad
chcete-li smazat v╣e a╛ do konce odstavce, pou╛ijete kombinaci
d} . Mßte-li zapnutou tuto volbu, zhruba v pravΘ t°etin∞
obrazovky se postupn∞ objevujφ znaky, tvo°φcφ zadßvan² p°φkaz. Mßte tedy
vizußlnφ kontrolu, zda zadßvßnφ postupuje podle va╣ich p°edstav. Zapφnß a
vypφnß se p°φkazy :set showcmd a
:set noshowcmd .

pozici kurzoru
- Poloha kurzoru je zobrazena v pravΘ Φßsti stavovΘho °ßdku. Sklßdß se ze
dvou Φφsel, odd∞len²ch Φßrkou. Prvnφ udßvß Φφslo °ßdku a druhΘ Φφslo sloupce
znaku, na n∞m╛ se momentßln∞ nachßzφ kurzor. Zapnout a vypnout tuto
signalizaci m∙╛ete p°φkazy
:set ruler a
:set noruler .
V okam╛iku, kdy v normßlnφm re╛imu napφ╣ete dvojteΦku, zm∞nφ se stavov² °ßdek
na °ßdek p°φkazov². Kurzor se p°est∞huje sem a umo╛nφ vßm napsat odpovφdajφcφ
p°φkaz. Nap°φklad v²╣e zmi≥ovanΘ instrukce pro ovlivn∞nφ vzhledu vim
pat°φ do tΘto skupiny.
© 1997, 1998 Pavel Satrapa
|