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


The Echo Area

The echo area is used for displaying messages made with the message primitive, and for echoing keystrokes. It is not the same as the minibuffer, despite the fact that the minibuffer appears (when active) in the same place on the screen as the echo area. The GNU Emacs Manual specifies the rules for resolving conflicts between the echo area and the minibuffer for use of that screen space (see section `The Minibuffer' in The GNU Emacs Manual). Error messages appear in the echo area; see section Errors.

You can write output in the echo area by using the Lisp printing functions with t as the stream (see section Output Functions), or as follows:

Function: message string &rest arguments
This function displays a one-line message in the echo area. The argument string is similar to a C language printf control string. See format in section Conversion of Characters and Strings, for the details on the conversion specifications. message returns the constructed string.

In batch mode, message prints the message text on the standard error stream, followed by a newline.

If string is nil, message clears the echo area. If the minibuffer is active, this brings the minibuffer contents back onto the screen immediately.

(message "Minibuffer depth is %d."
         (minibuffer-depth))
 -| Minibuffer depth is 0.
=> "Minibuffer depth is 0."

---------- Echo Area ----------
Minibuffer depth is 0.
---------- Echo Area ----------

Function: message-or-box string &rest arguments
This function displays a message like message, but may display it in a dialog box instead of the echo area. If this function is called in a command that was invoked using the mouse--more precisely, if last-nonmenu-event (see section Information from the Command Loop) is either nil or a list--then it uses a dialog box or pop-up menu to display the message. Otherwise, it uses the echo area. (This is the same criterion that y-or-n-p uses to make a similar decision; see section Yes-or-No Queries.)

You can force use of the mouse or of the echo area by binding last-nonmenu-event to a suitable value around the call.

Function: message-box string &rest arguments
This function displays a message like message, but uses a dialog box (or a pop-up menu) whenever that is possible. If it is impossible to use a dialog box or pop-up menu, because the terminal does not support them, then message-box uses the echo area, like message.

Function: current-message
This function returns the message currently being displayed in the echo area, or nil if there is none.

Variable: cursor-in-echo-area
This variable controls where the cursor appears when a message is displayed in the echo area. If it is non-nil, then the cursor appears at the end of the message. Otherwise, the cursor appears at point--not in the echo area at all.

The value is normally nil; Lisp programs bind it to t for brief periods of time.

Variable: echo-area-clear-hook
This normal hook is run whenever the echo area is cleared--either by (message nil) or for any other reason.

Almost all the messages displayed in the echo area are also recorded in the `*Messages*' buffer.

User Option: message-log-max
This variable specifies how many lines to keep in the `*Messages*' buffer. The value t means there is no limit on how many lines to keep. The value nil disables message logging entirely. Here's how to display a message and prevent it from being logged:

(let (message-log-max)
  (message ...))

Variable: echo-keystrokes
This variable determines how much time should elapse before command characters echo. Its value must be an integer, which specifies the number of seconds to wait before echoing. If the user types a prefix key (such as C-x) and then delays this many seconds before continuing, the prefix key is echoed in the echo area. (Once echoing begins in a key sequence, all subsequent characters in the same key sequence are echoed immediately.)

If the value is zero, then command input is not echoed.


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