Zvyraznovani syntaxe

vim dovede rozpoznavat syntakticke prvky v ruznych typech souboru a vizualne (nejcasteji barevne) je odlisovat. Takze ve zdrojovych textech programu budou odlisne zobrazena klicova slova, identifikatory a treba retezce znaku. V HTML ci textech pro TeX budou zvyrazneny prikazy, jejich parametry, komentare a dalsi prvky. Standardni barvy jsou sice tezce psychedelicke, ale je to mimoradne prakticke.

Pokud nechcete prilis premyslet a jen si uzivat, pouzijte prikaz :syntax on. Mel by se vam naskytnout pohled podobny tomu, ktery vidite na nasledujicim obrazku.

[Obrazek]

Prikaz :syntax on nacte tak zvany syntakticky soubor. Jeho jmeno urci podle pripony aktualniho souboru. Distribuce vim obsahuje syntakticke soubory pro celou radu typu souboru (ve verzi 5.3 jich je 120). Najdete je v domacim adresari editoru (v Unixu to je /usr/sharevim nebo /usr/local/sharevim), konkretne v podadresari syntax.

Syntakticky soubor obsahuje pravidla pro zvyraznovani daneho typu souboru. Jestlize se vam nelibi, muzete si je upravit bud primo v nem (pokud k tomu mate opravneni) nebo v lokalni konfiguraci vim.

Zvyrazneni je tvoreno dvema slozkami. Nejprve jsou definovany syntakticke polozky a skupiny. V podstate rikaji, jaky text ma byt zarazen do ktere kategorie. Druha slozka pak urcuje, jak maji byt jednotlive polozky prezentovany.

Definice syntaktickych polozek

Pro tento kratky text je problematika definice syntaktickych polozek prilis obsahla. Je realizovana sadou prikazu :syntax. Definuji jednotlive vzory, ktere maji byt v textu vyhledavany a zarazuji je do syntaktickych skupin.

Existuji tri typy vzoru. Klicove slovo je tvoreno pouze "beznymi neprazdnymi znaky". Jejich vycet obsahuje volba iskeyword. Vzoru typu shoda muze vyhovet libovolny retezec, ktery splni vzorem stanovena pravidla. Poslednim typem vzoru je oblast, u niz definujete, jak vypada zacatek a konec. Syntakticka polozka pak bude uplatnena na cely text mezi nimi.

Chcete-li se o definovani syntaktickych polozek dozvedet vice, pouzijte :help syntax a prohlednete si syntakticke soubory z distribuce editoru.

Zvyraznovani

Zatimco definice syntaktickych kategorii je samanismus pomerne hrubeho zrna, do zmen v jejich podobe muze bez tragictejsich nasledku zasahovat i laik. Jeho zakladem je prikaz
:highlight <skupina> <rezim>=<hodnota>
<skupina> je nazev syntaktice skupiny, ktere se zvyrazneni tyka. Ten musite odhalit ze syntaktickeho souboru. Zde budu chovani predvadet na skupine Normal, ktera reprezentuje bezny text a pouziva se pro ty znaky, ktere nebyly zarazeny do zadne jine.

<rezim> urcuje, pro jaky rezim zobrazeni je zvyrazneni urceno. vim rozlisuje tri: bezny terminal (term), barevny terminal (cterm) a graficke uzivatelske rozhrani (gui).

Bezny terminal
Zde se pro <hodnotu> nabizeji pouze nejzakladnejsi zpusoby zvyrazneni, jako je bold (tucne), underline (podtrzeni), reverse (inverzni zobrazeni), italic (kurziva) a NONE (vsechno vypne). Navic vas terminal nemusi ani vsechny pouzivat.

Doporucuji davat si pozor na zvyrazneni podtrzenim, protoze splyva se znakem "podtrzitko" (_). Pokud v programech pouzivate identifikatory obsahujici podtrzitko, je to pomerne neprijemne.

Barevny terminal
Pro rezim cterm muzete pouzivat stejne hodnoty, jako u term. Navic vsak mate k dispozici "rezimy" ctermfg pro stanoveni barvy pisma a ctermbg pro barvu pozadi.

Priklad:
Rekneme, ze bych chtel mit standardni text vyveden
tucnym zlutym pismem na tmave modrem pozadi
(ja bych tedy nechtel, mam sve oci rad, ale vezmeme to jako priklad). Pouzil bych prikaz :highlight Normal cterm=bold ctermfg=Yellow ctermbg=DarkBlue
Graficke uzivatelske rozhrani
Rezim gui se podoba predchozimu. Opet mate k dispozici hodnoty pro term a k definici barev slouzi guifg a guibg. Tentokrat navic muzete jako jejich hodnotu primo definovat slozeni barvy konstrukci "#rrggbb", kde rr, gg a bb jsou dvojice sestnactkovych cislic udavajicich postupne intenzitu cervene, zelene a modre slozky barvy.

Priklad:
olivove pismo na lososove ruzovem pozadi
(fuj!) bych vyrobil prikazem :highlight Normal gui=bold guibg=#ff9999 guifg=#666600

K dispozici mate jeste "rezim" font, kterym muzete pro danou syntaktickou skupinu predepsat druh pisma. Ovsem pozor! Vsechna pouzita pisma musi mit stejnou velikost znaku. Jinak mohou byt vysledky nepredvidatelne.

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