aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman2005-12-23 01:46:33 +0000
committerRichard M. Stallman2005-12-23 01:46:33 +0000
commit5552d5a425bfeef0b89fe43b0cda03554ee3bd98 (patch)
treeea1910a7c7f208587e9e12f4f10cbba91a732ebd
parent50137744b86d2871f41cb7d1043eda48a90b7ecd (diff)
downloademacs-5552d5a425bfeef0b89fe43b0cda03554ee3bd98.tar.gz
emacs-5552d5a425bfeef0b89fe43b0cda03554ee3bd98.zip
(Easy Customization and subnodes):
Replace "active field" with "button". Use "user option" only for variables. Use "setting" for variable-or-face.
-rw-r--r--man/custom.texi325
1 files changed, 161 insertions, 164 deletions
diff --git a/man/custom.texi b/man/custom.texi
index c1442ca2f3c..2180fcdd04a 100644
--- a/man/custom.texi
+++ b/man/custom.texi
@@ -34,7 +34,7 @@ replay sequences of keys.
34@menu 34@menu
35* Minor Modes:: Each minor mode is one feature you can turn on 35* Minor Modes:: Each minor mode is one feature you can turn on
36 independently of any others. 36 independently of any others.
37* Easy Customization:: Convenient way to browse and change user options. 37* Easy Customization:: Convenient way to browse and change settings.
38* Variables:: Many Emacs commands examine Emacs variables 38* Variables:: Many Emacs commands examine Emacs variables
39 to decide what to do; by setting variables, 39 to decide what to do; by setting variables,
40 you can control their functioning. 40 you can control their functioning.
@@ -183,31 +183,31 @@ region highlighted. @xref{Mark}.
183@node Easy Customization 183@node Easy Customization
184@section Easy Customization Interface 184@section Easy Customization Interface
185 185
186@cindex user option 186@cindex settings
187 Emacs has many @dfn{user options} which have values that you can set 187 Emacs has many @dfn{settings} which have values that you can specify
188in order to customize various commands. Many user options are 188in order to customize various commands. Many are documented in this
189documented in this manual. Most user options are actually Lisp 189manual. Most settings are @dfn{user options}---that is to say, Lisp
190variables (@pxref{Variables}), so their names appear in the Variable 190variables (@pxref{Variables})---so their names appear in the Variable
191Index (@pxref{Variable Index}). The rest are faces and their 191Index (@pxref{Variable Index}). The other settings are faces and
192attributes (@pxref{Faces}). 192their attributes (@pxref{Faces}).
193 193
194@findex customize 194@findex customize
195@cindex customization buffer 195@cindex customization buffer
196 You can browse interactively through the user options and change 196 You can browse interactively through settings and change them using
197some of them using @kbd{M-x customize}. This command creates a 197@kbd{M-x customize}. This command creates a @dfn{customization
198@dfn{customization buffer}, which offers commands to navigate through 198buffer}, which offers commands to navigate through a logically
199a logically organized structure of the Emacs user options; you can 199organized structure of the Emacs settings; you can also use it to edit
200also use it to edit and set their values, and to save settings 200and set their values, and to save settings permanently in your
201permanently in your @file{~/.emacs} file (@pxref{Init File}). 201@file{~/.emacs} file (@pxref{Init File}).
202 202
203 The appearance of the example buffers in this section is typically 203 The appearance of the example buffers in this section is typically
204different under a window system, since faces are then used to indicate 204different under a window system, since faces are then used to indicate
205the active fields and other features. 205buttons and editable fields.
206 206
207@menu 207@menu
208* Groups: Customization Groups. How options are classified in a structure. 208* Groups: Customization Groups. How settings are classified in a structure.
209* Browsing: Browsing Custom. Browsing and searching for options and faces. 209* Browsing: Browsing Custom. Browsing and searching for settings.
210* Changing a Variable:: How to edit a value and set an option. 210* Changing a Variable:: How to edit an option's value and set the option.
211* Saving Customizations:: Specifying the file for saving customizations. 211* Saving Customizations:: Specifying the file for saving customizations.
212* Face Customization:: How to edit the attributes of a face. 212* Face Customization:: How to edit the attributes of a face.
213* Specific Customization:: Making a customization buffer for specific 213* Specific Customization:: Making a customization buffer for specific
@@ -220,9 +220,9 @@ the active fields and other features.
220@subsection Customization Groups 220@subsection Customization Groups
221@cindex customization groups 221@cindex customization groups
222 222
223 For customization purposes, user options are organized into 223 For customization purposes, settings are organized into @dfn{groups}
224@dfn{groups} to help you find them. Groups are collected into bigger 224to help you find them. Groups are collected into bigger groups, all
225groups, all the way up to a master group called @code{Emacs}. 225the way up to a master group called @code{Emacs}.
226 226
227 @kbd{M-x customize} creates a customization buffer that shows the 227 @kbd{M-x customize} creates a customization buffer that shows the
228top-level @code{Emacs} group and the second-level groups immediately 228top-level @code{Emacs} group and the second-level groups immediately
@@ -255,59 +255,57 @@ documentation string; the @code{Emacs} group also has a @samp{[State]}
255line. 255line.
256 256
257@cindex editable fields (customization buffer) 257@cindex editable fields (customization buffer)
258@cindex active fields (customization buffer) 258@cindex buttons (customization buffer)
259 Most of the text in the customization buffer is read-only, but it 259 Most of the text in the customization buffer is read-only, but it
260typically includes some @dfn{editable fields} that you can edit. There 260typically includes some @dfn{editable fields} that you can edit.
261are also @dfn{active fields}; this means a field that does something 261There are also @dfn{buttons}, which do something when you @dfn{invoke}
262when you @dfn{invoke} it. To invoke an active field, either click on it 262them. To invoke a button, either click on it with @kbd{Mouse-1}, or
263with @kbd{Mouse-1}, or move point to it and type @key{RET}. 263move point to it and type @key{RET}.
264 264
265 For example, the phrase @samp{[Go to Group]} that appears in a 265 For example, the phrase @samp{[Go to Group]} that appears in a
266second-level group is an active field. Invoking the @samp{[Go to 266second-level group is a button. Invoking it creates a new
267Group]} field for a group creates a new customization buffer, which 267customization buffer, which shows that group and its contents. This
268shows that group and its contents. This field is a kind of hypertext 268is a kind of hypertext link to another group.
269link to another group. 269
270 270 The @code{Emacs} group includes a few settings, but mainly it
271 The @code{Emacs} group includes a few user options itself, but 271contains other groups, which contain more groups, which contain the
272mainly it contains other groups, which contain more groups, which 272settings. By browsing the hierarchy of groups, you will eventually
273contain the user options. By browsing the hierarchy of groups, you 273find the feature you are interested in customizing. Then you can use
274will eventually find the feature you are interested in customizing. 274the customization buffer to set that feature's settings. You can also
275Then you can use the customization buffer to set the options 275go straight to a particular group by name, using the command @kbd{M-x
276pertaining to that feature. You can also go straight to a particular 276customize-group}.
277group by name, using the command @kbd{M-x customize-group}.
278 277
279@node Browsing Custom 278@node Browsing Custom
280@subsection Browsing and Searching for Options and Faces 279@subsection Browsing and Searching for Options and Faces
281@findex customize-browse 280@findex customize-browse
282You can use @kbd{M-x customize} to browse the groups and options, but 281
283often @kbd{M-x customize-browse} is a more efficient alternative. 282 @kbd{M-x customize-browse} is another way to browse the available
284That is because it lets you view the structure of customization groups 283settings. This command creates a special customization buffer which
285on a larger scale. This command creates a special kind of 284shows only the names of groups and settings, and puts them in a
286customization buffer which shows only the names of the groups (and 285structure.
287variables and faces), and their structure.
288 286
289 In this buffer, you can show the contents of a group by invoking 287 In this buffer, you can show the contents of a group by invoking
290@samp{[+]}. When the group contents are visible, this button changes to 288@samp{[+]}. When the group contents are visible, this button changes to
291@samp{[-]}; invoking that hides the group contents. 289@samp{[-]}; invoking that hides the group contents.
292 290
293 Each group, variable, or face name in this buffer has an active field 291 Each setting in this buffer has a button which says @samp{[Group]},
294which says @samp{[Group]}, @samp{[Option]} or @samp{[Face]}. Invoking 292@samp{[Option]} or @samp{[Face]}. Invoking this button creates an
295that active field creates an ordinary customization buffer showing just 293ordinary customization buffer showing just that group and its
296that group and its contents, just that variable, or just that face. 294contents, just that user option, or just that face. This is the way
297This is the way to set values in it. 295to change settings that you find with @kbd{M-x customize-browse}.
298 296
299 If you can guess part of the name of the options you are interested 297 If you can guess part of the name of the settings you are interested
300in, then sometimes @kbd{M-x customize-apropos} can be another useful 298in, @kbd{M-x customize-apropos} is another way to search for settings.
301way to search for options. However, unlike @code{customize} and 299However, unlike @code{customize} and @code{customize-browse},
302@code{customize-browse}, @code{customize-apropos} can only find 300@code{customize-apropos} can only find groups and settings that are
303options that are loaded in the current Emacs session. @xref{Specific 301loaded in the current Emacs session. @xref{Specific Customization,,
304Customization,, Customizing Specific Items}. 302Customizing Specific Items}.
305 303
306@node Changing a Variable 304@node Changing a Variable
307@subsection Changing a Variable 305@subsection Changing a Variable
308 306
309 Here is an example of what a variable looks like in the 307 Here is an example of what a variable (a user option) looks like in
310customization buffer: 308the customization buffer:
311 309
312@smallexample 310@smallexample
313Kill Ring Max: [Hide Value] 60 311Kill Ring Max: [Hide Value] 60
@@ -321,34 +319,32 @@ the current value of the variable. If you see @samp{[Show Value]} instead of
321buffer initially hides values that take up several lines. Invoke 319buffer initially hides values that take up several lines. Invoke
322@samp{[Show Value]} to show the value. 320@samp{[Show Value]} to show the value.
323 321
324 The line after the option name indicates the @dfn{customization state} 322 The line after the variable name indicates the @dfn{customization
325of the variable: in the example above, it says you have not changed the 323state} of the variable: in the example above, it says you have not
326option yet. The word @samp{[State]} at the beginning of this line is 324changed the option yet. The @samp{[State]} button at the beginning of
327active; you can get a menu of various operations by invoking it with 325this line gives you a menu of various operations for customizing the
328@kbd{Mouse-1} or @key{RET}. These operations are essential for 326variable.
329customizing the variable.
330 327
331 The line after the @samp{[State]} line displays the beginning of the 328 The line after the @samp{[State]} line displays the beginning of the
332variable's documentation string. If there are more lines of 329variable's documentation string. If there are more lines of
333documentation, this line ends with @samp{[More]}; invoke this to show 330documentation, this line ends with a @samp{[More]} button; invoke that
334the full documentation string. 331to show the full documentation string.
335
336 To enter a new value for @samp{Kill Ring Max}, move point to the value
337and edit it textually. For example, you can type @kbd{M-d}, then insert
338another number.
339 332
340 When you begin to alter the text, you will see the @samp{[State]} line 333 To enter a new value for @samp{Kill Ring Max}, move point to the
341change to say that you have edited the value: 334value and edit it textually. For example, you can type @kbd{M-d},
335then insert another number. As you begin to alter the text, you will
336see the @samp{[State]} line change to say that you have edited the
337value:
342 338
343@smallexample 339@smallexample
344[State]: EDITED, shown value does not take effect until you set or @r{@dots{}} 340[State]: EDITED, shown value does not take effect until you set or @r{@dots{}}
345 save it. 341 save it.
346@end smallexample 342@end smallexample
347 343
348@cindex setting option value 344@cindex settings, how to set
349 Editing the value does not actually set the variable. To do 345 Editing the value does not actually set the variable. To do that,
350that, you must @dfn{set} it. To do this, invoke the word 346you must @dfn{set} the variable. To do this, invoke the
351@samp{[State]} and choose @samp{Set for Current Session}. 347@samp{[State]} button and choose @samp{Set for Current Session}.
352 348
353 The state of the variable changes visibly when you set it: 349 The state of the variable changes visibly when you set it:
354 350
@@ -357,23 +353,24 @@ that, you must @dfn{set} it. To do this, invoke the word
357@end smallexample 353@end smallexample
358 354
359 You don't have to worry about specifying a value that is not valid; 355 You don't have to worry about specifying a value that is not valid;
360setting the variable checks for validity and will not really install an 356the @samp{Set for Current Session} operation checks for validity and
361unacceptable value. 357will not install an unacceptable value.
362 358
363@kindex M-TAB @r{(customization buffer)} 359@kindex M-TAB @r{(customization buffer)}
364@findex widget-complete 360@findex widget-complete
365 While editing a value or field that is a file name, directory name, 361 While editing a field that is a file name, directory name,
366command name, or anything else for which completion is defined, you 362command name, or anything else for which completion is defined, you
367can type @kbd{M-@key{TAB}} (@code{widget-complete}) to do completion. 363can type @kbd{M-@key{TAB}} (@code{widget-complete}) to do completion.
368(@kbd{@key{ESC} @key{TAB}} and @kbd{C-M-i} do the same thing.) 364(@kbd{@key{ESC} @key{TAB}} and @kbd{C-M-i} do the same thing.)
369 365
370 Some variables have a small fixed set of possible legitimate values. 366 Some variables have a small fixed set of possible legitimate values.
371These variables don't let you edit the value textually. Instead, an 367These variables don't let you edit the value textually. Instead, a
372active field @samp{[Value Menu]} appears before the value; invoke this 368@samp{[Value Menu]} button appears before the value; invoke this
373field to edit the value. For a boolean ``on or off'' value, the active 369button to change the value. For a boolean ``on or off'' value, the
374field says @samp{[Toggle]}, and it changes to the other value. 370button says @samp{[Toggle]}, and it changes to the other value.
375@samp{[Value Menu]} and @samp{[Toggle]} edit the buffer; the changes 371@samp{[Value Menu]} and @samp{[Toggle]} simply edit the buffer; the
376take effect when you use the @samp{Set for Current Session} operation. 372changes take real effect when you use the @samp{Set for Current
373Session} operation.
377 374
378 Some variables have values with complex structure. For example, the 375 Some variables have values with complex structure. For example, the
379value of @code{file-coding-system-alist} is an association list. Here 376value of @code{file-coding-system-alist} is an association list. Here
@@ -408,10 +405,10 @@ where PATTERN is a regular expression matching a file name,
408 405
409@noindent 406@noindent
410Each association in the list appears on four lines, with several 407Each association in the list appears on four lines, with several
411editable or ``active'' fields. You can edit the regexps and coding 408editable fields and/or buttons. You can edit the regexps and coding
412systems using ordinary editing commands. You can also invoke 409systems using ordinary editing commands. You can also invoke
413@samp{[Value Menu]} to switch to a kind of value---for instance, to 410@samp{[Value Menu]} to switch to a different kind of value---for
414specify a function instead of a pair of coding systems. 411instance, to specify a function instead of a pair of coding systems.
415 412
416To delete an association from the list, invoke the @samp{[DEL]} button 413To delete an association from the list, invoke the @samp{[DEL]} button
417for that item. To add an association, invoke @samp{[INS]} at the 414for that item. To add an association, invoke @samp{[INS]} at the
@@ -424,19 +421,19 @@ list.
424@kindex S-TAB @r{(customization buffer)} 421@kindex S-TAB @r{(customization buffer)}
425@findex widget-forward 422@findex widget-forward
426@findex widget-backward 423@findex widget-backward
427 Two special commands, @key{TAB} and @kbd{S-@key{TAB}}, are useful for 424 Two special commands, @key{TAB} and @kbd{S-@key{TAB}}, are useful
428moving through the customization buffer. @key{TAB} 425for moving through the customization buffer. @key{TAB}
429(@code{widget-forward}) moves forward to the next active or editable 426(@code{widget-forward}) moves forward to the next button or editable
430field; @kbd{S-@key{TAB}} (@code{widget-backward}) moves backward to the 427field; @kbd{S-@key{TAB}} (@code{widget-backward}) moves backward to
431previous active or editable field. 428the previous button or editable field.
432 429
433 Typing @key{RET} on an editable field also moves forward, just like 430 Typing @key{RET} on an editable field also moves forward, just like
434@key{TAB}. We set it up this way because people often type @key{RET} 431@key{TAB}. We set it up this way because people often type @key{RET}
435when they are finished editing a field. To insert a newline within an 432when they are finished editing a field. To insert a newline within an
436editable field, use @kbd{C-o} or @kbd{C-q C-j}. 433editable field, use @kbd{C-o} or @kbd{C-q C-j}.
437 434
438@cindex saving variable value 435@cindex saving a setting
439@cindex customized variables, saving 436@cindex settings, how to save
440 Setting the variable changes its value in the current Emacs session; 437 Setting the variable changes its value in the current Emacs session;
441@dfn{saving} the value changes it for future sessions as well. To 438@dfn{saving} the value changes it for future sessions as well. To
442save the variable, invoke @samp{[State]} and select the @samp{Save for 439save the variable, invoke @samp{[State]} and select the @samp{Save for
@@ -460,7 +457,7 @@ and updates the text accordingly.
460 457
461@item Erase Customization 458@item Erase Customization
462This sets the variable to its standard value, and updates the text 459This sets the variable to its standard value, and updates the text
463accordingly. This also eliminates any saved value for the option, 460accordingly. This also eliminates any saved value for the variable,
464so that you will get the standard value in future Emacs sessions. 461so that you will get the standard value in future Emacs sessions.
465 462
466@item Use Backup Value 463@item Use Backup Value
@@ -480,8 +477,7 @@ the same variable in a customization buffer, even in another session.
480 The state of a group indicates whether anything in that group has been 477 The state of a group indicates whether anything in that group has been
481edited, set or saved. 478edited, set or saved.
482 479
483 Near the top of the customization buffer there are two lines 480 Near the top of the customization buffer there are two lines of buttons:
484containing several active fields:
485 481
486@smallexample 482@smallexample
487 [Set for Current Session] [Save for Future Sessions] 483 [Set for Current Session] [Save for Future Sessions]
@@ -493,10 +489,10 @@ containing several active fields:
493Invoking @samp{[Finish]} either buries or kills this customization 489Invoking @samp{[Finish]} either buries or kills this customization
494buffer according to the setting of the option 490buffer according to the setting of the option
495@code{custom-buffer-done-kill}; the default is to bury the buffer. 491@code{custom-buffer-done-kill}; the default is to bury the buffer.
496Each of the other fields performs an operation---set, save or 492Each of the other buttons performs an operation---set, save or
497reset---on each of the options in the buffer that could meaningfully 493reset---on each of the settings in the buffer that could meaningfully
498be set, saved or reset. They do not operate on options whose values 494be set, saved or reset. They do not operate on settings whose values
499are hidden, nor on subgroups. 495are hidden, nor on subgroups not visible in the buffer.
500 496
501@node Saving Customizations 497@node Saving Customizations
502@subsection Saving Customizations 498@subsection Saving Customizations
@@ -572,11 +568,12 @@ Attributes: [ ] Font Family: *
572 [ ] Inherit: * 568 [ ] Inherit: *
573@end smallexample 569@end smallexample
574 570
575 Each face attribute has its own line. The @samp{[@var{x}]} field 571 Each face attribute has its own line. The @samp{[@var{x}]} button
576before the attribute name indicates whether the attribute is 572before the attribute name indicates whether the attribute is
577@dfn{enabled}; @samp{X} means that it is. You can enable or disable the 573@dfn{enabled}; @samp{[X]} means that it's enabled, and @samp{[ ]}
578attribute by invoking that field. When the attribute is enabled, you 574means that it's disabled. You can enable or disable the attribute by
579can change the attribute value in the usual ways. 575clicking that button. When the attribute is enabled, you can change
576the attribute value in the usual ways.
580 577
581 For the colors, you can specify a color name (use @kbd{M-x 578 For the colors, you can specify a color name (use @kbd{M-x
582list-colors-display} for a list of them) or a hexadecimal color 579list-colors-display} for a list of them) or a hexadecimal color
@@ -608,9 +605,9 @@ to clear out the attribute.
608@node Specific Customization 605@node Specific Customization
609@subsection Customizing Specific Items 606@subsection Customizing Specific Items
610 607
611 Instead of finding the options you want to change by moving down 608 Instead of finding the setting you want to change by navigating the
612through the structure of groups, you can specify the particular variable, 609structure of groups, here are other ways to specify the settings that
613face, or group that you want to customize. 610you want to customize.
614 611
615@table @kbd 612@table @kbd
616@item M-x customize-variable @key{RET} @var{variable} @key{RET} 613@item M-x customize-variable @key{RET} @var{variable} @key{RET}
@@ -620,17 +617,17 @@ Set up a customization buffer with just one face, @var{face}.
620@item M-x customize-group @key{RET} @var{group} @key{RET} 617@item M-x customize-group @key{RET} @var{group} @key{RET}
621Set up a customization buffer with just one group, @var{group}. 618Set up a customization buffer with just one group, @var{group}.
622@item M-x customize-apropos @key{RET} @var{regexp} @key{RET} 619@item M-x customize-apropos @key{RET} @var{regexp} @key{RET}
623Set up a customization buffer with all the variables, faces and groups 620Set up a customization buffer with all the settings and groups that
624that match @var{regexp}. 621match @var{regexp}.
625@item M-x customize-changed-options @key{RET} @var{version} @key{RET} 622@item M-x customize-changed-options @key{RET} @var{version} @key{RET}
626Set up a customization buffer with all the variables, faces and groups 623Set up a customization buffer with all the settings and groups
627whose meaning has changed since Emacs version @var{version}. 624whose meaning has changed since Emacs version @var{version}.
628@item M-x customize-saved 625@item M-x customize-saved
629Set up a customization buffer containing all variables and faces that you 626Set up a customization buffer containing all settings that you
630have saved with customization buffers. 627have saved with customization buffers.
631@item M-x customize-customized 628@item M-x customize-customized
632Set up a customization buffer containing all variables and faces that you 629Set up a customization buffer containing all settings that you have
633have customized but not saved. 630customized but not saved.
634@end table 631@end table
635 632
636@findex customize-variable 633@findex customize-variable
@@ -639,8 +636,8 @@ buffer, and you know its name, you can use the command @kbd{M-x
639customize-variable} and specify the variable name. This sets up the 636customize-variable} and specify the variable name. This sets up the
640customization buffer with just one variable---the one that you asked 637customization buffer with just one variable---the one that you asked
641for. Editing, setting and saving the value work as described above, 638for. Editing, setting and saving the value work as described above,
642but only for the specified variable. Minibuffer completion is very 639but only for the specified variable. Minibuffer completion is handy
643handy if you only know part of the name. However, it only finds 640if you only know part of the name. However, this command can only see
644options that have been loaded in the current Emacs session. 641options that have been loaded in the current Emacs session.
645 642
646@findex customize-face 643@findex customize-face
@@ -651,57 +648,56 @@ on the character after point.
651@findex customize-group 648@findex customize-group
652 You can also set up the customization buffer with a specific group, 649 You can also set up the customization buffer with a specific group,
653using @kbd{M-x customize-group}. The immediate contents of the chosen 650using @kbd{M-x customize-group}. The immediate contents of the chosen
654group, including user options, faces, and other groups, all appear 651group, including variables, faces, and other groups, all appear
655as well (even if not already loaded). However, the subgroups' own 652as well (even if not already loaded). However, the subgroups' own
656contents are not included. 653contents are not included.
657 654
658@findex customize-apropos 655@findex customize-apropos
659 To control more precisely what to customize, you can use @kbd{M-x 656 To control more precisely what to customize, you can use @kbd{M-x
660customize-apropos}. You specify a regular expression as argument; then 657customize-apropos}. You specify a regular expression as argument;
661all @emph{loaded} options, faces and groups whose names match this 658then all @emph{loaded} settings and groups whose names match this
662regular expression are set up in the customization buffer. If you 659regular expression are set up in the customization buffer. If you
663specify an empty regular expression, this includes @emph{all} groups, 660specify an empty regular expression, this includes @emph{all} loaded
664options and faces (but that takes a long time). 661groups and settings---which takes a long time to set up.
665 662
666@findex customize-changed-options 663@findex customize-changed
667 When you upgrade to a new Emacs version, you might want to customize 664 When you upgrade to a new Emacs version, you might want to customize
668new options and options whose meanings or default values have changed. 665new settings and settings whose meanings or default values have
669To do this, use @kbd{M-x customize-changed-options} and specify a 666changed. To do this, use @kbd{M-x customize-changed} and
670previous Emacs version number using the minibuffer. It creates a 667specify a previous Emacs version number using the minibuffer. It
671customization buffer which shows all the options (and groups) whose 668creates a customization buffer which shows all the settings and groups
672definitions have been changed since the specified version. (Not just 669whose definitions have been changed since the specified version, loading
673those that are already loaded.) 670them if necessary.
674 671
675@findex customize-saved 672@findex customize-saved
676@findex customize-customized 673@findex customize-customized
677 If you change option values and then decide the change was a 674 If you change settings and then decide the change was a mistake, you
678mistake, you can use two special commands to revisit your previous 675can use two special commands to revisit your previous changes. Use
679changes. Use @kbd{M-x customize-saved} to look at the options that 676@kbd{M-x customize-saved} to look at the settings that you have saved.
680you have saved. Use @kbd{M-x customize-customized} to look at the 677Use @kbd{M-x customize-customized} to look at the settings that you
681options that you have set but not saved. 678have set but not saved.
682 679
683@node Custom Themes 680@node Custom Themes
684@subsection Customization Themes 681@subsection Customization Themes
685@cindex custom themes 682@cindex custom themes
686 683
687@dfn{Custom themes} are collections of customized options that can be 684 @dfn{Custom themes} are collections of settings that can be enabled
688enabled or disabled as a unit. You can use Custom themes to switch 685or disabled as a unit. You can use Custom themes to switch quickly
689quickly and easily between various collections of settings, and to 686and easily between various collections of settings, and to transfer
690transfer such collections from one computer to another. 687such collections from one computer to another.
691 688
692@findex customize-create-theme 689@findex customize-create-theme
693To define a Custom theme, use the command 690 To define a Custom theme, use the command @kbd{M-x
694@kbd{M-x customize-create-theme}, which brings up a buffer named 691customize-create-theme}, which brings up a buffer named @samp{*New
695@samp{*New Custom Theme*}. At the top of the buffer is an editable 692Custom Theme*}. At the top of the buffer is an editable field where
696field where you can specify the name of the theme. To add a 693you can specify the name of the theme. To add a customization option
697customization option to the theme, click on the @samp{INS} button to 694to the theme, click on the @samp{INS} button to open up a field where
698open up a field where you can insert the name of the option. The 695you can insert the name of the option. The current value of that
699current value of that option is applied to the theme. After adding as 696option is applied to the theme. After adding as many options as you
700many options as you like, click on @samp{Done} to save the Custom 697like, click on @samp{Done} to save the Custom theme.
701theme.
702 698
703@vindex custom-theme-directory 699@vindex custom-theme-directory
704Saving a Custom theme named @var{foo} writes its definition into the 700 Saving a Custom theme named @var{foo} writes its definition into the
705file @file{@var{foo}-theme.el}, in the directory @file{~/.emacs.d/} 701file @file{@var{foo}-theme.el}, in the directory @file{~/.emacs.d/}
706(you can specify the directory by setting 702(you can specify the directory by setting
707@code{custom-theme-directory}). 703@code{custom-theme-directory}).
@@ -747,25 +743,26 @@ variable names consist of words separated by hyphens. A variable can
747have a documentation string which describes what kind of value it should 743have a documentation string which describes what kind of value it should
748have and how the value will be used. 744have and how the value will be used.
749 745
750 Lisp allows any variable to have any kind of value, but most variables 746 Emacs Lisp allows any variable (with a few exceptions) to have any
751that Emacs uses need a value of a certain type. Often the value should 747kind of value, but most variables that Emacs uses need a value of a
752always be a string, or should always be a number. Sometimes we say that a 748certain type. Often the value should always be a string, or should
753certain feature is turned on if a variable is ``non-@code{nil},'' meaning 749always be a number. Sometimes we say that a certain feature is turned
754that if the variable's value is @code{nil}, the feature is off, but the 750on if a variable is ``non-@code{nil},'' meaning that if the variable's
755feature is on for @emph{any} other value. The conventional value to use to 751value is @code{nil}, the feature is off, but the feature is on for
756turn on the feature---since you have to pick one particular value when you 752@emph{any} other value. The conventional value to use to turn on the
757set the variable---is @code{t}. 753feature---since you have to pick one particular value when you set the
754variable---is @code{t}.
758 755
759 Emacs uses many Lisp variables for internal record keeping, but the 756 Emacs uses many Lisp variables for internal record keeping, but the
760most interesting variables for a non-programmer user are those that 757most interesting variables for a non-programmer user are those meant
761are also @dfn{user options}, the variables that are meant for users to 758for users to change---the @dfn{user options}.
762change. Each user option that you can set with the customization 759
763buffer is (if it is not a face) in fact a Lisp variable. Emacs does 760 Each user option that you can set with the customization buffer is
764not (usually) change the values of these variables; instead, you set 761in fact a Lisp variable. Emacs does not (usually) change the values
765the values, and thereby alter and control the behavior of certain 762of these variables; instead, you set the values, and thereby alter and
766Emacs commands. Use of the customization buffer is explained above 763control the behavior of certain Emacs commands. Use of the
767(@pxref{Easy Customization}); here we describe other aspects of Emacs 764customization buffer is explained above (@pxref{Easy Customization});
768variables. 765here we describe other aspects of Emacs variables.
769 766
770@menu 767@menu
771* Examining:: Examining or setting one variable's value. 768* Examining:: Examining or setting one variable's value.