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