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