Emacsで実行しようとするLispプログラムは,Emacs-Lispモードで編集すべき です.`.el'で終るファイル名によってこのモードになります.Lispモード 自体は,他のLispシステム用のLispプログラムを編集する際に使われます. Emacs-LispモードはM-x emacs-lisp-modeコマンドを使って選択できます.
Emacsで走らせるLispプログラムのテストには,Emacsのバッファで見えている プログラムの一部を評価できると便利です.たとえばLispの関数定義のテキスト を変更した後,その定義を評価すれば次のその関数を呼び出したときには変更さ れています.Lisp式の評価は,どのような種類の編集中でも,対話的でない関数 (コマンドではない関数)を呼び出すのに便利です.
eval-expression
).
eval-last-sexp
).
eval-defun
).
M-ESC (eval-expression
)は,Lisp式を対話的に評価する
最も基本的なコマンドです.これはミニバッファを使って式を読み込みます.そ
のためバッファの内容に関係なく,いかなる式も実行できます.式が評価される
と,M-ESCを入力したバッファに戻ります.
M-ESCはそれを理解していない利用者を混乱させます.特にオー
トリピート機能のあるキーボードでは,長くESCキーを押えているだけで
これが起きます.そのため,通常はeval-expression
は使用禁止コマンド
です.このコマンドを使おうとすると確認を求められます.そして使用可能にす
ると指定しなければなりません.いったん使用可能にすればもう確認は求められ
ません.See section コマンドを使用できないようにする方法.
Emacs-Lispモードでは,C-M-xキーには関数eval-defun
が割り当
てられています.それは,ポイントがあるか,あるいはポイントの後ろのdefun
をLisp式として構文解析して評価します.その値はエコー領域に表示されます.
このコマンドは,関数定義のテキストの変更をLisp環境に設定するのに便利です.
C-x C-e (eval-last-sexp
)コマンドは同様に機能しますが,
Emacs-Lispモードだけでなくすべての主モードで使えます.ポイントの前のS式
を見つけ,それをLisp式として読み込んで評価し,その値をエコー領域に表示し
ます.
C-M-x,あるいはC-x C-eに数引数を与えると,エコー領域ではな く現在のバッファのポイントの位置に値を挿入します.その引数値は何でもかま いません.
バッファからLisp式を評価する最も一般的なコマンドはeval-region
で
す.M-x eval-regionで,リージョンのテキストを1つ以上のLisp式として
解析して,各々を評価します.M-x eval-current-bufferも同様ですが,
それはバッファ全体を評価します.これは今テストしようとしているLispコード
のファイル内容を評価するのによい方法です.バグを見つけて直した後,変更し
た関数それぞれにC-M-xを使うと,Lisp環境とソースファイルがうまく合
います.