This section describes lower-level functions Emacs uses to find or
create a window for displaying a specified buffer. The common
workhorse of these functions is
display-buffer which eventually
handles all incoming requests for buffer display (see Choosing a Window for Displaying a Buffer).
display-buffer delegates the task of finding a suitable
window to so-called action functions (see Action Functions for Buffer Display). First,
display-buffer compiles a so-called action
alist—a special association list that action functions can use to
fine-tune their behavior. Then it passes that alist on to each action
function it calls (see Action Alists for Buffer Display).
The behavior of
display-buffer is highly customizable. To
understand how customizations are used in practice, you may wish to
study examples illustrating the order of precedence which
display-buffer uses to call action functions (see Precedence of Action Functions). To avoid conflicts between Lisp programs
display-buffer and user customizations of its behavior,
it may make sense to follow a number of guidelines which are sketched
in the final part of this section (see The Zen of Buffer Display).