Přeskočit na obsah

Vimscript

Z Wikipedie, otevřené encyklopedie

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

  1. 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ů.
  2. Otestování, zda definovaný adresář je skutečně adresář a (konjunkce) zda je zapisovatelný.
  3. Pokud podmínka dopadne úspěšně, je nastavena interní proměnná editoru určující adresář pro zálohování a ..
  4. .. 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

Externí odkazy

Šablona:Pahýl - software