WWW-diary of Juhapekka Tolvanen:

Saturday, 02 October 2004




05:02:46 EEST @126

Tänään masensin emacsiini elisp-kikkareita aikamoisen kasan. Erityisen suuri ja tärkeä paketti oli Tiny Tools, vaikkakin otin siitä käyttöön vain kolme varsinaista elisp-kikkaretta: tinygnus, tinyload ja tinyprocmail.

Meenpä nukq.





13:27:08 EEST @477

Heräsin jotain tunti sitten.





19:25:24 EEST @725

Nysväsin jo eilen jonkin verran sekä XEmacsin että GNU Emacsin värejä ja tein sitä tänäänkin. Niissä on omat kommervenkkinsä: Ne voi säätää kolmella eri tavalla:

Mutta GNU Emacsissa taitaa olla joku bugi: Jos säätää GNU Emacsia X-resursseilla, niin sen jälkeen GNU Emacsin eka ns. "frame" ei tottele niitä asetuksia lainkaan, mutta jos sen käskee käynnistää uuden framen, niin niissä kyllä näkyy ne halutut asetukset. Ainakin tolla viimeksimainitulla konstilla asetuksia säätäessä värit ja fontit saa säädettyä niin, että myös GNU Emacs niitä asetuksia tottelee.

GNU Emacsissa kannattaa kyllä tehdä sellainen asetus, että customize tallentaa asetuksensa johonkin muuhun tiedostoon kuin ~/.emacs . Muuten customizen käyttö saattaa sotkea ~/.emacs-tiedoston käsin editoimalla tehtyjä asetuksia ihan miten sattuu. Tässä eräs tapa sen toteuttamiseksi:

