 |
Zv²raz≥ovßnφ syntaxe
vim dovede rozpoznßvat syntaktickΘ prvky v r∙zn²ch typech soubor∙ a
vizußln∞ (nejΦast∞ji barevn∞) je odli╣ovat. Tak╛e ve zdrojov²ch textech
program∙ budou odli╣n∞ zobrazena klφΦovß slova, identifikßtory a t°eba
°et∞zce znak∙. V HTML Φi textech pro TeX budou zv²razn∞ny p°φkazy, jejich
parametry, komentß°e a dal╣φ prvky. Standardnφ barvy jsou sice t∞╛ce
psychedelickΘ, ale je to mimo°ßdn∞ praktickΘ.
Pokud nechcete p°φli╣ p°em²╣let a jen si u╛φvat, pou╛ijte p°φkaz :syntax on . M∞l by se vßm naskytnout pohled podobn²
tomu, kter² vidφte na nßsledujφcφm obrßzku.
P°φkaz :syntax on naΦte tak zvan² syntaktick²
soubor. Jeho jmΘno urΦφ podle p°φpony aktußlnφho souboru. Distribuce
vim obsahuje syntaktickΘ soubory pro celou °adu typ∙ soubor∙ (ve
verzi 5.3 jich je 120). Najdete je v domßcφm adresß°i editoru (v
Unixu to je /usr/share/vim nebo
/usr/local/share/vim ), konkrΘtn∞ v podadresß°i
syntax .
Syntaktick² soubor obsahuje pravidla pro zv²raz≥ovßnφ danΘho typu souboru.
Jestli╛e se vßm nelφbφ, m∙╛ete si je upravit bu∩ p°φmo v n∞m (pokud k tomu mßte
oprßvn∞nφ) nebo v lokßlnφ konfiguraci vim.
Zv²razn∞nφ je tvo°eno dv∞ma slo╛kami. Nejprve jsou definovßny syntaktickΘ
polo╛ky a skupiny. V podstat∞ °φkajφ, jak² text mß b²t za°azen do kterΘ
kategorie. Druhß slo╛ka pak urΦuje, jak majφ b²t jednotlivΘ polo╛ky
prezentovßny.
Definice syntaktick²ch polo╛ek
Pro tento krßtk² text je problematika definice syntaktick²ch polo╛ek p°φli╣
obsßhlß. Je realizovßna sadou p°φkaz∙ :syntax .
Definujφ jednotlivΘ vzory, kterΘ majφ b²t v textu vyhledßvßny a za°azujφ je do
syntaktick²ch skupin.
Existujφ t°i typy vzor∙. KlφΦovΘ slovo je tvo°eno pouze "b∞╛n²mi
neprßzdn²mi znaky". Jejich v²Φet obsahuje volba iskeyword . Vzoru typu shoda m∙╛e vyhov∞t
libovoln² °et∞zec, kter² splnφ vzorem stanovenß pravidla. Poslednφm typem vzoru
je oblast, u nφ╛ definujete, jak vypadß zaΦßtek a konec. Syntaktickß
polo╛ka pak bude uplatn∞na na cel² text mezi nimi.
Chcete-li se o definovßnφ syntaktick²ch polo╛ek dozv∞d∞t vφce, pou╛ijte :help syntax a prohlΘdn∞te si syntaktickΘ soubory z
distribuce editoru.
Zv²raz≥ovßnφ
Zatφmco definice syntaktick²ch kategoriφ je ╣amanismus pom∞rn∞ hrubΘho zrna, do
zm∞n v jejich podob∞ m∙╛e bez tragiΦt∞j╣φch nßsledk∙ zasahovat i laik. Jeho
zßkladem je p°φkaz
:highlight <skupina> <re╛im>=<hodnota>
<skupina> je nßzev syntakticΘ skupiny, kterΘ se zv²razn∞nφ t²kß.
Ten musφte odhalit ze syntaktickΘho souboru. Zde budu chovßnφ p°edvßd∞t na
skupin∞ Normal , kterß reprezentuje b∞╛n² text a pou╛φvß se pro ty
znaky, kterΘ nebyly za°azeny do ╛ßdnΘ jinΘ.
<re╛im> urΦuje, pro jak² re╛im zobrazenφ je zv²razn∞nφ urΦeno.
vim rozli╣uje t°i: b∞╛n² terminßl (term ), barevn²
terminßl (cterm ) a grafickΘ u╛ivatelskΘ rozhranφ
(gui ).
- B∞╛n² terminßl
- Zde se pro <hodnotu> nabφzejφ pouze nejzßkladn∞j╣φ zp∙soby
zv²razn∞nφ, jako je
bold (tuΦn∞), underline
(podtr╛enφ), reverse (inverznφ zobrazenφ), italic
(kurzφva) a NONE (v╣echno vypne). Navφc vß╣ terminßl nemusφ ani
v╣echny pou╛φvat.
DoporuΦuji dßvat si pozor na zv²razn∞nφ podtr╛enφm, proto╛e spl²vß se znakem
"podtr╛φtko" (_). Pokud v programech pou╛φvßte identifikßtory obsahujφcφ
podtr╛φtko, je to pom∞rn∞ nep°φjemnΘ.
- Barevn² terminßl
- Pro re╛im
cterm m∙╛ete pou╛φvat stejnΘ hodnoty, jako u
term . Navφc v╣ak mßte k dispozici "re╛imy" ctermfg
pro stanovenφ barvy pφsma a ctermbg pro barvu pozadφ.
P°φklad:
╪ekn∞me, ╛e bych cht∞l mφt standardnφ text vyveden
tuΦn²m ╛lut²m pφsmem na tmav∞ modrΘm
pozadφ
|
(jß bych tedy necht∞l, mßm svΘ oΦi rßd, ale vezm∞me to
jako p°φklad). Pou╛il bych p°φkaz :highlight Normal cterm=bold ctermfg=Yellow ctermbg=DarkBlue
- GrafickΘ u╛ivatelskΘ rozhranφ
- Re╛im
gui se podobß p°edchozφmu. Op∞t mßte k dispozici
hodnoty pro term a k definici barev slou╛φ guifg a
guibg . Tentokrßt navφc m∙╛ete jako jejich hodnotu p°φmo definovat
slo╛enφ barvy konstrukcφ "#rrggbb", kde rr, gg a bb
jsou dvojice ╣estnßctkov²ch Φφslic udßvajφcφch postupn∞ intenzitu ΦervenΘ,
zelenΘ a modrΘ slo╛ky barvy.
P°φklad:
olivovΘ pφsmo na lososov∞ r∙╛ovΘm
pozadφ
|
(fuj!) bych vyrobil p°φkazem
:highlight Normal gui=bold guibg=#ff9999 guifg=#666600
K dispozici mßte je╣t∞ "re╛im" font , kter²m m∙╛ete pro danou
syntaktickou skupinu p°edepsat druh pφsma. Ov╣em pozor! V╣echna pou╛itß pφsma
musφ mφt stejnou velikost znaku. Jinak mohou b²t v²sledky nep°edvφdatelnΘ.
© 1997, 1998 Pavel Satrapa
|