diff options
| author | Richard M. Stallman | 2005-12-23 01:46:33 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 2005-12-23 01:46:33 +0000 |
| commit | 5552d5a425bfeef0b89fe43b0cda03554ee3bd98 (patch) | |
| tree | ea1910a7c7f208587e9e12f4f10cbba91a732ebd | |
| parent | 50137744b86d2871f41cb7d1043eda48a90b7ecd (diff) | |
| download | emacs-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.texi | 325 |
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 |
| 188 | in order to customize various commands. Many user options are | 188 | in order to customize various commands. Many are documented in this |
| 189 | documented in this manual. Most user options are actually Lisp | 189 | manual. Most settings are @dfn{user options}---that is to say, Lisp |
| 190 | variables (@pxref{Variables}), so their names appear in the Variable | 190 | variables (@pxref{Variables})---so their names appear in the Variable |
| 191 | Index (@pxref{Variable Index}). The rest are faces and their | 191 | Index (@pxref{Variable Index}). The other settings are faces and |
| 192 | attributes (@pxref{Faces}). | 192 | their 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 |
| 197 | some 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 | 198 | buffer}, which offers commands to navigate through a logically |
| 199 | a logically organized structure of the Emacs user options; you can | 199 | organized structure of the Emacs settings; you can also use it to edit |
| 200 | also use it to edit and set their values, and to save settings | 200 | and set their values, and to save settings permanently in your |
| 201 | permanently 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 |
| 204 | different under a window system, since faces are then used to indicate | 204 | different under a window system, since faces are then used to indicate |
| 205 | the active fields and other features. | 205 | buttons 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 | 224 | to help you find them. Groups are collected into bigger groups, all |
| 225 | groups, all the way up to a master group called @code{Emacs}. | 225 | the 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 |
| 228 | top-level @code{Emacs} group and the second-level groups immediately | 228 | top-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]} | |||
| 255 | line. | 255 | line. |
| 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 |
| 260 | typically includes some @dfn{editable fields} that you can edit. There | 260 | typically includes some @dfn{editable fields} that you can edit. |
| 261 | are also @dfn{active fields}; this means a field that does something | 261 | There are also @dfn{buttons}, which do something when you @dfn{invoke} |
| 262 | when you @dfn{invoke} it. To invoke an active field, either click on it | 262 | them. To invoke a button, either click on it with @kbd{Mouse-1}, or |
| 263 | with @kbd{Mouse-1}, or move point to it and type @key{RET}. | 263 | move 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 |
| 266 | second-level group is an active field. Invoking the @samp{[Go to | 266 | second-level group is a button. Invoking it creates a new |
| 267 | Group]} field for a group creates a new customization buffer, which | 267 | customization buffer, which shows that group and its contents. This |
| 268 | shows that group and its contents. This field is a kind of hypertext | 268 | is a kind of hypertext link to another group. |
| 269 | link 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 | 271 | contains other groups, which contain more groups, which contain the |
| 272 | mainly it contains other groups, which contain more groups, which | 272 | settings. By browsing the hierarchy of groups, you will eventually |
| 273 | contain the user options. By browsing the hierarchy of groups, you | 273 | find the feature you are interested in customizing. Then you can use |
| 274 | will eventually find the feature you are interested in customizing. | 274 | the customization buffer to set that feature's settings. You can also |
| 275 | Then you can use the customization buffer to set the options | 275 | go straight to a particular group by name, using the command @kbd{M-x |
| 276 | pertaining to that feature. You can also go straight to a particular | 276 | customize-group}. |
| 277 | group 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 |
| 282 | You can use @kbd{M-x customize} to browse the groups and options, but | 281 | |
| 283 | often @kbd{M-x customize-browse} is a more efficient alternative. | 282 | @kbd{M-x customize-browse} is another way to browse the available |
| 284 | That is because it lets you view the structure of customization groups | 283 | settings. This command creates a special customization buffer which |
| 285 | on a larger scale. This command creates a special kind of | 284 | shows only the names of groups and settings, and puts them in a |
| 286 | customization buffer which shows only the names of the groups (and | 285 | structure. |
| 287 | variables 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]}, |
| 294 | which says @samp{[Group]}, @samp{[Option]} or @samp{[Face]}. Invoking | 292 | @samp{[Option]} or @samp{[Face]}. Invoking this button creates an |
| 295 | that active field creates an ordinary customization buffer showing just | 293 | ordinary customization buffer showing just that group and its |
| 296 | that group and its contents, just that variable, or just that face. | 294 | contents, just that user option, or just that face. This is the way |
| 297 | This is the way to set values in it. | 295 | to 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 |
| 300 | in, then sometimes @kbd{M-x customize-apropos} can be another useful | 298 | in, @kbd{M-x customize-apropos} is another way to search for settings. |
| 301 | way to search for options. However, unlike @code{customize} and | 299 | However, 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 |
| 303 | options that are loaded in the current Emacs session. @xref{Specific | 301 | loaded in the current Emacs session. @xref{Specific Customization,, |
| 304 | Customization,, Customizing Specific Items}. | 302 | Customizing 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 |
| 310 | customization buffer: | 308 | the customization buffer: |
| 311 | 309 | ||
| 312 | @smallexample | 310 | @smallexample |
| 313 | Kill Ring Max: [Hide Value] 60 | 311 | Kill Ring Max: [Hide Value] 60 |
| @@ -321,34 +319,32 @@ the current value of the variable. If you see @samp{[Show Value]} instead of | |||
| 321 | buffer initially hides values that take up several lines. Invoke | 319 | buffer 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 |
| 325 | of the variable: in the example above, it says you have not changed the | 323 | state} of the variable: in the example above, it says you have not |
| 326 | option yet. The word @samp{[State]} at the beginning of this line is | 324 | changed the option yet. The @samp{[State]} button at the beginning of |
| 327 | active; you can get a menu of various operations by invoking it with | 325 | this line gives you a menu of various operations for customizing the |
| 328 | @kbd{Mouse-1} or @key{RET}. These operations are essential for | 326 | variable. |
| 329 | customizing 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 |
| 332 | variable's documentation string. If there are more lines of | 329 | variable's documentation string. If there are more lines of |
| 333 | documentation, this line ends with @samp{[More]}; invoke this to show | 330 | documentation, this line ends with a @samp{[More]} button; invoke that |
| 334 | the full documentation string. | 331 | to show the full documentation string. |
| 335 | |||
| 336 | To enter a new value for @samp{Kill Ring Max}, move point to the value | ||
| 337 | and edit it textually. For example, you can type @kbd{M-d}, then insert | ||
| 338 | another 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 |
| 341 | change to say that you have edited the value: | 334 | value and edit it textually. For example, you can type @kbd{M-d}, |
| 335 | then insert another number. As you begin to alter the text, you will | ||
| 336 | see the @samp{[State]} line change to say that you have edited the | ||
| 337 | value: | ||
| 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, |
| 350 | that, you must @dfn{set} it. To do this, invoke the word | 346 | you 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; |
| 360 | setting the variable checks for validity and will not really install an | 356 | the @samp{Set for Current Session} operation checks for validity and |
| 361 | unacceptable value. | 357 | will 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, |
| 366 | command name, or anything else for which completion is defined, you | 362 | command name, or anything else for which completion is defined, you |
| 367 | can type @kbd{M-@key{TAB}} (@code{widget-complete}) to do completion. | 363 | can 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. |
| 371 | These variables don't let you edit the value textually. Instead, an | 367 | These variables don't let you edit the value textually. Instead, a |
| 372 | active field @samp{[Value Menu]} appears before the value; invoke this | 368 | @samp{[Value Menu]} button appears before the value; invoke this |
| 373 | field to edit the value. For a boolean ``on or off'' value, the active | 369 | button to change the value. For a boolean ``on or off'' value, the |
| 374 | field says @samp{[Toggle]}, and it changes to the other value. | 370 | button 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 |
| 376 | take effect when you use the @samp{Set for Current Session} operation. | 372 | changes take real effect when you use the @samp{Set for Current |
| 373 | Session} 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 |
| 379 | value of @code{file-coding-system-alist} is an association list. Here | 376 | value 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 |
| 410 | Each association in the list appears on four lines, with several | 407 | Each association in the list appears on four lines, with several |
| 411 | editable or ``active'' fields. You can edit the regexps and coding | 408 | editable fields and/or buttons. You can edit the regexps and coding |
| 412 | systems using ordinary editing commands. You can also invoke | 409 | systems 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 |
| 414 | specify a function instead of a pair of coding systems. | 411 | instance, to specify a function instead of a pair of coding systems. |
| 415 | 412 | ||
| 416 | To delete an association from the list, invoke the @samp{[DEL]} button | 413 | To delete an association from the list, invoke the @samp{[DEL]} button |
| 417 | for that item. To add an association, invoke @samp{[INS]} at the | 414 | for 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 |
| 428 | moving through the customization buffer. @key{TAB} | 425 | for 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 |
| 430 | field; @kbd{S-@key{TAB}} (@code{widget-backward}) moves backward to the | 427 | field; @kbd{S-@key{TAB}} (@code{widget-backward}) moves backward to |
| 431 | previous active or editable field. | 428 | the 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} |
| 435 | when they are finished editing a field. To insert a newline within an | 432 | when they are finished editing a field. To insert a newline within an |
| 436 | editable field, use @kbd{C-o} or @kbd{C-q C-j}. | 433 | editable 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 |
| 442 | save the variable, invoke @samp{[State]} and select the @samp{Save for | 439 | save 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 |
| 462 | This sets the variable to its standard value, and updates the text | 459 | This sets the variable to its standard value, and updates the text |
| 463 | accordingly. This also eliminates any saved value for the option, | 460 | accordingly. This also eliminates any saved value for the variable, |
| 464 | so that you will get the standard value in future Emacs sessions. | 461 | so 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 |
| 481 | edited, set or saved. | 478 | edited, 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: |
| 484 | containing 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: | |||
| 493 | Invoking @samp{[Finish]} either buries or kills this customization | 489 | Invoking @samp{[Finish]} either buries or kills this customization |
| 494 | buffer according to the setting of the option | 490 | buffer 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. |
| 496 | Each of the other fields performs an operation---set, save or | 492 | Each of the other buttons performs an operation---set, save or |
| 497 | reset---on each of the options in the buffer that could meaningfully | 493 | reset---on each of the settings in the buffer that could meaningfully |
| 498 | be set, saved or reset. They do not operate on options whose values | 494 | be set, saved or reset. They do not operate on settings whose values |
| 499 | are hidden, nor on subgroups. | 495 | are 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 |
| 576 | before the attribute name indicates whether the attribute is | 572 | before 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{[ ]} |
| 578 | attribute by invoking that field. When the attribute is enabled, you | 574 | means that it's disabled. You can enable or disable the attribute by |
| 579 | can change the attribute value in the usual ways. | 575 | clicking that button. When the attribute is enabled, you can change |
| 576 | the 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 |
| 582 | list-colors-display} for a list of them) or a hexadecimal color | 579 | list-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 |
| 612 | through the structure of groups, you can specify the particular variable, | 609 | structure of groups, here are other ways to specify the settings that |
| 613 | face, or group that you want to customize. | 610 | you 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} |
| 621 | Set up a customization buffer with just one group, @var{group}. | 618 | Set 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} |
| 623 | Set up a customization buffer with all the variables, faces and groups | 620 | Set up a customization buffer with all the settings and groups that |
| 624 | that match @var{regexp}. | 621 | match @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} |
| 626 | Set up a customization buffer with all the variables, faces and groups | 623 | Set up a customization buffer with all the settings and groups |
| 627 | whose meaning has changed since Emacs version @var{version}. | 624 | whose meaning has changed since Emacs version @var{version}. |
| 628 | @item M-x customize-saved | 625 | @item M-x customize-saved |
| 629 | Set up a customization buffer containing all variables and faces that you | 626 | Set up a customization buffer containing all settings that you |
| 630 | have saved with customization buffers. | 627 | have saved with customization buffers. |
| 631 | @item M-x customize-customized | 628 | @item M-x customize-customized |
| 632 | Set up a customization buffer containing all variables and faces that you | 629 | Set up a customization buffer containing all settings that you have |
| 633 | have customized but not saved. | 630 | customized 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 | |||
| 639 | customize-variable} and specify the variable name. This sets up the | 636 | customize-variable} and specify the variable name. This sets up the |
| 640 | customization buffer with just one variable---the one that you asked | 637 | customization buffer with just one variable---the one that you asked |
| 641 | for. Editing, setting and saving the value work as described above, | 638 | for. Editing, setting and saving the value work as described above, |
| 642 | but only for the specified variable. Minibuffer completion is very | 639 | but only for the specified variable. Minibuffer completion is handy |
| 643 | handy if you only know part of the name. However, it only finds | 640 | if you only know part of the name. However, this command can only see |
| 644 | options that have been loaded in the current Emacs session. | 641 | options 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, |
| 653 | using @kbd{M-x customize-group}. The immediate contents of the chosen | 650 | using @kbd{M-x customize-group}. The immediate contents of the chosen |
| 654 | group, including user options, faces, and other groups, all appear | 651 | group, including variables, faces, and other groups, all appear |
| 655 | as well (even if not already loaded). However, the subgroups' own | 652 | as well (even if not already loaded). However, the subgroups' own |
| 656 | contents are not included. | 653 | contents 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 |
| 660 | customize-apropos}. You specify a regular expression as argument; then | 657 | customize-apropos}. You specify a regular expression as argument; |
| 661 | all @emph{loaded} options, faces and groups whose names match this | 658 | then all @emph{loaded} settings and groups whose names match this |
| 662 | regular expression are set up in the customization buffer. If you | 659 | regular expression are set up in the customization buffer. If you |
| 663 | specify an empty regular expression, this includes @emph{all} groups, | 660 | specify an empty regular expression, this includes @emph{all} loaded |
| 664 | options and faces (but that takes a long time). | 661 | groups 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 |
| 668 | new options and options whose meanings or default values have changed. | 665 | new settings and settings whose meanings or default values have |
| 669 | To do this, use @kbd{M-x customize-changed-options} and specify a | 666 | changed. To do this, use @kbd{M-x customize-changed} and |
| 670 | previous Emacs version number using the minibuffer. It creates a | 667 | specify a previous Emacs version number using the minibuffer. It |
| 671 | customization buffer which shows all the options (and groups) whose | 668 | creates a customization buffer which shows all the settings and groups |
| 672 | definitions have been changed since the specified version. (Not just | 669 | whose definitions have been changed since the specified version, loading |
| 673 | those that are already loaded.) | 670 | them 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 |
| 678 | mistake, you can use two special commands to revisit your previous | 675 | can use two special commands to revisit your previous changes. Use |
| 679 | changes. 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. |
| 680 | you have saved. Use @kbd{M-x customize-customized} to look at the | 677 | Use @kbd{M-x customize-customized} to look at the settings that you |
| 681 | options that you have set but not saved. | 678 | have 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 |
| 688 | enabled or disabled as a unit. You can use Custom themes to switch | 685 | or disabled as a unit. You can use Custom themes to switch quickly |
| 689 | quickly and easily between various collections of settings, and to | 686 | and easily between various collections of settings, and to transfer |
| 690 | transfer such collections from one computer to another. | 687 | such collections from one computer to another. |
| 691 | 688 | ||
| 692 | @findex customize-create-theme | 689 | @findex customize-create-theme |
| 693 | To 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 | 691 | customize-create-theme}, which brings up a buffer named @samp{*New |
| 695 | @samp{*New Custom Theme*}. At the top of the buffer is an editable | 692 | Custom Theme*}. At the top of the buffer is an editable field where |
| 696 | field where you can specify the name of the theme. To add a | 693 | you can specify the name of the theme. To add a customization option |
| 697 | customization option to the theme, click on the @samp{INS} button to | 694 | to the theme, click on the @samp{INS} button to open up a field where |
| 698 | open up a field where you can insert the name of the option. The | 695 | you can insert the name of the option. The current value of that |
| 699 | current value of that option is applied to the theme. After adding as | 696 | option is applied to the theme. After adding as many options as you |
| 700 | many options as you like, click on @samp{Done} to save the Custom | 697 | like, click on @samp{Done} to save the Custom theme. |
| 701 | theme. | ||
| 702 | 698 | ||
| 703 | @vindex custom-theme-directory | 699 | @vindex custom-theme-directory |
| 704 | Saving a Custom theme named @var{foo} writes its definition into the | 700 | Saving a Custom theme named @var{foo} writes its definition into the |
| 705 | file @file{@var{foo}-theme.el}, in the directory @file{~/.emacs.d/} | 701 | file @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 | |||
| 747 | have a documentation string which describes what kind of value it should | 743 | have a documentation string which describes what kind of value it should |
| 748 | have and how the value will be used. | 744 | have 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 |
| 751 | that Emacs uses need a value of a certain type. Often the value should | 747 | kind of value, but most variables that Emacs uses need a value of a |
| 752 | always be a string, or should always be a number. Sometimes we say that a | 748 | certain type. Often the value should always be a string, or should |
| 753 | certain feature is turned on if a variable is ``non-@code{nil},'' meaning | 749 | always be a number. Sometimes we say that a certain feature is turned |
| 754 | that if the variable's value is @code{nil}, the feature is off, but the | 750 | on if a variable is ``non-@code{nil},'' meaning that if the variable's |
| 755 | feature is on for @emph{any} other value. The conventional value to use to | 751 | value is @code{nil}, the feature is off, but the feature is on for |
| 756 | turn 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 |
| 757 | set the variable---is @code{t}. | 753 | feature---since you have to pick one particular value when you set the |
| 754 | variable---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 |
| 760 | most interesting variables for a non-programmer user are those that | 757 | most interesting variables for a non-programmer user are those meant |
| 761 | are also @dfn{user options}, the variables that are meant for users to | 758 | for users to change---the @dfn{user options}. |
| 762 | change. Each user option that you can set with the customization | 759 | |
| 763 | buffer 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 |
| 764 | not (usually) change the values of these variables; instead, you set | 761 | in fact a Lisp variable. Emacs does not (usually) change the values |
| 765 | the values, and thereby alter and control the behavior of certain | 762 | of these variables; instead, you set the values, and thereby alter and |
| 766 | Emacs commands. Use of the customization buffer is explained above | 763 | control the behavior of certain Emacs commands. Use of the |
| 767 | (@pxref{Easy Customization}); here we describe other aspects of Emacs | 764 | customization buffer is explained above (@pxref{Easy Customization}); |
| 768 | variables. | 765 | here 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. |