21.6.2 Displaying non-editable buffers.

Some buffers are shown in windows for perusal rather than for editing. Help commands (see Help) typically use a buffer called *Help* for that purpose, minibuffer completion (see Completion) uses a buffer called *Completions*, etc. Such buffers are usually displayed only for a short period of time.

Normally, Emacs chooses the window for such temporary displays via display-buffer, as described in the previous subsection. The *Completions* buffer, on the other hand, is normally displayed in a window at the bottom of the selected frame, regardless of the number of windows already shown on that frame.

If you prefer Emacs to display a temporary buffer in a different fashion, customize the variable display-buffer-alist (see Choosing a Window for Displaying a Buffer in The Emacs Lisp Reference Manual) appropriately. For example, to display *Completions* always below the selected window, use the following form in your initialization file (see The Emacs Initialization File):

(setopt
 display-buffer-alist
 '(("\\*Completions\\*" display-buffer-below-selected)))

The *Completions* buffer is also special in the sense that Emacs usually tries to make its window just as large as necessary to display all of its contents. To resize windows showing other temporary displays, like, for example, the *Help* buffer, turn on the minor mode (see Minor Modes) temp-buffer-resize-mode (see Temporary Displays in The Emacs Lisp Reference Manual).

The maximum size of windows resized by temp-buffer-resize-mode can be controlled by customizing the options temp-buffer-max-height and temp-buffer-max-width (see Temporary Displays in The Emacs Lisp Reference Manual), and cannot exceed the size of the containing frame.