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.

[Obrßzek]

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Θ.

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