22. syyskuu 2012, 19:01

Emacs has me.

Emacs alkaa ottaa otetta minusta. Olen yrittänyt olla pyristelemättä vastaan, eikä ole asiaa vastaan mitään sanottavaa. Kaikki ne herkut ja parastakin parempi Evil-moodi, kaikki pelaavat yhteen. Matt Briggs on täysin samoilla linjoilla kanssani kaikista asioista. Samoiten Shinobun kanssa on helppoa olla samaa mieltä. Kannattaa lukaista, koska nyt en ole siinä kunnossa, että paremminkin osaisin formuloida. Turistaan sekalaisia sekavia sen sijaan.

Org-mode, tuo porttiohjelma

Joillekin se varmaan on SLIME, toisille artist-mode. Ilman org-modea en olisi luultavasti jaksanut vähääkään tutkia Emacsin nykyisiä vim-toteutuksia. Ja org-mode, vaikka totesimmekin viikko sitten VimOrganizerin olevan erittäin riittävä paketti organisointiin, on aika ehdoton ratkaisu kaikkeen.

Emacsin loistavuus tulee esille sen laajennettavuudessa

Tämä on tietysti aika triviaali toteamus. Elisp on hyvä lisp, sopiva tämmöiseen editoriympäristöön. Ja miten hyvin kaikki eri palikat tuntuvat pelaavaan keskenään. Kaikki ovat funktioita; näppäimet funktioihin ja päinvastoin. Vielä on joitain näppäinkarttajuttuja selviteltävänä, mutta kaikin puolin kaikki tuntuu selkeältä ja helpolta. Lähdekoodit saa helposti esille ja voi tutkia sisuskaluja. Aito hakkerin työkalu. Suurimmat loistoelämykset tänään ovat olleet irkin parissa:

  • ERC on Emacsin rakastettava irc-klientti, joka työntää irc-datan puskuriin ja viimeiselle riville voi naputella omiaan. Ja tämä kaikki toimii laatikosta suoraan Evilin kanssa. ERC+Evil on se VimIRC, jota en koskaan saanut käyttää. Irssi alkaa tuntua nopeasti hyvin rajoittuneelta ratkaisulta.
  • wgrep tuli esille, mutta en vielä kokeillut. Tee (globaali) greppaus ja puskuriin syntyvä grep-tulostus on editoitavissa siten, että muutokset siirtyvät alkuperäisiin tiedostoihin. Tajunnanräjäyttävää, kuten wdired oli aikoinaan. No, on se yhäkin. Wdiredin (writable dired) kanssa räjäytti tajunnan se, että toimii Evilin kanssa sulavasti yksiin.

Mahtavaa. Myös Emacsin mukanatulevaa Python-moodia olen käytellyt kouluhommissa hieman. Se toimii todella loistavasti ja sisältää IPython-tuet kuten kuuluukin. Tuo moodi pyyhkii lattioita vimille sorvaamanieni ratkaisujen kanssa, eikä edes yritä.

Migraatio on lähtenyt sulavasti liikkeelle

Evil-moden mahtavuutta ei voi mitenkään olla korostamatta. Se sujahtaa niin kitkattomasti sekaan, että vallan ihmetyttää. Vielä ei voi sanoa, että Emacs+Evil olisi parempi vim kuin vim, mutta aika pian tämän väitteen voi typeränä laukoa ilmoille.

Kumpaakin editoria käytän perustehtävissä yhtä sulavasti nyt. Jos Emacs ei ole päällä, niin otan luultavasti vimin käteen nopeamman käynnistymisen takia. Emacsin palvelimen konffattuani sekin siirtyy historiaan. Ja kun emacsin minipuskurin täydennystoimintoja vähän päivittelee (ido, icicles, anything, command-t, … lista on loputon!) niin vim alkaa jäädä taakse.

Emacsin täydennystoiminnot ovat ehkä asia, mikä eniten kanittaa — tai on erilaisin vimiin nähden. Täydennykset eivät avaa listaa kuten vimissä, vaan nimeä pitäisi jaksaa itse täydennellä. Toisaalta Emacs-filosofiaan kuuluu sumeat osumat ja niiden avulla eksaktien mätsäyksien suora hakeminen todennäköisesti muuttuu tanssiksi. Hippie-expandin avulla säädinkin jo esimerkiksi vimin C-x C-f -tiedostopolkutäydennyksen reilaan. Onnistuneesti tulin paikalle Emacs 24:een, sillä tässä on kokonaan uudistettu täydennysratkaisu Alt-Tabin alla. Nimeltään pcomplete vastaa tavallaan Vimin omnicompletea, mutta kontekstispesifisesti. Siihen voi kytkeytä kuka vain, ja tarjota sopivaa täydennettävää. Valtaisat tuet on ollut lähes kaikkialla. Emacsin konffaaminenkin on kuin unelmaa erittäin sulavan elisp-tuen ansiosta. VimScript ei ole saanut kotikentällään läheskään yhtä hyvää palvelua.

Emacsin risuja (lähinnä tutkimuskohteita)

Emacsissa ei yksinkertaisesti voi olla esteitä. Vain hidasteita. Vaikka minulla on muualla tietysti akuutimpi ja kattavampi lista asioista, joita tutkin jossain vaiheessa, voisin tänne hieman jäsennellä:

  • leikepöytäjutut: Evil ei taida toteuttaa rekistereitä kovin syvällisesti, joten minun pitää tutustua emacsin omiin yank ring -systeemeihin. Erityisesti interaktio ulkopuolen kanssa huolettaa. Graafisesta emacsista maalattu teksti ei siirry valintaleikepöydälle. Jokin xclip-moodi tuli asennettua, joten ehkä se auttaa. Vimin "+-rekisteri on loistava juttu.
  • textile-moodeja ei ole. Vimillekin on vain heppoiset ratkaisut, mutta Emacsin textile-moodi toteuttaa vain köyhän värjäyksen, joka ei taida edes toimia terminaalissa (värit eivät ainakaan näkyneet). No, Textile on kuoleva muoto (saatan siirtää blogin orgin päällä pyöriväksi) ja vimiähän saa käytellä.
  • näppäinkartat. Jokainen major mode ilmeisesti luo omalla nimellään kulkevan näppäinkartan käyttäjien käsiteltäväksi, mutta minun pitää vähän pyöritellä niitä ennen kuin osaan mitään tehdä evilin kanssa.
  • apuikkunat aukeilevat vähän minne sattuu, mikä on omituista. Ehkä se on orgin omituisuuksia, ehkä jotain konffattavaa…

Seuraavaksi pitää kai ryhtyä opiskelemaan oman major-moodin koodaamista. Summer kaipaisi emacs-tukea…

Tageja: ,

---
---

---

Aiheen vierestä