diff options
| -rw-r--r-- | man/custom.texi | 271 |
1 files changed, 137 insertions, 134 deletions
diff --git a/man/custom.texi b/man/custom.texi index 6823dc3bfe5..aeddb35b140 100644 --- a/man/custom.texi +++ b/man/custom.texi | |||
| @@ -27,6 +27,8 @@ replay sequences of keys. | |||
| 27 | @menu | 27 | @menu |
| 28 | * Minor Modes:: Each minor mode is one feature you can turn on | 28 | * Minor Modes:: Each minor mode is one feature you can turn on |
| 29 | independently of any others. | 29 | independently of any others. |
| 30 | * Easy Customization:: | ||
| 31 | Convenient way to browse and change user options. | ||
| 30 | * Variables:: Many Emacs commands examine Emacs variables | 32 | * Variables:: Many Emacs commands examine Emacs variables |
| 31 | to decide what to do; by setting variables, | 33 | to decide what to do; by setting variables, |
| 32 | you can control their functioning. | 34 | you can control their functioning. |
| @@ -171,132 +173,28 @@ explicitly ``reactivate'' it, before each command that uses the region. | |||
| 171 | The advantage of Transient Mark mode is that Emacs can display the | 173 | The advantage of Transient Mark mode is that Emacs can display the |
| 172 | region highlighted (currently only when using X). @xref{Mark}. | 174 | region highlighted (currently only when using X). @xref{Mark}. |
| 173 | 175 | ||
| 174 | @node Variables | ||
| 175 | @section Variables | ||
| 176 | @cindex variable | ||
| 177 | @cindex option, user | ||
| 178 | @cindex user option | ||
| 179 | |||
| 180 | A @dfn{variable} is a Lisp symbol which has a value. The symbol's | ||
| 181 | name is also called the name of the variable. A variable name can | ||
| 182 | contain any characters that can appear in a file, but conventionally | ||
| 183 | variable names consist of words separated by hyphens. A variable can | ||
| 184 | have a documentation string which describes what kind of value it should | ||
| 185 | have and how the value will be used. | ||
| 186 | |||
| 187 | Lisp allows any variable to have any kind of value, but most variables | ||
| 188 | that Emacs uses require a value of a certain type. Often the value should | ||
| 189 | always be a string, or should always be a number. Sometimes we say that a | ||
| 190 | certain feature is turned on if a variable is ``non-@code{nil},'' meaning | ||
| 191 | that if the variable's value is @code{nil}, the feature is off, but the | ||
| 192 | feature is on for @emph{any} other value. The conventional value to use to | ||
| 193 | turn on the feature---since you have to pick one particular value when you | ||
| 194 | set the variable---is @code{t}. | ||
| 195 | |||
| 196 | Emacs uses many Lisp variables for internal record keeping, as any | ||
| 197 | Lisp program must, but the most interesting variables for you are the | ||
| 198 | ones that exist for the sake of customization. Emacs does not (usually) | ||
| 199 | change the values of these variables; instead, you set the values, and | ||
| 200 | thereby alter and control the behavior of certain Emacs commands. These | ||
| 201 | variables are called @dfn{user options}. Most user options are | ||
| 202 | documented in this manual, and appear in the Variable Index | ||
| 203 | (@pxref{Variable Index}). | ||
| 204 | |||
| 205 | One example of a variable which is a user option is @code{fill-column}, which | ||
| 206 | specifies the position of the right margin (as a number of characters from | ||
| 207 | the left margin) to be used by the fill commands (@pxref{Filling}). | ||
| 208 | |||
| 209 | @menu | ||
| 210 | * Examining:: Examining or setting one variable's value. | ||
| 211 | * Easy Customization:: | ||
| 212 | Convenient and easy customization of variables. | ||
| 213 | * Hooks:: Hook variables let you specify programs for parts | ||
| 214 | of Emacs to run on particular occasions. | ||
| 215 | * Locals:: Per-buffer values of variables. | ||
| 216 | * File Variables:: How files can specify variable values. | ||
| 217 | @end menu | ||
| 218 | |||
| 219 | @node Examining | ||
| 220 | @subsection Examining and Setting Variables | ||
| 221 | @cindex setting variables | ||
| 222 | |||
| 223 | @table @kbd | ||
| 224 | @item C-h v @var{var} @key{RET} | ||
| 225 | Display the value and documentation of variable @var{var} | ||
| 226 | (@code{describe-variable}). | ||
| 227 | @item M-x set-variable @key{RET} @var{var} @key{RET} @var{value} @key{RET} | ||
| 228 | Change the value of variable @var{var} to @var{value}. | ||
| 229 | @end table | ||
| 230 | |||
| 231 | To examine the value of a single variable, use @kbd{C-h v} | ||
| 232 | (@code{describe-variable}), which reads a variable name using the | ||
| 233 | minibuffer, with completion. It displays both the value and the | ||
| 234 | documentation of the variable. For example, | ||
| 235 | |||
| 236 | @example | ||
| 237 | C-h v fill-column @key{RET} | ||
| 238 | @end example | ||
| 239 | |||
| 240 | @noindent | ||
| 241 | displays something like this: | ||
| 242 | |||
| 243 | @smallexample | ||
| 244 | fill-column's value is 70 | ||
| 245 | |||
| 246 | Documentation: | ||
| 247 | *Column beyond which automatic line-wrapping should happen. | ||
| 248 | Automatically becomes buffer-local when set in any fashion. | ||
| 249 | @end smallexample | ||
| 250 | |||
| 251 | @noindent | ||
| 252 | The star at the beginning of the documentation indicates that this | ||
| 253 | variable is a user option. @kbd{C-h v} is not restricted to user | ||
| 254 | options; it allows any variable name. | ||
| 255 | |||
| 256 | @findex set-variable | ||
| 257 | The most convenient way to set a specific user option is with @kbd{M-x | ||
| 258 | set-variable}. This reads the variable name with the minibuffer (with | ||
| 259 | completion), and then reads a Lisp expression for the new value using | ||
| 260 | the minibuffer a second time. For example, | ||
| 261 | |||
| 262 | @example | ||
| 263 | M-x set-variable @key{RET} fill-column @key{RET} 75 @key{RET} | ||
| 264 | @end example | ||
| 265 | |||
| 266 | @noindent | ||
| 267 | sets @code{fill-column} to 75. | ||
| 268 | |||
| 269 | @kbd{M-x set-variable} is limited to user option variables, but you can | ||
| 270 | set any variable with a Lisp expression, using the function @code{setq}. | ||
| 271 | Here is a @code{setq} expression to set @code{fill-column}: | ||
| 272 | |||
| 273 | @example | ||
| 274 | (setq fill-column 75) | ||
| 275 | @end example | ||
| 276 | |||
| 277 | To execute an expression like this one, go to the @samp{*scratch*} | ||
| 278 | buffer, type in the expression, and then type @kbd{C-j}. @xref{Lisp | ||
| 279 | Interaction}. | ||
| 280 | |||
| 281 | Setting variables, like all means of customizing Emacs except where | ||
| 282 | otherwise stated, affects only the current Emacs session. | ||
| 283 | |||
| 284 | @node Easy Customization | 176 | @node Easy Customization |
| 285 | @subsection Easy Customization Interface | 177 | @section Easy Customization Interface |
| 178 | |||
| 179 | @cindex user option | ||
| 180 | Emacs has many @dfn{user options} which have values that you can set | ||
| 181 | in order to customize various commands. Most user options are | ||
| 182 | documented in this manual. Each user option is actually a Lisp | ||
| 183 | variable (@pxref{Variables}), so their names appear in the Variable | ||
| 184 | Index (@pxref{Variable Index}). | ||
| 286 | 185 | ||
| 287 | @findex customize | 186 | @findex customize |
| 288 | @cindex customization buffer | 187 | @cindex customization buffer |
| 289 | A convenient way to find the user option variables that you want to | 188 | You can browse interactively through the the user options and change |
| 290 | change, and then change them, is with @kbd{M-x customize}. This | 189 | some of them using @kbd{M-x customize}. This command creates a |
| 291 | command creates a @dfn{customization buffer} with which you can browse | 190 | @dfn{customization buffer}, which offers commands to navigate through |
| 292 | through the Emacs user options in a logically organized structure, | 191 | a logically organized structure of the Emacs user options; you can |
| 293 | then edit and set their values. You can also use the customization | 192 | also use it to edit and set their values, and to save settings |
| 294 | buffer to save settings permanently in your @file{~/.emacs} file | 193 | permanently in your @file{~/.emacs} file (@pxref{Init File}). |
| 295 | (@pxref{Init File}). | 194 | |
| 296 | 195 | The appearance of the example buffers in this section is typically | |
| 297 | The appearance of the example buffers in the following is typically | 196 | different under a window system, since faces are then used to indicate |
| 298 | different under a window system where faces can be used to indicate the | 197 | the active fields and other features. |
| 299 | active fields and other features. | ||
| 300 | 198 | ||
| 301 | @menu | 199 | @menu |
| 302 | * Groups: Customization Groups. | 200 | * Groups: Customization Groups. |
| @@ -309,7 +207,7 @@ active fields and other features. | |||
| 309 | @end menu | 207 | @end menu |
| 310 | 208 | ||
| 311 | @node Customization Groups | 209 | @node Customization Groups |
| 312 | @subsubsection Customization Groups | 210 | @subsection Customization Groups |
| 313 | @cindex customization groups | 211 | @cindex customization groups |
| 314 | 212 | ||
| 315 | For customization purposes, user options are organized into | 213 | For customization purposes, user options are organized into |
| @@ -389,7 +287,7 @@ that group and its contents, just that option, or just that face. | |||
| 389 | This is the way to set values in it. | 287 | This is the way to set values in it. |
| 390 | 288 | ||
| 391 | @node Changing an Option | 289 | @node Changing an Option |
| 392 | @subsubsection Changing an Option | 290 | @subsection Changing an Option |
| 393 | 291 | ||
| 394 | Here is an example of what a user option looks like in the | 292 | Here is an example of what a user option looks like in the |
| 395 | customization buffer: | 293 | customization buffer: |
| @@ -411,7 +309,7 @@ of the option: in the example above, it says you have not changed the | |||
| 411 | option yet. The word @samp{[State]} at the beginning of this line is | 309 | option yet. The word @samp{[State]} at the beginning of this line is |
| 412 | active; you can get a menu of various operations by invoking it with | 310 | active; you can get a menu of various operations by invoking it with |
| 413 | @kbd{Mouse-1} or @key{RET}. These operations are essential for | 311 | @kbd{Mouse-1} or @key{RET}. These operations are essential for |
| 414 | customizing the variable. | 312 | customizing the user option. |
| 415 | 313 | ||
| 416 | The line after the @samp{[State]} line displays the beginning of the | 314 | The line after the @samp{[State]} line displays the beginning of the |
| 417 | option's documentation string. If there are more lines of | 315 | option's documentation string. If there are more lines of |
| @@ -430,7 +328,7 @@ change to say that you have edited the value: | |||
| 430 | @end smallexample | 328 | @end smallexample |
| 431 | 329 | ||
| 432 | @cindex setting option value | 330 | @cindex setting option value |
| 433 | Editing the value does not actually set the option variable. To do | 331 | Editing the value does not actually set the option. To do |
| 434 | that, you must @dfn{set} the option. To do this, invoke the word | 332 | that, you must @dfn{set} the option. To do this, invoke the word |
| 435 | @samp{[State]} and choose @samp{Set for Current Session}. | 333 | @samp{[State]} and choose @samp{Set for Current Session}. |
| 436 | 334 | ||
| @@ -523,7 +421,7 @@ editable field, use @kbd{C-o} or @kbd{C-q C-j}. | |||
| 523 | @dfn{saving} the value changes it for future sessions as well. To | 421 | @dfn{saving} the value changes it for future sessions as well. To |
| 524 | save the option, invoke @samp{[State]} and select the @samp{Save for | 422 | save the option, invoke @samp{[State]} and select the @samp{Save for |
| 525 | Future Sessions} operation. This works by writing code so as to set | 423 | Future Sessions} operation. This works by writing code so as to set |
| 526 | the option variable again each time you start Emacs (@pxref{Saving | 424 | the option again, each time you start Emacs (@pxref{Saving |
| 527 | Customizations}). | 425 | Customizations}). |
| 528 | 426 | ||
| 529 | You can also restore the option to its standard value by invoking | 427 | You can also restore the option to its standard value by invoking |
| @@ -547,8 +445,8 @@ so that you will get the standard value in future Emacs sessions. | |||
| 547 | 445 | ||
| 548 | @item Use Backup Value | 446 | @item Use Backup Value |
| 549 | This sets the option to a previous value that was set in the | 447 | This sets the option to a previous value that was set in the |
| 550 | customization buffer in this session. If you customize a variable | 448 | customization buffer in this session. If you customize an option |
| 551 | and then reset the variable, which discards the customized value, | 449 | and then reset it, which discards the customized value, |
| 552 | you can get the customized value back again with this operation. | 450 | you can get the customized value back again with this operation. |
| 553 | @end table | 451 | @end table |
| 554 | 452 | ||
| @@ -583,7 +481,7 @@ reset---on each of the items in the buffer that could meaningfully be | |||
| 583 | set, saved or reset. | 481 | set, saved or reset. |
| 584 | 482 | ||
| 585 | @node Saving Customizations | 483 | @node Saving Customizations |
| 586 | @subsubsection Saving Customizations | 484 | @subsection Saving Customizations |
| 587 | 485 | ||
| 588 | @vindex custom-file | 486 | @vindex custom-file |
| 589 | The customization buffer normally saves customizations in | 487 | The customization buffer normally saves customizations in |
| @@ -615,7 +513,7 @@ saving customizations from such a session would wipe out all the other | |||
| 615 | customizations you might have on your init file. | 513 | customizations you might have on your init file. |
| 616 | 514 | ||
| 617 | @node Face Customization | 515 | @node Face Customization |
| 618 | @subsubsection Customizing Faces | 516 | @subsection Customizing Faces |
| 619 | @cindex customizing faces | 517 | @cindex customizing faces |
| 620 | @cindex bold font | 518 | @cindex bold font |
| 621 | @cindex italic font | 519 | @cindex italic font |
| @@ -676,7 +574,7 @@ you don't want to change that attribute. Type @samp{none} if you want | |||
| 676 | to clear out the attribute. | 574 | to clear out the attribute. |
| 677 | 575 | ||
| 678 | @node Specific Customization | 576 | @node Specific Customization |
| 679 | @subsubsection Customizing Specific Items | 577 | @subsection Customizing Specific Items |
| 680 | 578 | ||
| 681 | Instead of finding the options you want to change by moving down | 579 | Instead of finding the options you want to change by moving down |
| 682 | through the structure of groups, you can specify the particular option, | 580 | through the structure of groups, you can specify the particular option, |
| @@ -704,7 +602,7 @@ have customized but not saved. | |||
| 704 | @end table | 602 | @end table |
| 705 | 603 | ||
| 706 | @findex customize-option | 604 | @findex customize-option |
| 707 | If you want to alter a particular user option variable with the | 605 | If you want to alter a particular user option with the |
| 708 | customization buffer, and you know its name, you can use the command | 606 | customization buffer, and you know its name, you can use the command |
| 709 | @kbd{M-x customize-option} and specify the option name. This sets up | 607 | @kbd{M-x customize-option} and specify the option name. This sets up |
| 710 | the customization buffer with just one option---the one that you asked | 608 | the customization buffer with just one option---the one that you asked |
| @@ -719,7 +617,7 @@ on the character after point. | |||
| 719 | @findex customize-group | 617 | @findex customize-group |
| 720 | You can also set up the customization buffer with a specific group, | 618 | You can also set up the customization buffer with a specific group, |
| 721 | using @kbd{M-x customize-group}. The immediate contents of the chosen | 619 | using @kbd{M-x customize-group}. The immediate contents of the chosen |
| 722 | group, including option variables, faces, and other groups, all appear | 620 | group, including user options, faces, and other groups, all appear |
| 723 | as well. However, these subgroups' own contents start out hidden. You | 621 | as well. However, these subgroups' own contents start out hidden. You |
| 724 | can show their contents in the usual way, by invoking @samp{[Show]}. | 622 | can show their contents in the usual way, by invoking @samp{[Show]}. |
| 725 | 623 | ||
| @@ -747,6 +645,111 @@ you can use two special commands to revisit your previous changes. Use | |||
| 747 | saved. Use @kbd{M-x customize-customized} to look at the options and | 645 | saved. Use @kbd{M-x customize-customized} to look at the options and |
| 748 | faces that you have set but not saved. | 646 | faces that you have set but not saved. |
| 749 | 647 | ||
| 648 | @node Variables | ||
| 649 | @section Variables | ||
| 650 | @cindex variable | ||
| 651 | @cindex option, user | ||
| 652 | @cindex user option | ||
| 653 | |||
| 654 | A @dfn{variable} is a Lisp symbol which has a value. The symbol's | ||
| 655 | name is also called the name of the variable. A variable name can | ||
| 656 | contain any characters that can appear in a file, but conventionally | ||
| 657 | variable names consist of words separated by hyphens. A variable can | ||
| 658 | have a documentation string which describes what kind of value it should | ||
| 659 | have and how the value will be used. | ||
| 660 | |||
| 661 | Lisp allows any variable to have any kind of value, but most variables | ||
| 662 | that Emacs uses need a value of a certain type. Often the value should | ||
| 663 | always be a string, or should always be a number. Sometimes we say that a | ||
| 664 | certain feature is turned on if a variable is ``non-@code{nil},'' meaning | ||
| 665 | that if the variable's value is @code{nil}, the feature is off, but the | ||
| 666 | feature is on for @emph{any} other value. The conventional value to use to | ||
| 667 | turn on the feature---since you have to pick one particular value when you | ||
| 668 | set the variable---is @code{t}. | ||
| 669 | |||
| 670 | Emacs uses many Lisp variables for internal record keeping, but the | ||
| 671 | most interesting variables for a non-programmer user are the @dfn{user | ||
| 672 | options}, the variables that are meant for users to change. Each user | ||
| 673 | option that you can set with the customization buffera is, in fact, a | ||
| 674 | Lisp variable. Emacs does not (usually) change the values of these | ||
| 675 | variables; instead, you set the values, and thereby alter and control | ||
| 676 | the behavior of certain Emacs commands. Use of the customization | ||
| 677 | buffer is explained above; here we describe other aspects of Emacs | ||
| 678 | variables. | ||
| 679 | |||
| 680 | @menu | ||
| 681 | * Examining:: Examining or setting one variable's value. | ||
| 682 | * Hooks:: Hook variables let you specify programs for parts | ||
| 683 | of Emacs to run on particular occasions. | ||
| 684 | * Locals:: Per-buffer values of variables. | ||
| 685 | * File Variables:: How files can specify variable values. | ||
| 686 | @end menu | ||
| 687 | |||
| 688 | @node Examining | ||
| 689 | @subsection Examining and Setting Variables | ||
| 690 | @cindex setting variables | ||
| 691 | |||
| 692 | @table @kbd | ||
| 693 | @item C-h v @var{var} @key{RET} | ||
| 694 | Display the value and documentation of variable @var{var} | ||
| 695 | (@code{describe-variable}). | ||
| 696 | @item M-x set-variable @key{RET} @var{var} @key{RET} @var{value} @key{RET} | ||
| 697 | Change the value of variable @var{var} to @var{value}. | ||
| 698 | @end table | ||
| 699 | |||
| 700 | To examine the value of a single variable, use @kbd{C-h v} | ||
| 701 | (@code{describe-variable}), which reads a variable name using the | ||
| 702 | minibuffer, with completion. It displays both the value and the | ||
| 703 | documentation of the variable. For example, | ||
| 704 | |||
| 705 | @example | ||
| 706 | C-h v fill-column @key{RET} | ||
| 707 | @end example | ||
| 708 | |||
| 709 | @noindent | ||
| 710 | displays something like this: | ||
| 711 | |||
| 712 | @smallexample | ||
| 713 | fill-column's value is 70 | ||
| 714 | |||
| 715 | Documentation: | ||
| 716 | *Column beyond which automatic line-wrapping should happen. | ||
| 717 | Automatically becomes buffer-local when set in any fashion. | ||
| 718 | @end smallexample | ||
| 719 | |||
| 720 | @noindent | ||
| 721 | The star at the beginning of the documentation indicates that this | ||
| 722 | variable is a user option. @kbd{C-h v} is not restricted to user | ||
| 723 | options; it allows any variable name. | ||
| 724 | |||
| 725 | @findex set-variable | ||
| 726 | The most convenient way to set a specific user option is with @kbd{M-x | ||
| 727 | set-variable}. This reads the variable name with the minibuffer (with | ||
| 728 | completion), and then reads a Lisp expression for the new value using | ||
| 729 | the minibuffer a second time. For example, | ||
| 730 | |||
| 731 | @example | ||
| 732 | M-x set-variable @key{RET} fill-column @key{RET} 75 @key{RET} | ||
| 733 | @end example | ||
| 734 | |||
| 735 | @noindent | ||
| 736 | sets @code{fill-column} to 75. | ||
| 737 | |||
| 738 | @kbd{M-x set-variable} is limited to user option variables, but you can | ||
| 739 | set any variable with a Lisp expression, using the function @code{setq}. | ||
| 740 | Here is a @code{setq} expression to set @code{fill-column}: | ||
| 741 | |||
| 742 | @example | ||
| 743 | (setq fill-column 75) | ||
| 744 | @end example | ||
| 745 | |||
| 746 | To execute an expression like this one, go to the @samp{*scratch*} | ||
| 747 | buffer, type in the expression, and then type @kbd{C-j}. @xref{Lisp | ||
| 748 | Interaction}. | ||
| 749 | |||
| 750 | Setting variables, like all means of customizing Emacs except where | ||
| 751 | otherwise stated, affects only the current Emacs session. | ||
| 752 | |||
| 750 | @node Hooks | 753 | @node Hooks |
| 751 | @subsection Hooks | 754 | @subsection Hooks |
| 752 | @cindex hook | 755 | @cindex hook |