1. 式を評価する
C-j : 評価した結果を挿入
Emacs を起動すると、*scratch* バッファが存在する。
*scratch* バッファで Emacs Lisp の式を書き、
(* (+ 1 2) 3)
閉じた括弧の後ろにポイントを置いて、
C-j
を入力すると、
(* (+ 1 2) 3) 9
括弧で囲まれた式が評価され、その結果が挿入される。
内側の閉じた括弧の後ろで C-j を入力すると、
(* (+ 1 2) 3 3)
その場所に結果が挿入される。
C-j に割り当てられたコマンドは、
eval-print-last-sexp
Evaluate sexp before point; print value into current buffer.
C-x C-e : 結果をミニバッファに表示
先ほどの例において、C-j の代わりに、
C-x C-e
を入力すると、ミニバッファに評価された結果が表示される。
eval-last-sexp
Evaluate sexp before point; print value in minibuffer.
eval-region: 指定した範囲を評価
指定した範囲の式を評価したい場合は、
M-x eval-region
Eval - GNU Emacs Lisp Reference Manual によると、
— Command: eval-region start end &optional stream read-function
This function evaluates the forms in the current buffer in the region defined by the positions start and end.
上記のコマンドは、全て
eval-
で始まる。式を評価するためのキー入力を忘れたら、eval だけ思い出せば良い。
2. 括弧の閉じ忘れを探す
eval-region を利用すると、括弧の閉じ忘れを見つけることができる。
例えば、以下の式を eval-region で評価する。
(setq x 7) (defun g () x) (defun f () (let ((x 9)) (g)) (message "%d" (f)) (message "%d" x)
評価した結果、
End of file during parsing
Debugging your ~/.emacs and Elisp によると、
Error in init file: End of file during parsing などと言われた時は ~/.emacs のかっこが正しく閉じていない。 Mark, eval-region を使ってどこがおかしいか調べて場所を限定して行く。調べる範囲の開始点で Mark( C-space ) 終了点で、M-x eval-region とすれば、その範囲がおかしい時には End of file during parsingと言われるはず。
また、別の方法として、対応する括弧へとポイントが移動する
C-M-f
を入力すると、閉じ忘れた括弧で、
Scan error
と表示される。
C-M-f に割り当てられたコマンドは、
forward-sexp
Move forward across one balanced expression (sexp).
0コメント:
コメントを投稿