emacs: Variables
51.2 Variables
==============
A “variable” is a Lisp symbol which has a value. The symbol’s name is
also called the “variable name”. A variable name can contain any
characters that can appear in a file, but most variable names consist of
ordinary words separated by hyphens.
The name of the variable serves as a compact description of its role.
Most variables also have a “documentation string”, which describes what
the variable’s purpose is, what kind of value it should have, and how
the value will be used. You can view this documentation using the help
command ‘C-h v’ (‘describe-variable’). Examining.
Emacs uses many Lisp variables for internal record keeping, but the
most interesting variables for a non-programmer user are those meant for
users to change—these are called “customizable variables” or “user
options” (Easy Customization). In the following sections, we
will describe other aspects of Emacs variables, such as how to set them
outside Customize.
Emacs Lisp allows any variable (with a few exceptions) to have any
kind of value. However, many variables are meaningful only if assigned
values of a certain type. For example, only numbers are meaningful
values for ‘kill-ring-max’, which specifies the maximum length of the
kill ring (Earlier Kills); if you give ‘kill-ring-max’ a string
value, commands such as ‘C-y’ (‘yank’) will signal an error. On the
other hand, some variables don’t care about type; for instance, if a
variable has one effect for ‘nil’ values and another effect for
non-‘nil’ values, then any value that is not the symbol ‘nil’ induces
the second effect, regardless of its type (by convention, we usually use
the value ‘t’—a symbol which stands for “true”—to specify a non-‘nil’
value). If you set a variable using the customization buffer, you need
not worry about giving it an invalid type: the customization buffer
usually only allows you to enter meaningful values. When in doubt, use
‘C-h v’ (‘describe-variable’) to check the variable’s documentation
string to see kind of value it expects (Examining).
Menu