2. syyskuu 2012, 19:09

Think VimOrganizer.

Asiat rullaavat eteenpäin tyydyttävää tahtia tämän uuden tiedonhallinnan kanssa. Nyt olen säätänyt kuntoon jokaisesta kulmasta toimivan org-capture -variantin, jolla saan minimoitua kynnystä ideoiden talteensaattamiseksi. VimOrganizer tuntuu riittävän hyvältä toistaiseksi, vaikka sitä toistakin sietäisi kokeilla ainakin maun vuoksi. Tämä on tavallaan myös uuden tietämyshallintasarjan kolmas postaus. Ensimmäisessä minulla oli joitain ideoita, toisessa on orgmodea ja nyt on luvassa hienosäätöä.

Org-capture on kaikkialla

Emacsin orgmodeen liittyvä aliohjelmanen org-capture on luonteeltaan hyvin yksinkertainen. Avaa uusi puskuri päivämääräleimalla ja anna käyttäjän kirjailla vähän syötettä sisään. VimOrganizer toistaa saman toiminnallisuuden (ja Vim-orgmode ei toistaiseksi toista). Näissä on toki se ongelma, että toimivat vain editorien ympäristössä. Koska org-formaatti on luonteeltaan varsin yksinkertainen, päädyin kirjoittamaan järjestelmänvälisen ratkaisun; org_capture.sh:

#!/bin/bash
# do a thought in Org Capture manner.

ORGCAPTUREFILE="$HOME/thinktank.org"
ORGDATE=`date +':<%Y-%m-%d %a %H:%M>'`

if [ "gui" == "$1" ]
then
    # gui
    thought=`/usr/bin/zenity --width=400 --entry --text='Think hard'`
elif [ -z "$1" ]
then
    # term
    read -p 'Think hard: ' thought
else
    # cli
    thought="$*"
fi

# Test given input. 
if [ -z "$thought" ] ; then
    exit
fi

echo "*" $thought >> $ORGCAPTUREFILE
echo " " $ORGDATE >> $ORGCAPTUREFILE

Lyhyellä koodilla sain aikaan kolmella käyttöliittymällä hallinnoitavan rivikaapparin, joka puskee päivämääräleiman kanssa idean odottelemaan käsittelyä. Tämän ohjelman sitten bindasin peräti kolmella tavalla:

  • zsh-aliakseksi (koska taikasana noglob pitää ympätä mukaan),
  • zsh-pikanäppäimeksi (C-t) (laiskuus huipussaan…),
  • X-pikanäppäimeksi (käynnistyy GUI-kyselyksi: Win-d).

Neljäs kelvollinen tapa olisi ehkä vielä koodattava mukaan. Se olisi käynnistää Vim sillä “oikealla” OrgCapture-toiminnolla. vim/gvim -c OrgCapture riittäisi itseasiassa. (Emacsisteille vastaavasti jotain emacs -e '(org-capture)':n tapaista. Sen voisi jopa heittää tuon gui-option tilalle. Zenity on uusi ‘GDialog’-versio, että mistään hienosta ei ole kyse.

Capturefilestä organisoiduksi

Orgmode sisältää luonnollisesti kohtalaisen patterin erilaisia refile-toimintoja. VimOrganizer toteuttaa näitä, Vim-Orgmode ei. Kyseinen toiminnallisuus ei ole kamalan tärkeätä kyllä, mutta sillä voi sentään nopeasti siirtää näitä ykköstason puita mielivaltaiseksi alipuuksi mielivaltaiseen org-tiedostoon. Toiminto tukee luonnollisesti oletustiedostoja, joten voin kirjailla dataa nopeaan tahtiin vaikka minne. Tähän voi myös nopeahkosti toteuttaa tagitusta, joten ajatuksistaan saa kaiken irti.

Toki voisin jättää erillisen capturefile-vaiheen pois välistä, mikä onkin käynyt aiemmin mielessäni. Yksi haitta tuleekin oitis mieleen: en voi seurata kypsymättömien ajatusten lukumäärää noin helposti. Lisäksi ajatukset voivat teoriassa tulla monenlaisesta suunnasta (esimerkiksi nethack- tai Civ 5 -pelitilanteiden kommentoiminen pelien aikana voi tuottaa suuren määrän spämmiä) ja miten saada kaikki nätisti piiloon, eli organisoiduksi.

Vim-orgmode on sitten out?

Vim-orgmode voi ehkä olla kypsempi kuin VimOrganizer, mutta ominaisuuksia siitä ainakin puuttuu. Refiling ensimmäisenä, mutta monenlainen tärkeämpi Emacs-integraatio uupuu kanssa. Taulukot ja koodiblokit (ja muu “literal programming” -menetelmä!) puuttuu toistaiseksi. Eli kyllä, pysyn toistaiseksi VimOrganizerissa.

Mutta ei se tarkoita, että on valittava kahdesta. Vim-orgmode ei ole vain Vim-plugin: suurin osa koodikantaa kuuluu Python-pohjaiseen komentoriviohjelmaan, jonka avulla olisi määrä manipuloida org-tiedostoja ohjelmallisesti. Otan sopivimmat palat käyttöön, siinä vaiheessa viimeistään kun minun pitää saada TODO-eksportit ulos tiedostoistani siististi.

Todot orgiin jossain vaiheessa

Ja pian käykin niin, että Rainlendar saa väistyä TODO-merkintöjen pidolta. Kenties jossain vaiheessa myös kokonaisuudessaan kalenterimerkinnöiltä. Sitä varten Vim-orgmoden pythonskriptit tulevat käyttöön. Lisäksi pitää tietenkin kehitellä menetelmiä, joilla saan merkinnät näkösälle. Rainlendarille saatavat “Orglendar”-skriptit olisivat komeita, mutta Xmonad ei sellaisia tue. Ehkä Dzen2 tukee, tai jokin muu ohjelma. Conky ei suoraan tunnu toimivan kunnolla sellaisen datan kanssa. Toisaalta voinhan aina ajaa useita Conky-instansseja, joista toinen voisi tulevaisuudessa ajaa Org-agendaa kalentereineen ja Todoineen. Voi, elämme jännittäviä aikoja!

Tageja: , , ,

---
---

---

Aiheen vierestä