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’).  SeeExamining.
 
    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” (SeeEasy 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 (SeeEarlier 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 (SeeExamining).
 

Menu