(setq custom-file
          (expand-file-name
		      (concat "~/."
		      (if (featurep 'xemacs)
		          "x"
		          "")
		  "emacs-custom.el")))
(load custom-file t)

Tuossa siis säädetän niin, että GNU Emacs tallentaa customizen asetukset tiedostoon ~/.emacs-custom.el ja XEmacs puolestaan tiedostoon ~/.xemacs-custom.el . Ei paljon naurata, kun yks kaks ~/.emacs -filetossa on sellaista, että tietystä kohdasta eteenpäin kaikki käsin editoidut elisp-koodaukset ovat kadonneet ja sen jälkeen tulee vaan customizen tekemiä asetuksia. Mutta onneksi kumpikin emacs osaa versioidut backupit. Sen voi tehdä esim. näin:

(setq
 backup-by-copying t            ; don't clobber symlinks
 backup-directory-alist
 '(("~/.emacsen-backup" . "." )) ; don't litter my fs tree
 delete-old-versions t
 kept-new-versions 6
 kept-old-versions 2
 version-control t)             ; use versioned backups

Tuossa on myös sellainen asetus, että backupit tallentuvat ensisijassa hakemistoon ~/.emacsen-backup eikä samaan hakemistoon, jossa se varmuuskopioitava tiedosto on.

Siinäkin on kyllä ihmeissään, kun haluaisi varsinaiseen tekstikenttään toisenlaiset värit kuin mitä menuihin ja pop-up-ikkunoihin haluaisi. Mulla varsinainen teksti on väriltään "LightSalmon" ja sen taustalla on värinä "MidnightBlue". Menuissa ja popup-ikkunoissa taas on tekstin värinä musta ja taustan värinä "gray60". Mutta jotenkin sähläsin välillä silleen, että GNU Emacsissa oli popup-ikkunoissa LightSalmon-väristä tekstiä gray60-värisellä taustalla. Auts! Mutta nyt näyttää olevan kaikki värit taas just niinkuin haluan. Tässä kohtaa mun kai täytyy noudattaa neuvoa: "Jos se toimii, älä koske siihen!".

Fonttivalinnatkin ovat nyt melko hyvin kondiksessa: Varsinaista tekstiä kirjoitan fontilla "Bitstream Vera Sans Mono" ja menuissa ja popup-ikkunoissa pitäisi olla fonttina "Bitstream Vera Sans". Muuten toi kyllä on saatu toimimaan, mutta XEMacs yhä vaan käyttää menuissa ja popupeissaan jotain ihan muuta fonttia, tod.näk. lihavoitua Helveticaa.

Asiasta kolmanteen... Se on nimenomaan Elinks, joka tukee sellaisia tekstikonsoleita, päätteitä ja pääte-emulaattoreita, jotka osaavat 256 väriä. Jos xtermin kääntää sopivilla optioilla, se osaa 256 väriä. Mutta Linuxin tavallisen tekstikonsolin ja framebufferin osalta tilanne on vähän outo. Elinksin FAQ sanoo näin:

" Note that, although the Linux framebuffer supports 256 (or more) colours, the Linux console driver does not; therefore, console applications are still limited to 16 colours on the Linux console, framebuffer or not."

Näyttää siltä, että myös GNU Emacs tukee 256 väriä tekstitilassa, jos sen käyttämä pääte sitä tukee. Sen väriasetuksiin voi laittaa ihan vapaasti mitä tahansa värejä, mitä Äksän mukana tulevasta rgb.txt:stä löytyy ja varmaankin myös heksalukuina voi määritellä sille väriasetuksia. Sitten kun sen käynnistää tekstitilassa, se taitaa "pyöristää" ne värit ko. tekstitilan tarjoamiin väreihin. Ainakin mulla LightSalmon:iksi valitut kohdat menevät tekstitilassa keltaisiksi. Ja MidnightBlue:ella väritetyt kohdat tavallisen sinisiksi. Joo-o, on se vähän hassun näköistä.

Jos XEmacsin käynnistää niin, että se käynnistää myös gnuserv:in, niin silloin se osaa käynnistää uudet tekstipuskurinsa tekstitilaan tai X-ikkunoiksi täysin riipumatta siitä, missä tilassa se XEmacs on ekana käynnistetty. Mutta GNU Emacs toimii niin, että jos sen kanssa käyttää gnuserv:iä ja sen jälkeen sen ohjelman ulkopuolelta käsin käskee ladata jonkin tiedoston, niin ko. tekstipuskuri aukenee samaan tilaan missä alkuperäinen emacs-prosessikin on. Näköjään joku on kyhäämässä asiaan tällaista parannusta:

Emacs multi-tty support

Toivottavasti noi häkkäykset tulevat GNU Emacsin varsinaisiin lähdekoodeihin mukaan mahd. pian. Merkillepantavaa on myös se, että tuolla höpistään jotain 256:tta väriä tukevasta rxvt:stä.

Ei ehkä kannata Emacsiaan säätäessä tehdä niinkuin minä teen, vaan säätää kaikki ensisijassa sillä customize:lla ja vain silloin kun on pakko jollain muilla keinoilla. Se customize toimii siis silleen, että se availee asetusdialogeja tai "-lomakkeita", joissa voi klikkailla hiirella ja kirjoitella tekstikenttiin jne. Sen toiminta on siis varsin graafista, mutta tietenkin se toimii myös tekstitilassa ja myös ilman hiirtä.

Yks juttu, mikä mulla on just nyt särki, on Gnussiminen XEmacsilla. GNU Emacsissa se kyllä toimii ihan OK, mutta XEmacsin puolella GNUS ei käynnisty loppuun saakka. Pitää setviä tuota myöhemmin. Onneksi edes GNU Emacsissa se toimii ihan OK

Elikkäs mm. tällaisia juttuja olen säädellyt mm. tänään. Tänään kävin vähän ennen iltakuutta kaupassa.





21:51:41 EEST @827

Meenpä kohta bailaaman empäs kerro minne.





Edellinen / Previous

Seuraava / Next

Juhapekka Tolvanen