Appendix C. Debugging and Profiling
This appendix describes some facilities in Emacs for testing and debugging your Lisp programs.
Evaluation
A Lisp expression in any buffer can be evaluated by placing the cursor at the end of the expression and pressing C-x C-e (eval-last-sexp). The keystroke M-: (eval-expression) prompts for a Lisp expression to evaluate in the minibuffer. You can also use the commands eval-region and eval-current-buffer.
The *scratch* buffer is normally in Lisp Interaction mode (and if it isn't, it can be put in that mode with M-x lisp-interaction-mode RET). In that mode, C-j is normally eval-print-last-sexp, which is like eval-last-sexp except that it also inserts the result of evaluation into the buffer. Also in Lisp Interaction mode is C-M-x, eval-defun, which evaluates the "defun" that point is in. The meaning of "defun" in this context is broad; it means the enclosing Lisp expression (if there is one) that begins with an open-parenthesis at the left margin. Finally, Lisp Interaction mode allows you to type partial Lisp symbols and complete them with M-TAB.
Lisp expressions can also be placed in files and loaded with load, load-file, load-library, and require.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access