言語 |
Emacs Lisp 以外の Lisp を使う方法 Inferior Lisp Mode |
0.概要
基本的な考えは、あらかじめ Emacs Lisp 以外の lisp を子プロセスとして走らせておき、
そこへ Lisp Mode のバッファから S式を送りこんで評価させようとするものである。例として
ディレクトリ/foo の下に barLisp があるものとして、これを子プロセスとして走らせる場合を
考える。
|
1. Lisp Mode にする。
lisp(barLisp) のS式を書いたり、編集するためにLisp Modeにする必要がある。そこで
次のようにして、Lisp Mode にする。 または、あらかじめS式のファイルが用意されているなら、ファイルの最初 の空でない行に、次ぎのようなモード指定を行なっておいてもよい。 あるいは、読み込むファイル名のサフィックスが .l や .lisp であれば自動的にLisp Modeになる。 |
2. カレントディレクトリを /foo にする。
lisp の種類によっては、実行時に同じディレクトリの他のモジュールを必要とする
ものもあるのでカレントディレクトリをlispのある/fooにする。これはつぎのようにすれ
ばよい。 M-x cd Change default directory ときいてくるので /foo とする。そして、念のためつぎのようにしてカレントディレクトリが /foo になっていることを確かめる。
|
3. lisp を子プロセスとして走らせる。
次のようにすればよい。
run-lisp は exec-path に指定されたディレクトリの下の lisp という名前の プログラムを探す。 見つければ、それを実行して Inferior Lisp Mode にはいる。 見つからなければエラー・メッセージがでる。 |
4. Inferior Lisp Mode の Window を2分割する。
次のようにしてWindow を2分割する。
|
5. Window の1つを Lisp Mode のバッファへスイッチバックする。
2分割したInferior Lisp Mode の Window の1つを、つぎのようにしてLisp Modeの Windowにする。
|
6. Inferior Lisp Mode と Lisp Mode の Window を同時に表示しておく。
Lisp Mode のバッファに任意のS式を入力する。このS式をC-M-xコマンドで子プロセスの
lispへおくる。lispが評価した結果は Inferior Lisp Modeバッファに表示される。 もちろん、直接 Inferior Lisp ModeバッファにS式を入力すれば インタラクティブに応答がある。 |
7. 解説
lisp の子プロセスは、一つ走っていれば、どの Lisp Mode のバッファでも それを利用できる。どの Lisp Mode のバッファも同じ lisp の子プロセスを 使うことができる。
一度 lisp の子プロセスを起動して Lisp Mode のバッファに戻れば、評価 したいS式(lisp の式)を C-M-x コマンドを用いて、その子プロセスに渡すこ とができる。
C-M-x は概念的にはカーソルの前にある式を評価のために lisp の子プロセス に渡すと考えられる。
実際には以下のように行なわれている。
1. 式をテンポラリ・ファイルにセーブして、 2.(load ファイル名)というコマンドを子プロセスに送る。 このファイル名はテンポラリ・ファイルの名前である。 Emacs はデフォルトで次のような load コマンドを使う。
ここで "%s" は、Emacs によってテンポラリ・ファイルの名前が 入れられる。 参考:Hewlett Packard「GNU Emacs 完全ガイド(下)」 |
言語 |
言語の目次へ戻る |