17. lokakuu 2012, 14:45

Emacsin salat alkavat selvitä; org kovenee ja muita tarinoita

Tässä on ihmetelty jo hyvän aikaa uusissa maailmoissa, ja pitkälle on päästy. En olisi itsestäni uskonut, että Emacsissa ollaan jonain päivänä näinkin syvällä! Rainlendar on sekin saatu dumpattua orgin hyväksi. Joissain asioissa Vim silti potkii hyvin, eikä aio luovuttaa. En annakaan.

Valmista kauraa Vimille enemmän, l. lievä kaipuuta on ilmassa

Vaikka Emacs sisältääkin “pillit ja pensselit”, niin ainakin minun käyttöympäristössäni (gentoo, vim-syntaksit sun muut asennuksissa mukana) Vim on ollut sanavalmiimpi, siis sisältänyt enemmän syntaksivärjäyksiä ja muuta vastaavaa. On ollut mukava hypätä uuteen syntaksiin, kun Vim on sisältänyt valmiit värjäykset suurella todennäköisyydellä. Vimin tiedostotyyppitunnistuskin on usein kustomoitu erikoisempia muotoja (esimerkiksi uniikkeja tiedostoja varten, esimerkkinä /etc/fstab värjäytyy kuten kuuluu).

Vimin tyypillinen plugari sisältää syntaksivärjäyksen ja ehkä sisennyksen, mutta aika vähän hienoja juttuja. Emacsin plugarit voivat olla hieman harvalukuisempia, mutta niissä on poikkeuksetta joitain kovia liikkuma- ja käsittelykomentoja, joilla tiedostossa jaksaa liikkua hyvin. Tämä on epäilemättä ollut välttämätöntä Emacsin omien liikkumatoimintojen ollessa hyvin epäoptimaalisia. Vi- ja vim-käyttäjät ovat selvinneet vastaavasti pitkälti vimin omilla herkuilla. Ne herkut eivät vain ole aina kaikkein makeimpia. Esimerkiksi Pythonille soisi saavan hyvät liikkumakomennot funktioiden ja metodien välillä. Ehkäpä sellaista on jo tarjolla jossain. Paha sanoa.

Emacsin hienosta Python-moodista ehdin sanoa pari kiittävää sanaa, mutta sen ensimmäisen testin jälkeen koko roska hajosi (IPython-tuellinen Python-moodi siis) eikä ole herännyt henkiin. Olen joutunut kirjoittamaan Pythoniani sitten tavallisen Python-tulkin avustuksella. Vim-IPython on hankalampi saada pystyyn, mutta olen sentään saanut sen toimimaan useampia kertoja. Emacsin lisp-toiminnallisuus on vielä kokematta (konffien kirjoitusta lukuunottamatta, ja siellä kyllä loistetaan), ja siitäkin arvelen, että VimClojuren kanssa tilanne on korkeintaan tasaväkinen. Muiden lispien kanssa toki Emacs vieköön.

Kaiken lisäksi Emacsin kylläkin joustava grafiikka- ja fonttimoottori tuntuu hieman hitaammalta kuin GVimin vastaava. En ole vielä varma, mitä kaikkia psykologisia vaikutuksia näppäinvasteen minimoimisessa on, mutta kyllä se tuntuu hyvältä naputella välillä GVimissä (kuten nyt).

Emacsin voittokulku kuitenkin jatkaa

Emacsin rakenne on sellainen, että pienet ongelmat jyrätään ylivoimaisilla voitoilla. IDO-mode esimerkiksi tarjoaa erinomaiset sumeat haut tiedostoille, asetuksille, mille tahansa. Sen kanssa on ilo vaihdella puskureita ja muuta roinaa.

Muita täydennysratkaisuja ovat esimerkiksi Helm, Icicles ja DoReMi. Näistä viimeinen tarjoaa lennosta vaihdettavia juttuja, joten sitä pitää näistä tutkiskella. Vimille on yksi suuri sumean haun tarjoava plugini, Command-T. Ja se tarjoaa vain kapeakaistaisen paketin, jota ei voi integroida muuhun systeemiin noin vain: pitäisi kirjoittaa käytännössä kaikki kyselyitä tekevät skriptit uusiksi. Emacsin arkkitehtuurissa erilaiset korkeamman asteen idioomit jylläävät, ja kaikenlainen tuntuu onnistuvan kuin taikaiskusta.

Vimin täydennysfunktiotkin (paljon puhuttu omnicompletion ja vähemmän mainittu user-completion) jäävät hieman jalkoihin siinä vaiheessa, kun Emacsin hippie-expand otetaan hihasta. Olen hippien konffannut toistaiseksi täydentämään tiedostopolkuja, mutta sillä voisi ratkaista muutkin ongelmat. Olen jo rivitäydennyksiä kaipaillut. Ja se hienous, että buffer-word -täydennys osaa fiksusti hakea kirjainkoottomasti ja muuntaa kontekstiin sopivaksi.

Vimin snipMaten tilalle otettu Emacsin de-facto täydennys YASnippet on oikein hyvä ja tukee interaktiivista snipettien lisäilyä. Jotain, mitä olen snipMatessa aina kaivannut. YASnippet on kuitenkin iso kokonaisuus, jonka sulattelu on vasta hitaasti alkanut.

Irssin (joka vie aika kovasti muistia tuon Twirssi-lisärin kanssa, nytkin 110 MB) voisi melko tyydyttävästi korvata ERCillä ja jollakin emacsin tusinasta eri Twitter-moodista. Tai siirtyä bitlbeehen, sehän on kypsynyt huimaa vauhtia. Ehkä Emacsin demoni ei ole niin vakaa irc-käyttöön, mutta työn kannalta onkin vain hyvä, jos irc-kanavat eivät sotkeentuisi vakituisemman emacs-työskentelyn kanssa. Olisi siis kaksi emacs-ajoa, joista toinen on serveritön screenissä ajettava ja toinen on demonisoitu yleis-emacs.

Org

Org-mode ja sen syntaktinen herkkuus on alkanut iskostua luuytimeen. Vaikka org on joiltain pieniltä osin hieman omalaatuinen, on se kokonaisuudessaan liian hyvä jättää kakkossijalle. Näen tulevaisuudessani paljon org-päätteisiä dokumentteja eri outputein.

Org toimii siten, että tyhjän sivun syndroomaa on yksinkertaisesti hyvin vaikea saada aikaan. Aina voi naputella listaa esille, ja katsoa, tuleeko sieltä mitään. Ja yleensä tulee.

Org tukee niin paljon suoraan laatikosta: saa värjätyt koodiesimerkit ja saa LaTeX-tuetun matematiikan. Tyylisivuja ja kategorioita ja tageja saa luultavasti värkätä mielinmäärin. Asiasta on myös kirjoitettu vino pino juttuja, joten RSS-feedit ja muut sellaiset saanee helposti kuntoon.

Textile erityisesti saisi saada kyytiä, mutta se tarkoittaisi joitain isompia muutoksia luultavasti blogissani. TextPattern ei koskaan lunastanut niitä lupauksia, joita olen sille kahdesti asettanut. Nykyään selviäisi staattisella sisällöllä, johon org on luonnollisesti kuin luotu. Kommenttejakaan ei tarvitse nykyisin hoitaa omalla palvelimella, kun meillä on Disqusin tapaiset JS-kikkareet.

Rainlendarkin väistyi viimein

Tilanne on eskaloitunut siihen pisteeseen, että olen siirtynyt Rainlendarista viimein näiden kaikkien vuosien jälkeen pois. Tilalle olen kirjoitellut org-agendan tekstimuotoisista tulosteista raavittua conky-tulostetta. Se piirtää kalenterit sopivin merkinnöin ja org-agendaa parille seuraavalle päivälle. Kaikki näyttää siltä puolin hyvältä. Tätä päivääkin olen pitkään hautonut ja nyt tässä kuussa se viimein saatiin kuntoon!

O’Reilly

O’Reillyllä on maanmainio kokeilu menossa: bloggaajat voivat ilmoittautua arvostelemaan kirjoja. Ne saa ilmaiseksi O’Reillyltä arvostelua ja blogijuttua vastaan. Minä listauduin sinne, vaikka tämän suomenkielisen (!) blogin ilmoitin listoille. Joko eivät vaivautuneet lukemaan kieltä tai hyväksyvät myös muunkielisiä mainoksia.

Uuden kirjan saa kun tekee arvostelun edellisestä. Luulisin, että viimeistään siinä vaiheessa joku herää siellä ja katsoo suomenkielisen nollalevikkeisen blogin olevan tarpeeksi turha. Mutta sain minä sieltä jo yhden e-kirjan ihan omaksi: McKinney — “Python for Data Analysis”. Summanmutikassa melko pienestä alkuvalikoimasta valitsin, mutta olen erittäin tyytyväinen valintaani. Kirjassa esitellään IPythonia ja Pythonin numeerisia moottoreita aika hyvällä sävyllä: saa hyvän kickstartin näihin asioihin.

Kuten tuo blogiohjelma velvoittaakin, kirjoitan tänne jossain vaiheessa syvemmän arvostelun kirjasta.

Tageja: , ,

---
---

---

Aiheen vierestä