Olen tätä kohtaa pitkään passannut, sillä olen elänyt kuvitelmassa, että ratkaisu siihen löytyy heti ensimmäisen googlauksen takaa. Olinpa minä väärässä sen suhteen, vim kun ei näytä sisältävän funktiota satunnaisluvuille. Ja olipa tuossa vähän muutakin työtä.
Ratkaisumenetelmä johdattaa tuttua polkua, kun valitaan joukosta satunnainen alkio.
let schemes = ["papayawhip", "slate"] execute "colorscheme ".schemes[strftime("%S") % (len(schemes))]
Eipä sen kummempi. Yksityiskohtia ei tarvitse käydä googlaamassa: strftime("%S")
palauttaa senhetkisen kellonajan sekunnit ja %
toimii standardina modulona.
Mikä aiheutti tämän koodauksessa harmaita hiuksia, oli epätietoisuus execute
:n tarpeesta tässä tilanteessa. Pelkkä rivi
colorscheme schemes[strftime("%S") % (len(schemes))]
Ei tietenkään riittänyt, eikä edes lisätä normal
-komentoa eteen. Olisihan se jotenkin pitänyt päätellä, ettei vim tällä kertaa luekaan muuttujia “sisään”, ellei sitten muodosteta merkkijonoa ja sitten suoriteta sitä executella. Ehkäpä nyt jatkossa muistaa.