2009年9月5日土曜日

Emacsでlispファイルを開くときのこと (2)

Franz の fi:common-lisp-mode (eli)ではどうなんだろ、ということで、多少追ってみる。
まず、マニュアルによると、

;; -*- mode: fi:common-lisp-mode; package: mypack; readtable: myrt -*-
(in-package :mypack)
(eval-when (compile
load
eval)
(setq *readtable* (named-readtable :myrt)))

というのがフルな使い方のようだ。

mode: は eli に関わらない標準的なこと。これ以降は eli 独自だ。

mode specification で package と readtable を指定するということは、これらをEmacsに教えてあげるということだ。これらをEmacsが知っていることによって、eli を通じてEmacsとCommon Lispのやりとりが成り立つということ。

ただし、packageについてはソースを読み込み時にパースして(in-package ...)があれば、それも見てくれる。

ちなみに、Franzのマニュアルでは、'mode line'を'display mode line'、'mode specification' を 'file mode line' と読んで区別している。どうやら以前は両方とも'mode line' と呼ばれていてname conflicts があったようだ。

packageの指定が、file mode line にもなく、(in-package ...)としてもない場合は、

fi:default-package
fi:package

が参照され、readtableの指定がない場合は、

fi:readtable

が参照される。

こつこつ。

0 件のコメント: