Emacs LispモードはEmacs Lispを編集するためのメジャーモードです。これのモードコマンドはM-x emacs-lisp-modeです。
Emacsは、Emacs Lisp式を評価するためのコマンドをいくつか提供します。記述しているEmacs Lispコードをテストするために、これらのコマンドをEmacs Lispモードで使用できます。たとえば、関数を書き換えた後、以降の関数呼び出しでそれを有効にするために、関数定義を評価します。これらのコマンドはグローバルに利用可能で、Emacs Lispモード以外でも使用できます。
1つのEmacs Lisp式をミニバッファーで読み取り、それを評価して、値をエコーエリアに出力します(eval-expression
)。
ポイントの前のEmacs Lisp式を評価して、値をエコーエリアに出力します(eval-last-sexp
)。
ポイントの後またはポイントを含むdefunを評価して、値をエコーエリアに出力します(eval-defun
)。
リージョンのすべてのEmacs Lisp式を評価します。
バッファーのすべてのEmacs Lisp式を評価します。
M-:
(eval-expression
)は、ミニバッファーを使って式を読み取り、それを評価します(式を評価する前に、カレントバッファーは、式をタイプするためのミニバッファーではなく、M-:をタイプしたときカレントだったバッファーに切り替わります)。
コマンドC-x C-e (eval-last-sexp
)は、そのバッファーのポイントの前にあるEmacs
Lisp式を評価して、その値をエコーエリアに表示します。評価した結果が整数のときは、他のフォーマット(8進、16進、eval-expression-print-maximum-character
の制限を超えなければ文字)とともに値を表示します。
M-:およびC-x
C-eにプレフィクス引数を与えた場合、値をエコーエリアに表示するのではなく、カレントバッファーのポイント位置に値を挿入します。プレフィクス引数が0の場合、整数出力は他のフォーマット(8進、16進、文字)と一緒に挿入されます。プレフィクス引数は、eval-expression-print-level
およびeval-expression-print-length
にしたがった出力の省略も防ぎます(以下参照)。同様にプレフィックス引数-1
は、eval-expression-print-length
の効果をオーバーライドします。
C-x C-e
(eval-last-sexp
)は特にdefvar
式を特別に扱います。通常、defvar
式を評価しても、それが定義する変数がすでに値をもっている場合は、何も起こりません。しかし、このコマンドは無条件にdefvar
で指定された初期値に変数をリセットします。これはEmacs
Lispプログラムをデバッグするとき便利です。式defcustom
およびdefface
も同様に扱われます。このセクションで説明しているeval-defun
以外のコマンドは、この特別な機能をもっていません。
Emacs
Lispモードでは、eval-defun
コマンドはC-M-xにバインドされています。これはポイント以降のトップレベルのLisp式を評価して、値をエコーエリアにプリントします。このコンテキストにおけるトップレベル式は“defun”を意味しますが、実際のdefun
(関数定義)である必要はありません。
このコマンドはeval-last-sexp
が行うのと同じ方法で、defvar
/defcustom
/defface
を処理します。
プレフィクス引数を指定すると、C-M-xはEmacs LispデバッガーのEdebugのために関数定義をインストルメント(instrument: 処置)します。Instrumenting for Edebug in the Emacs Lisp Reference Manualを参照してください。
コマンドM-x eval-regionは、リージョンのテキストを1つ以上のLisp式として解析して、それらを1つずつ評価します。M-x eval-bufferも同様ですが、これはバッファー全体を評価します。
オプションeval-expression-print-level
およびeval-expression-print-length
は、評価コマンドが結果を出力する前に省略する、リストの最大の深さと長さを制御します。eval-expression
またはeval-last-sexp
にプレフィクス引数0を指定すると、リストはすべて出力されます。eval-expression-debug-on-error
は、これらのコマンドが使用されるとき、評価エラーによりデバッガーを呼び出すかを制御します、デフォルトはt
です。eval-expression-print-maximum-character
は、文字として表示される最大の整数を超える値を抑制します。