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

Emacs Lisp式の評価

Emacsで実行しようとするLispプログラムは,Emacs-Lispモードで編集すべき です.`.el'で終るファイル名によってこのモードになります.Lispモード 自体は,他のLispシステム用のLispプログラムを編集する際に使われます. Emacs-LispモードはM-x emacs-lisp-modeコマンドを使って選択できます.

Emacsで走らせるLispプログラムのテストには,Emacsのバッファで見えている プログラムの一部を評価できると便利です.たとえばLispの関数定義のテキスト を変更した後,その定義を評価すれば次のその関数を呼び出したときには変更さ れています.Lisp式の評価は,どのような種類の編集中でも,対話的でない関数 (コマンドではない関数)を呼び出すのに便利です.

M-ESC
ミニバッファからLisp式を読み込み,それを評価し,ミニバッファに結果を表示 します(eval-expression).
C-x C-e
ポイントの前のLisp式を評価し,結果をミニバッファに表示します (eval-last-sexp).
C-M-x
ポイントのある,またはポイントの後ろのdefunを評価し,結果をミニバッファ に表示します(eval-defun).
M-x eval-region
リージョン内のすべてのLisp式を評価します.
M-x eval-current-buffer
バッファのすべてのLisp式を評価します.

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環境とソースファイルがうまく合 います.


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