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 7.0 jich je bezmála 500). 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 (
term
) -
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) aNONE
(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 (
cterm
) -
Pro režim
cterm
můžete používat stejné hodnoty, jako uterm
. Navíc však máte k dispozici „režimy“ctermfg
pro stanovení barvy písma actermbg
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í (
gui
) -
Režim
gui
se podobá předchozímu. Opět máte k dispozici hodnoty proterm
a k definici barev sloužíguifg
aguibg
. 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é.
Barevná schémata
Nejjednodušší cestou ke změně barevného vzezření editoru je použít některé barevné schéma. Jedná se o ucelený soubor definic vzhledu jednotlivých syntaktických kategorií. Vyplatí se s nimi chvilku experimentovat – zpravidla si najdete mezi existujícími schématy takové, které vašim očím vyhovuje (případně po dílčích úpravách). Je to rozhodně rychlejší, než se snažit definovat barvy všech kategorií kompletně sami.
Barevné schéma změníte příkazem :colorscheme jméno
. Je to ideální kandidát
na umístění do konfiguračního souboru.
Několik schémat je distribuováno jako součást základní instalace
vim. Najdete je v adresáři colors
. Tato schémata můžete v
grafické verzi editoru přepínat pomocí hlavního menu. Jeho položka
Úpravy/Barevné schéma vám nabídne jejich seznam. Stačí si vybrat, což
je ideální pro počáteční experimentování.
Jestliže vybíráte opravdu rádi, zkuste se podívat na vimcolors.com, kde jich jsou k dispozici stovky.
© 2016 Pavel Satrapa