Mercurial > emacs
changeset 98680:0cc86df465ef
(Frame-Local Variables): New section.
(Buffer-Local Variables): Add an xref to it.
(Intro to Buffer-Local, Creating Buffer-Local): A variable cannot have both
frame-local and buffer-local binding.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Mon, 13 Oct 2008 10:38:43 +0000 |
parents | 0498b894f845 |
children | 8be1f0e1f72d |
files | doc/lispref/variables.texi |
diffstat | 1 files changed, 39 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/doc/lispref/variables.texi Mon Oct 13 05:41:05 2008 +0000 +++ b/doc/lispref/variables.texi Mon Oct 13 10:38:43 2008 +0000 @@ -41,6 +41,7 @@ * Buffer-Local Variables:: Variable values in effect only in one buffer. * Future Local Variables:: New kinds of local values we might add some day. * File Local Variables:: Handling local variable lists in files. +* Frame-Local Variables:: Frame-local bindings for variables. * Variable Aliases:: Variables that are aliases for other variables. * Variables with Restricted Values:: Non-constant variables whose value can @emph{not} be an arbitrary Lisp object. @@ -1088,7 +1089,8 @@ @dfn{buffer-local} bindings, which apply only in one buffer. Having different values for a variable in different buffers is an important customization method. (A few variables have bindings that are local -to each terminal; see @ref{Multiple Displays}.) +to each terminal; see @ref{Multiple Displays}. You can also have +frame-local bindings for variables; see @ref{Frame-Local Variables}.) @menu * Intro to Buffer-Local:: Introduction and concepts. @@ -1187,6 +1189,10 @@ values when you visit the file. @xref{File Variables,,, emacs, The GNU Emacs Manual}. + A variable cannot be both buffer-local and frame-local +(@pxref{Frame-Local Variables}) or terminal-local (@pxref{Multiple +Displays}). + @node Creating Buffer-Local @subsection Creating and Deleting Buffer-Local Bindings @@ -1238,9 +1244,9 @@ because @code{let} does not distinguish between different kinds of bindings; it knows only which variable the binding was made for. -If the variable is terminal-local, this function signals an error. Such -variables cannot have buffer-local bindings as well. @xref{Multiple -Displays}. +If the variable is terminal-local (@pxref{Multiple Displays}), or +frame-local (@pxref{Frame-Local Variables}), this function signals an +error. Such variables cannot have buffer-local bindings as well. @strong{Warning:} do not use @code{make-local-variable} for a hook variable. The hook variables are automatically made buffer-local as @@ -1666,6 +1672,35 @@ could include functions to call. So Emacs discards all text properties from string values specified for file local variables. +@node Frame-Local Variables +@section Frame-Local Values for Variables +@cindex frame-local variables + + In addition to buffer-local variable bindings (@pxref{Buffer-Local +Variables}), Emacs supports @dfn{frame-local} bindings. A frame-local +binding for a variable is in effect in a frame for which it was +defined. Note that you cannot have frame-local bindings for a +variable that has a buffer-local binding. + + To define a frame-specific binding for a variable @var{var} in frame +@var{frame}, set the @var{var} frame parameter for that frame: + +@lisp + (modify-frame-parameters @var{frame} '((@var{var} . @var{value}))) +@end lisp + +@noindent +This causes the variable @var{var} to be bound to the specified +@var{value} in the named @var{frame}. @xref{Parameter Access, +modify-frame-parameters}. + +@findex make-variable-frame-local@r{, deprecated} + Use of @code{make-variable-frame-local} for defining frame-local +bindings is deprecated since Emacs 22.2. + + To check the frame-specific values of such variables, use +@code{frame-parameter} (@pxref{Parameter Access, frame-parameter}). + @node Variable Aliases @section Variable Aliases @cindex variable aliases