Go to the first, previous, next, last section, table of contents.

外部のLispを動作させる方法

Emacsには,他のLispシステムでプログラムを実行する機能があります.Lisp をEmacsの下位プロセスとして実行し,式をそれにわたして評価することができ ます.下位プロセスで走らせているLisp用に編集していたプログラムで変更した 関数定義は,Emacsのバッファから直接Lispにわたすことができます.

下位のLispプロセスを実行するには,M-x run-lispと入力します.これ によって,シェルでlispと入力して動作するのと同じlispという 名前のプログラムを実行します.このとき入力と出力両方は`*lisp*'とい うEmacsバッファを通して行なわれます.すなわちLispからの端末出力がバッファ にはいり,ポイントを進め,Lispへの端末入力はバッファのテキストから送られ ます.Lispに入力を与えるには,バッファの最後に移動して入力し,RET を押します.`*lisp*'バッファは,Inferior Lispモードで,これはLispモー ドとShellモードの特徴を兼ね備えたモードです(see section Shellモード).

外部のLispで実行するソースファイルの編集には,Lispモードを使います.こ のモードはM-x lisp-modeで選択できます.また,たいていのLispシステ ムで普通考えられているように,末尾が`.l'`.lisp'という名前の ファイルには自動的に使われます.

実行中のLispプログラムの関数を編集しているとき,変更した定義を下位の Lispプロセスに送るにはC-M-xを入力するのが簡単です.Lispモードでは, 関数lisp-send-defunを実行します.この関数はポイントのまわりやその 次のdefunを探し,それをLispプロセスに送ります(Emacsでは現在のバッファが 何であるかに関係なく,どんな下位のプロセスにも送れます).

Lispモード(外部のLispシステムで実行されるプログラムを編集するとき)と Emacs-Lispモード(Emacsで実行されるLispプログラムを編集するとき)での C-M-xの意味を比べてみます.どちらのモードでもポイントがある関数を 定義します.しかし,その方法はLisp環境によって違います.See section Lisp用の主モード.


Go to the first, previous, next, last section, table of contents.