Next: , Previous: , Up: Running   [Contents][Index]

22.6 Lisp Interaction Buffers

The buffer ‘*scratch*’, which is selected when Emacs starts up, is provided for evaluating Lisp expressions interactively inside Emacs. Both the expressions you evaluate and their output goes in the buffer.

The ‘*scratch*’ buffer’s major mode is Lisp Interaction mode, which is the same as Emacs-Lisp mode except for one command, LFD. In Emacs-Lisp mode, LFD is an indentation command. In Lisp Interaction mode, LFD is bound to eval-print-last-sexp. This function reads the Lisp expression before point, evaluates it, and inserts the value in printed representation before point.

The way to use the ‘*scratch*’ buffer is to insert Lisp expressions at the end, ending each one with LFD so that it will be evaluated. The result is a complete typescript of the expressions you have evaluated and their values.

The rationale for this feature is that Emacs must have a buffer when it starts up, but that buffer is not useful for editing files since a new buffer is made for every file that you visit. The Lisp interpreter typescript is the most useful thing I can think of for the initial buffer to do. M-x lisp-interaction-mode will put any buffer in Lisp Interaction mode.