[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This section describes the basic facility that chooses a window to
display a buffer in---display-buffer
. All the higher-level
functions and commands use this subroutine. Here we describe how to use
display-buffer
and how to customize it.
pop-to-buffer
, but it does not select that window and does not
make the buffer current. The identity of the selected window is
unaltered by this function.
If not-this-window is non-nil
, it means to display the
specified buffer in a window other than the selected one, even if it is
already on display in the selected window. This can cause the buffer to
appear in two windows at once. Otherwise, if buffer-or-name is
already being displayed in any window, that is good enough, so this
function does nothing.
display-buffer
returns the window chosen to display
buffer-or-name.
If the argument frame is non-nil
, it specifies which frames
to check when deciding whether the buffer is already displayed. If the
buffer is already displayed in some window on one of these frames,
display-buffer
simply returns that window. Here are the possible
values of frame:
nil
, consider windows on the selected frame.
t
, consider windows on all frames.
visible
, consider windows on all visible frames.
Precisely how display-buffer
finds or creates a window depends on
the variables described below.
nil
, display-buffer
searches
existing frames for a window displaying the buffer. If the buffer is
already displayed in a window in some frame, display-buffer
makes
the frame visible and raises it, to use that window. If the buffer is
not already displayed, or if display-buffer-reuse-frames
is
nil
, display-buffer
's behavior is determined by other
variables, described below.
display-buffer
makes new windows.
If it is non-nil
and there is only one window, then that window
is split. If it is nil
, then display-buffer
does not
split the single window, but uses it whole.
display-buffer
may split a window,
if there are multiple windows. display-buffer
always splits the
largest window if it has at least this many lines. If the largest
window is not this tall, it is split only if it is the sole window and
pop-up-windows
is non-nil
.
display-buffer
should even out window
heights if the buffer gets displayed in an existing window, above or
beneath another existing window. If even-window-heights
is
t
, the default, window heights will be evened out. If
even-window-heights
is nil
, the orginal window heights
will be left alone.
display-buffer
makes new frames.
If it is non-nil
, display-buffer
looks for an existing
window already displaying the desired buffer, on any visible frame. If
it finds one, it returns that window. Otherwise it makes a new frame.
The variables pop-up-windows
and split-height-threshold
do
not matter if pop-up-frames
is non-nil
.
If pop-up-frames
is nil
, then display-buffer
either
splits a window or reuses one.
See section 29. Frames, for more information.
pop-up-frames
is non-nil
.
Its value should be a function of no arguments. When
display-buffer
makes a new frame, it does so by calling that
function, which should return a frame. The default value of the
variable is a function that creates a frame using parameters from
pop-up-frame-alist
.
display-buffer
makes a new frame. See section 29.3 Frame Parameters, for
more information about frame parameters.
display-buffer
handles the
buffer specially.
By default, special display means to give the buffer a dedicated frame.
If an element is a list, instead of a string, then the CAR of the list is the buffer name, and the rest of the list says how to create the frame. There are two possibilities for the rest of the list. It can be an alist, specifying frame parameters, or it can contain a function and arguments to give to it. (The function's first argument is always the buffer to be displayed; the arguments from the list come after that.)
display-buffer
handles the buffer
specially.
By default, special display means to give the buffer a dedicated frame.
If an element is a list, instead of a string, then the CAR of the
list is the regular expression, and the rest of the list says how to
create the frame. See above, under special-display-buffer-names
.
The default value of this variable is
special-display-popup-frame
.
If args is an alist, it specifies frame parameters for the new frame.
If args is a list whose CAR is a symbol, then (car
args)
is called as a function to actually create and set up the
frame; it is called with buffer as first argument, and (cdr
args)
as additional arguments.
This function always uses an existing window displaying buffer, whether or not it is in a frame of its own; but if you set up the above variables in your init file, before buffer was created, then presumably the window was previously made by this function.
special-display-popup-frame
to use when it creates a frame.
display-buffer
handles the buffer by switching to it in the
selected window.
display-buffer
handles the
buffer by switching to it in the selected window.
display-buffer
. If it is non-nil
, it should be a function
that display-buffer
calls to do the work. The function should
accept two arguments, the same two arguments that display-buffer
received. It should choose or create a window, display the specified
buffer, and then return the window.
This hook takes precedence over all the other options and hooks described above.
A window can be marked as "dedicated" to its buffer. Then
display-buffer
will not try to use that window to display any
other buffer.
t
if window is marked as dedicated;
otherwise nil
.
nil
, and nondedicated otherwise.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |