eintr: defvar and asterisk
8.5.1 ‘defvar’ and an asterisk
------------------------------
In the past, Emacs used the ‘defvar’ special form both for internal
variables that you would not expect a user to change and for variables
that you do expect a user to change. Although you can still use
‘defvar’ for user customizable variables, please use ‘defcustom’
instead, since it provides a path into the Customization commands.
(Specifying Variables using ‘defcustom’ defcustom.)
When you specified a variable using the ‘defvar’ special form, you
could distinguish a variable that a user might want to change from
others by typing an asterisk, ‘*’, in the first column of its
documentation string. For example:
(defvar shell-command-default-error-buffer nil
"*Buffer name for `shell-command' ... error output.
... ")
You could (and still can) use the ‘set-variable’ command to change the
value of ‘shell-command-default-error-buffer’ temporarily. However,
options set using ‘set-variable’ are set only for the duration of your
editing session. The new values are not saved between sessions. Each
time Emacs starts, it reads the original value, unless you change the
value within your ‘.emacs’ file, either by setting it manually or by
using ‘customize’. Your ‘.emacs’ File Emacs Initialization.
For me, the major use of the ‘set-variable’ command is to suggest
variables that I might want to set in my ‘.emacs’ file. There are now
more than 700 such variables, far too many to remember readily.
Fortunately, you can press <TAB> after calling the ‘M-x set-variable’
command to see the list of variables. (Examining and Setting
Variables (emacs)Examining.)