Vimscript
Šablona:Infobox programovací jazyk
Vimscript, (nebo Vim script), je dynamicky typovaný imperativní skriptovací jazyk textového editoru Vim.
Uživatel pomocí Vimscriptu může do editoru nadefinovat nové schopnosti, zefektivnit často prováděné úlohy, pozměnit chování standartních schopností editoru či je zcela nahradit svými algoritmy. Pluginy a makra Vimu jsou psána práve ve Vimscriptu. Podobá se ostatním skriptovacím jazykům jako je například Perl. Vimscript může být zapisován přímo v prostředí Vimu ve formě příkazů nebo (běžnější) uložen v obyčejném textovém souboru s koncovkou .vim.
Ukázka Vimscriptu
let bakdir = $HOME . "/.vim/backup"
if isdirectory ( bakdir ) && filewritable ( bakdir )
let &backupdir = bakdir
set backup
endif
Tento text může být vložen například do souboru "~/.vimrc" (konfigurační soubor editoru Vim) a editor jej provede při každém svém spuštění. Význam je následující:
- Nastavení proměnnou 'bakdir' jako spojení obsahu proměnné '$HOME' (proměnná prostředí, obsahující umístění domovského adresáře v UN*Xu) a řetězce. Proměnná 'bakdir' poté obsahuje absolutní cestu ukazující na adresář určení k zálohování editovaných souborů.
- Otestování, zda definovaný adresář je skutečně adresář a (konjunkce) zda je zapisovatelný.
- Pokud podmínka dopadne úspěšně, je nastavena interní proměnná editoru určující adresář pro zálohování a ..
- .. zálohování je zapnuto
Vlastnosti Vimscriptu
- Proměnné
- Výrazy
- Regulární výrazy
- Řídící konstrukty
- Podmínka
- Cyklus
- Funkce
- Seznamy a slovníky
- Vyjímky
Komentáře
Komentáře se ve Vimscriptu zapisují dvojitými uvozovkami (") a platí od místa uvedení až do konce řádky.
Definování proměnných
Proměnné se definují klíčovým slovem let. Syntaxe je následující
let název_proměnné = budoucí_hodnota_proměnné
Zápis konstant
Protože je Vimscript dynamicky typovaný, není potřeba definovat typ konstanty a Vimscript rozeznává dva druhy - řetězce a čísla.
let x = 4 "proměnná 'x' obsahuje číslo v desítkové soustavě let y = 04 "proměnná 'y' obsahuje číslo v osmičkové soustavě let z = 0x4 "proměnná 'z' obsahuje číslo v šestnáctkové soustavě let a = "ahoj" "proměnná 'a' obsahuje řetězec let b = 'ahoj' "proměnná 'b' obsahuje řetězec
Výrazy
Vimscript disponuje základními operátory pro psaní výrazů. Umožňuje tak sčítání, odečítání, násobení, dělení a modulo. Tyto operátory jsou infixové. Dále jsou k dispozici operátory porovnání, které nabývají dvou hodnot - pravda či nepravda. Tyto porovnávací operátory jsou rovnost (==), nerovnost (!=), větší než (>), menší než (<), větší nebo rovno (>=), menší nebo rovno (<=). Dále je také možné použít operátor aplikace regulárního výrazu shoduje se (=~) či neshoduje se (!~). Při porovnání řetězců je možné explicitně definovat chování operátorů vzhledem k velikosti písmen pomocí přípon ? a #. Detailnější popis obsahuje dokumentace.
Řídící konstrukty
Vimscript má k dispozici základní řídící konstrukty jako podmínku a cyklus.
Syntaxe podmínky:
if {podmínka1}
" první větev
elif {podmínka2}
" druhá větev
else
" třetí větev
endif