aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--man/custom.texi160
1 files changed, 81 insertions, 79 deletions
diff --git a/man/custom.texi b/man/custom.texi
index bbde8b4aaf5..79e0bd60bea 100644
--- a/man/custom.texi
+++ b/man/custom.texi
@@ -178,10 +178,11 @@ region highlighted (currently only when using X). @xref{Mark}.
178 178
179@cindex user option 179@cindex user option
180 Emacs has many @dfn{user options} which have values that you can set 180 Emacs has many @dfn{user options} which have values that you can set
181in order to customize various commands. Most user options are 181in order to customize various commands. Many user options are
182documented in this manual. Each user option is actually a Lisp 182documented in this manual. Most user options are actually Lisp
183variable (@pxref{Variables}), so their names appear in the Variable 183variables (@pxref{Variables}), so their names appear in the Variable
184Index (@pxref{Variable Index}). 184Index (@pxref{Variable Index}). The rest are faces and their
185attributes (@pxref{Faces}).
185 186
186@findex customize 187@findex customize
187@cindex customization buffer 188@cindex customization buffer
@@ -203,7 +204,7 @@ the active fields and other features.
203* Saving Customizations:: Details of saving customizations. 204* Saving Customizations:: Details of saving customizations.
204* Face Customization:: How to edit the attributes of a face. 205* Face Customization:: How to edit the attributes of a face.
205* Specific Customization:: Making a customization buffer for specific 206* Specific Customization:: Making a customization buffer for specific
206 options, faces, or groups. 207 variables, faces, or groups.
207@end menu 208@end menu
208 209
209@node Customization Groups 210@node Customization Groups
@@ -266,7 +267,7 @@ link to another group.
266mainly it contains other groups, which contain more groups, which 267mainly it contains other groups, which contain more groups, which
267contain the user options. By browsing the hierarchy of groups, you 268contain the user options. By browsing the hierarchy of groups, you
268will eventually find the feature you are interested in customizing. 269will eventually find the feature you are interested in customizing.
269Then you can use the customization buffer to set the options and faces 270Then you can use the customization buffer to set the options
270pertaining to that feature. You can also go straight to a particular 271pertaining to that feature. You can also go straight to a particular
271group by name, using the command @kbd{M-x customize-group}. 272group by name, using the command @kbd{M-x customize-group}.
272 273
@@ -274,45 +275,45 @@ group by name, using the command @kbd{M-x customize-group}.
274 You can view the structure of customization groups on a larger scale 275 You can view the structure of customization groups on a larger scale
275with @kbd{M-x customize-browse}. This command creates a special kind of 276with @kbd{M-x customize-browse}. This command creates a special kind of
276customization buffer which shows only the names of the groups (and 277customization buffer which shows only the names of the groups (and
277options and faces), and their structure. 278variables and faces), and their structure.
278 279
279 In this buffer, you can show the contents of a group by invoking 280 In this buffer, you can show the contents of a group by invoking
280@samp{[+]}. When the group contents are visible, this button changes to 281@samp{[+]}. When the group contents are visible, this button changes to
281@samp{[-]}; invoking that hides the group contents. 282@samp{[-]}; invoking that hides the group contents.
282 283
283 Each group, option or face name in this buffer has an active field 284 Each group, variable, or face name in this buffer has an active field
284which says @samp{[Group]}, @samp{[Option]} or @samp{[Face]}. Invoking 285which says @samp{[Group]}, @samp{[Variable]} or @samp{[Face]}. Invoking
285that active field creates an ordinary customization buffer showing just 286that active field creates an ordinary customization buffer showing just
286that group and its contents, just that option, or just that face. 287that group and its contents, just that variable, or just that face.
287This is the way to set values in it. 288This is the way to set values in it.
288 289
289@node Changing an Option 290@node Changing a Variable
290@subsection Changing an Option 291@subsection Changing a Variable
291 292
292 Here is an example of what a user option looks like in the 293 Here is an example of what a variable looks like in the
293customization buffer: 294customization buffer:
294 295
295@smallexample 296@smallexample
296Kill Ring Max: [Hide] 60 297Kill Ring Max: [Hide] 60
297 [State]: this option is unchanged from its standard setting. 298 [State]: this variable is unchanged from its standard setting.
298Maximum length of kill ring before oldest elements are thrown away. 299Maximum length of kill ring before oldest elements are thrown away.
299@end smallexample 300@end smallexample
300 301
301 The text following @samp{[Hide]}, @samp{60} in this case, indicates 302 The text following @samp{[Hide]}, @samp{60} in this case, indicates
302the current value of the option. If you see @samp{[Show]} instead of 303the current value of the variable. If you see @samp{[Show]} instead of
303@samp{[Hide]}, it means that the value is hidden; the customization 304@samp{[Hide]}, it means that the value is hidden; the customization
304buffer initially hides values that take up several lines. Invoke 305buffer initially hides values that take up several lines. Invoke
305@samp{[Show]} to show the value. 306@samp{[Show]} to show the value.
306 307
307 The line after the option name indicates the @dfn{customization state} 308 The line after the option name indicates the @dfn{customization state}
308of the option: in the example above, it says you have not changed the 309of the variable: in the example above, it says you have not changed the
309option yet. The word @samp{[State]} at the beginning of this line is 310option yet. The word @samp{[State]} at the beginning of this line is
310active; you can get a menu of various operations by invoking it with 311active; you can get a menu of various operations by invoking it with
311@kbd{Mouse-1} or @key{RET}. These operations are essential for 312@kbd{Mouse-1} or @key{RET}. These operations are essential for
312customizing the user option. 313customizing the variable.
313 314
314 The line after the @samp{[State]} line displays the beginning of the 315 The line after the @samp{[State]} line displays the beginning of the
315option's documentation string. If there are more lines of 316variable's documentation string. If there are more lines of
316documentation, this line ends with @samp{[More]}; invoke this to show 317documentation, this line ends with @samp{[More]}; invoke this to show
317the full documentation string. 318the full documentation string.
318 319
@@ -324,22 +325,22 @@ another number.
324change to say that you have edited the value: 325change to say that you have edited the value:
325 326
326@smallexample 327@smallexample
327[State]: you have edited the value as text, but not set the option. 328[State]: you have edited the value as text, but not set the variable.
328@end smallexample 329@end smallexample
329 330
330@cindex setting option value 331@cindex setting option value
331 Editing the value does not actually set the option. To do 332 Editing the value does not actually set the variable. To do
332that, you must @dfn{set} the option. To do this, invoke the word 333that, you must @dfn{set} it. To do this, invoke the word
333@samp{[State]} and choose @samp{Set for Current Session}. 334@samp{[State]} and choose @samp{Set for Current Session}.
334 335
335 The state of the option changes visibly when you set it: 336 The state of the variable changes visibly when you set it:
336 337
337@smallexample 338@smallexample
338[State]: you have set this option, but not saved it for future sessions. 339[State]: you have set this variable, but not saved it for future sessions.
339@end smallexample 340@end smallexample
340 341
341 You don't have to worry about specifying a value that is not valid; 342 You don't have to worry about specifying a value that is not valid;
342setting the option checks for validity and will not really install an 343setting the variable checks for validity and will not really install an
343unacceptable value. 344unacceptable value.
344 345
345@kindex M-TAB @r{(customization buffer)} 346@kindex M-TAB @r{(customization buffer)}
@@ -348,15 +349,15 @@ unacceptable value.
348command name, or anything else for which completion is defined, you can 349command name, or anything else for which completion is defined, you can
349type @kbd{M-@key{TAB}} (@code{widget-complete}) to do completion. 350type @kbd{M-@key{TAB}} (@code{widget-complete}) to do completion.
350 351
351 Some options have a small fixed set of possible legitimate values. 352 Some variables have a small fixed set of possible legitimate values.
352These options don't let you edit the value textually. Instead, an 353These variables don't let you edit the value textually. Instead, an
353active field @samp{[Value Menu]} appears before the value; invoke this 354active field @samp{[Value Menu]} appears before the value; invoke this
354field to edit the value. For a boolean ``on or off'' value, the active 355field to edit the value. For a boolean ``on or off'' value, the active
355field says @samp{[Toggle]}, and it changes to the other value. 356field says @samp{[Toggle]}, and it changes to the other value.
356@samp{[Value Menu]} and @samp{[Toggle]} edit the buffer; the changes 357@samp{[Value Menu]} and @samp{[Toggle]} edit the buffer; the changes
357take effect when you use the @samp{Set for Current Session} operation. 358take effect when you use the @samp{Set for Current Session} operation.
358 359
359 Some options have values with complex structure. For example, the 360 Some variables have values with complex structure. For example, the
360value of @code{file-coding-system-alist} is an association list. Here 361value of @code{file-coding-system-alist} is an association list. Here
361is how it appears in the customization buffer: 362is how it appears in the customization buffer:
362 363
@@ -379,7 +380,7 @@ File Coding System Alist: [Hide]
379 Decoding: undecided 380 Decoding: undecided
380 Encoding: nil 381 Encoding: nil
381[INS] 382[INS]
382 [State]: this option is unchanged from its standard setting. 383 [State]: this variable is unchanged from its standard setting.
383Alist to decide a coding system to use for a file I/O operation. [Hide] 384Alist to decide a coding system to use for a file I/O operation. [Hide]
384The format is ((PATTERN . VAL) ...), 385The format is ((PATTERN . VAL) ...),
385where PATTERN is a regular expression matching a file name, 386where PATTERN is a regular expression matching a file name,
@@ -415,37 +416,37 @@ previous active or editable field.
415when they are finished editing a field. To insert a newline within an 416when they are finished editing a field. To insert a newline within an
416editable field, use @kbd{C-o} or @kbd{C-q C-j}. 417editable field, use @kbd{C-o} or @kbd{C-q C-j}.
417 418
418@cindex saving option value 419@cindex saving variable value
419@cindex customized options, saving 420@cindex customized variables, saving
420 Setting the option changes its value in the current Emacs session; 421 Setting the variable changes its value in the current Emacs session;
421@dfn{saving} the value changes it for future sessions as well. To 422@dfn{saving} the value changes it for future sessions as well. To
422save the option, invoke @samp{[State]} and select the @samp{Save for 423save the variable, invoke @samp{[State]} and select the @samp{Save for
423Future Sessions} operation. This works by writing code so as to set 424Future Sessions} operation. This works by writing code so as to set
424the option again, each time you start Emacs (@pxref{Saving 425the variable again, each time you start Emacs (@pxref{Saving
425Customizations}). 426Customizations}).
426 427
427 You can also restore the option to its standard value by invoking 428 You can also restore the variable to its standard value by invoking
428@samp{[State]} and selecting the @samp{Erase Customization} operation. 429@samp{[State]} and selecting the @samp{Erase Customization} operation.
429There are actually three reset operations: 430There are actually three reset operations:
430 431
431@table @samp 432@table @samp
432@item Reset 433@item Reset
433If you have made some modifications and not yet set the option, 434If you have made some modifications and not yet set the variable,
434this restores the text in the customization buffer to match 435this restores the text in the customization buffer to match
435the actual value. 436the actual value.
436 437
437@item Reset to Saved 438@item Reset to Saved
438This restores the value of the option to the last saved value, 439This restores the value of the variable to the last saved value,
439and updates the text accordingly. 440and updates the text accordingly.
440 441
441@item Erase Customization 442@item Erase Customization
442This sets the option to its standard value, and updates the text 443This sets the variable to its standard value, and updates the text
443accordingly. This also eliminates any saved value for the option, 444accordingly. This also eliminates any saved value for the option,
444so that you will get the standard value in future Emacs sessions. 445so that you will get the standard value in future Emacs sessions.
445 446
446@item Use Backup Value 447@item Use Backup Value
447This sets the option to a previous value that was set in the 448This sets the variable to a previous value that was set in the
448customization buffer in this session. If you customize an option 449customization buffer in this session. If you customize a variable
449and then reset it, which discards the customized value, 450and then reset it, which discards the customized value,
450you can get the customized value back again with this operation. 451you can get the customized value back again with this operation.
451@end table 452@end table
@@ -455,7 +456,7 @@ you can get the customized value back again with this operation.
455customization. Use the @samp{Add Comment} item from the 456customization. Use the @samp{Add Comment} item from the
456@samp{[State]} menu to create a field for entering the comment. The 457@samp{[State]} menu to create a field for entering the comment. The
457comment you enter will be saved, and displayed again if you again view 458comment you enter will be saved, and displayed again if you again view
458the same option in a customization buffer, even in another session. 459the same variable in a customization buffer, even in another session.
459 460
460 The state of a group indicates whether anything in that group has been 461 The state of a group indicates whether anything in that group has been
461edited, set or saved. You can select @samp{Set for Current Session}, 462edited, set or saved. You can select @samp{Set for Current Session},
@@ -477,8 +478,9 @@ Invoking @samp{[Finish]} either buries or kills this customization
477buffer according to the setting of the option 478buffer according to the setting of the option
478@code{custom-buffer-done-function}; the default is to bury the buffer. 479@code{custom-buffer-done-function}; the default is to bury the buffer.
479Each of the other fields performs an operation---set, save or 480Each of the other fields performs an operation---set, save or
480reset---on each of the items in the buffer that could meaningfully be 481reset---on each of the options in the buffer that could meaningfully
481set, saved or reset. 482be set, saved or reset. They do not operate on options whose values
483are hidden.
482 484
483@node Saving Customizations 485@node Saving Customizations
484@subsection Saving Customizations 486@subsection Saving Customizations
@@ -525,8 +527,8 @@ customizations you might have on your init file.
525@cindex italic font 527@cindex italic font
526@cindex fonts and faces 528@cindex fonts and faces
527 529
528 In addition to user options, some customization groups also include 530 In addition to variables, some customization groups also include
529faces. When you show the contents of a group, both the user options and 531faces. When you show the contents of a group, both the variables and
530the faces in the group appear in the customization buffer. Here is an 532the faces in the group appear in the customization buffer. Here is an
531example of how a face looks: 533example of how a face looks:
532 534
@@ -568,7 +570,7 @@ black-and-white display, the colors you can use for the background are
568stipple patterns instead of a color. 570stipple patterns instead of a color.
569 571
570 Setting, saving and resetting a face work like the same operations for 572 Setting, saving and resetting a face work like the same operations for
571options (@pxref{Changing an Option}). 573variables (@pxref{Changing a Variable}).
572 574
573 A face can specify different appearances for different types of 575 A face can specify different appearances for different types of
574display. For example, a face can make text red on a color display, but 576display. For example, a face can make text red on a color display, but
@@ -588,37 +590,37 @@ to clear out the attribute.
588@subsection Customizing Specific Items 590@subsection Customizing Specific Items
589 591
590 Instead of finding the options you want to change by moving down 592 Instead of finding the options you want to change by moving down
591through the structure of groups, you can specify the particular option, 593through the structure of groups, you can specify the particular variable,
592face or group that you want to customize. 594face, or group that you want to customize.
593 595
594@table @kbd 596@table @kbd
595@item M-x customize-option @key{RET} @var{option} @key{RET} 597@item M-x customize-variable @key{RET} @var{variable} @key{RET}
596Set up a customization buffer with just one option, @var{option}. 598Set up a customization buffer with just one variable, @var{variable}.
597@item M-x customize-face @key{RET} @var{face} @key{RET} 599@item M-x customize-face @key{RET} @var{face} @key{RET}
598Set up a customization buffer with just one face, @var{face}. 600Set up a customization buffer with just one face, @var{face}.
599@item M-x customize-group @key{RET} @var{group} @key{RET} 601@item M-x customize-group @key{RET} @var{group} @key{RET}
600Set up a customization buffer with just one group, @var{group}. 602Set up a customization buffer with just one group, @var{group}.
601@item M-x customize-apropos @key{RET} @var{regexp} @key{RET} 603@item M-x customize-apropos @key{RET} @var{regexp} @key{RET}
602Set up a customization buffer with all the options, faces and groups 604Set up a customization buffer with all the variables, faces and groups
603that match @var{regexp}. 605that match @var{regexp}.
604@item M-x customize-changed-options @key{RET} @var{version} @key{RET} 606@item M-x customize-changed-options @key{RET} @var{version} @key{RET}
605Set up a customization buffer with all the options, faces and groups 607Set up a customization buffer with all the variables, faces and groups
606whose meaning has changed since Emacs version @var{version}. 608whose meaning has changed since Emacs version @var{version}.
607@item M-x customize-saved 609@item M-x customize-saved
608Set up a customization buffer containing all options and faces that you 610Set up a customization buffer containing all variables and faces that you
609have saved with customization buffers. 611have saved with customization buffers.
610@item M-x customize-customized 612@item M-x customize-customized
611Set up a customization buffer containing all options and faces that you 613Set up a customization buffer containing all variables and faces that you
612have customized but not saved. 614have customized but not saved.
613@end table 615@end table
614 616
615@findex customize-option 617@findex customize-variable
616 If you want to alter a particular user option with the 618 If you want to alter a particular variable with the customization
617customization buffer, and you know its name, you can use the command 619buffer, and you know its name, you can use the command @kbd{M-x
618@kbd{M-x customize-option} and specify the option name. This sets up 620customize-variable} and specify the variable name. This sets up the
619the customization buffer with just one option---the one that you asked 621customization buffer with just one variable---the one that you asked
620for. Editing, setting and saving the value work as described above, but 622for. Editing, setting and saving the value work as described above,
621only for the specified option. 623but only for the specified variable.
622 624
623@findex customize-face 625@findex customize-face
624 Likewise, you can modify a specific face, chosen by name, using 626 Likewise, you can modify a specific face, chosen by name, using
@@ -650,11 +652,11 @@ definitions have been changed since the specified version.
650 652
651@findex customize-saved 653@findex customize-saved
652@findex customize-customized 654@findex customize-customized
653 If you change option values and then decide the change was a mistake, 655 If you change option values and then decide the change was a
654you can use two special commands to revisit your previous changes. Use 656mistake, you can use two special commands to revisit your previous
655@kbd{M-x customize-saved} to look at the options and faces that you have 657changes. Use @kbd{M-x customize-saved} to look at the options that
656saved. Use @kbd{M-x customize-customized} to look at the options and 658you have saved. Use @kbd{M-x customize-customized} to look at the
657faces that you have set but not saved. 659options that you have set but not saved.
658 660
659@node Variables 661@node Variables
660@section Variables 662@section Variables
@@ -679,14 +681,14 @@ turn on the feature---since you have to pick one particular value when you
679set the variable---is @code{t}. 681set the variable---is @code{t}.
680 682
681 Emacs uses many Lisp variables for internal record keeping, but the 683 Emacs uses many Lisp variables for internal record keeping, but the
682most interesting variables for a non-programmer user are the @dfn{user 684most interesting variables for a non-programmer user are those that
683options}, the variables that are meant for users to change. Each user 685are also @dfn{user options}, the variables that are meant for users to
684option that you can set with the customization buffer is, in fact, a 686change. Each user option that you can set with the customization
685Lisp variable. Emacs does not (usually) change the values of these 687buffer is (if it is not a face) in fact a Lisp variable. Emacs does
686variables; instead, you set the values, and thereby alter and control 688not (usually) change the values of these variables; instead, you set
687the behavior of certain Emacs commands. Use of the customization 689the values, and thereby alter and control the behavior of certain
688buffer is explained above; here we describe other aspects of Emacs 690Emacs commands. Use of the customization buffer is explained above;
689variables. 691here we describe other aspects of Emacs variables.
690 692
691@menu 693@menu
692* Examining:: Examining or setting one variable's value. 694* Examining:: Examining or setting one variable's value.
@@ -734,10 +736,10 @@ variable is a user option. @kbd{C-h v} is not restricted to user
734options; it allows any variable name. 736options; it allows any variable name.
735 737
736@findex set-variable 738@findex set-variable
737 The most convenient way to set a specific user option is with @kbd{M-x 739 The most convenient way to set a specific user option variable is
738set-variable}. This reads the variable name with the minibuffer (with 740with @kbd{M-x set-variable}. This reads the variable name with the
739completion), and then reads a Lisp expression for the new value using 741minibuffer (with completion), and then reads a Lisp expression for the
740the minibuffer a second time. For example, 742new value using the minibuffer a second time. For example,
741 743
742@example 744@example
743M-x set-variable @key{RET} fill-column @key{RET} 75 @key{RET} 745M-x set-variable @key{RET} fill-column @key{RET} 75 @key{RET}
@@ -1092,10 +1094,10 @@ so you can judge.
1092 The @code{eval} ``variable,'' and certain actual variables, create a 1094 The @code{eval} ``variable,'' and certain actual variables, create a
1093special risk; when you visit someone else's file, local variable 1095special risk; when you visit someone else's file, local variable
1094specifications for these could affect your Emacs in arbitrary ways. 1096specifications for these could affect your Emacs in arbitrary ways.
1095Therefore, the option @code{enable-local-eval} controls whether Emacs 1097Therefore, the variable @code{enable-local-eval} controls whether Emacs
1096processes @code{eval} variables, as well variables with names that end 1098processes @code{eval} variables, as well variables with names that end
1097in @samp{-hook}, @samp{-hooks}, @samp{-function} or @samp{-functions}, 1099in @samp{-hook}, @samp{-hooks}, @samp{-function} or @samp{-functions},
1098and certain other variables. The three possibilities for the option's 1100and certain other variables. The three possibilities for the variable's
1099value are @code{t}, @code{nil}, and anything else, just as for 1101value are @code{t}, @code{nil}, and anything else, just as for
1100@code{enable-local-variables}. The default is @code{maybe}, which is 1102@code{enable-local-variables}. The default is @code{maybe}, which is
1101neither @code{t} nor @code{nil}, so normally Emacs does ask for 1103neither @code{t} nor @code{nil}, so normally Emacs does ask for