This section describes how window parameters can be used to associate additional information with windows.
This function returns window's value for parameter. The default for window is the selected window. If window has no setting for parameter, this function returns
This function returns all parameters of window and their values. The default for window is the selected window. The return value is either
nil, or an association list whose elements have the form
This function sets window's value of parameter to value and returns value. The default for window is the selected window.
By default, the functions that save and restore window configurations or the
states of windows (see Window Configurations) do not care about
window parameters. This means that when you change the value of a
parameter within the body of a
previous value is not restored when that macro exits. It also means
that when you restore via
window-state-put a window state saved
window-state-get, all cloned windows have their
parameters reset to
nil. The following variable allows you to
override the standard behavior:
This variable is an alist specifying which parameters get saved by
window-state-get, and subsequently restored by
window-state-put. See Window Configurations.
The car of each entry of this alist is a symbol specifying the parameter. The cdr should be one of the following:
- This value means the parameter is saved neither by
- This value specifies that the parameter is saved by
current-window-configurationand (provided its writable argument is
- This means that the parameter is saved unconditionally by both
window-state-get. This value should not be used for parameters whose values do not have a read syntax. Otherwise, invoking
window-state-putin another session may fail with an
Some functions (notably
split-window), may behave specially
when their window argument has a parameter set. You can override
such special behavior by binding the following variable to a
If this variable is non-
nil, some standard functions do not process window parameters. The functions currently affected by this are
An application can bind this variable to a non-
nilvalue around calls to these functions. If it does so, the application is fully responsible for correctly assigning the parameters of all involved windows when exiting that function.
The following parameters are currently used by the window management code:
delete-window(see Deleting Windows).
delete-other-windows(see Deleting Windows).
split-window(see Splitting Windows).
other-window(see Cyclic Window Ordering).
other-window(see Cyclic Window Ordering).
window-state-get(see Window Configurations).
nilmeans vertical and
thorizontal, and a size in pixels. If this window displays the specified buffer and its size in the indicated direction equals the size specified by this parameter, then Emacs will try to preserve the size of this window in the indicated direction. This parameter is installed and updated by the function
window-preserve-size(see Preserving Window Sizes).
quit-restore-window(see Quitting Windows). It contains four elements:
The first element is one of the symbols
window, meaning that
the window has been specially created by
frame, a separate frame has been created;
window has only ever displayed this buffer; or
window showed another buffer before.
affect how the window is quit, while
affect the redisplay of buffers previously shown in this window.
The second element is either one of the symbols
frame, or a list whose elements are the buffer shown in the
window before, that buffer's window start and window point positions,
and the window's height at that time. If that buffer is still live
when the window is quit, then the function
reuses the window to display the buffer.
The third element is the window selected at the time the parameter was
quit-restore-window deletes the window passed to
it as argument, it then tries to reselect this window.
The fourth element is the buffer whose display caused the creation of
quit-restore-window deletes the specified window
only if it still shows that buffer.
nil, specify the minimum values (in columns) for the left and right margin of this window. When present, Emacs will use these values instead of the actual margin widths for determining whether a window can be split or shrunk horizontally.
Emacs never auto-adjusts the margins of any window after splitting or
resizing it. It is the sole responsibility of any application setting
this parameter to adjust the margins of this window as well as those of
any new window that inherits this window's margins due to a split.
window-size-change-functions (see Window Hooks) should be
employed for this purpose.
This parameter was introduced in Emacs version 25.1 to support applications that use large margins to center buffer text within a window and should be used, with due care, exclusively by those applications. It might be replaced by an improved solution in future versions of Emacs.
There are additional parameters
these are reserved and should not be used by applications.