diff options
Diffstat (limited to 'doc')
43 files changed, 1981 insertions, 2029 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 6e687bcefc9..d16443ccf31 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog | |||
| @@ -1,3 +1,121 @@ | |||
| 1 | 2011-12-03 Chong Yidong <cyd@gnu.org> | ||
| 2 | |||
| 3 | * text.texi (TeX Mode): Mention AUCTeX package. | ||
| 4 | (TeX Editing): Add xref to documentation for Occur. | ||
| 5 | (LaTeX Editing): Add xref to Completion node. | ||
| 6 | (TeX Print): Fix description of tex-directory. | ||
| 7 | (Enriched Text): Renamed from Formatted Text. Make this node and | ||
| 8 | its subnodes less verbose, since text/enriched files are | ||
| 9 | practically unused. | ||
| 10 | (Enriched Mode): Renamed from Requesting Formatted Text. | ||
| 11 | (Format Colors): Node deleted. | ||
| 12 | (Enriched Faces): Renamed from Format Faces. Describe commands | ||
| 13 | for applying colors too. | ||
| 14 | (Forcing Enriched Mode): Node deleted; merged into Enriched Mode. | ||
| 15 | |||
| 16 | * frames.texi (Menu Mouse Clicks): Tweak description of C-Mouse-2. | ||
| 17 | |||
| 18 | * display.texi (Colors): New node. | ||
| 19 | |||
| 20 | * cmdargs.texi (Colors X): | ||
| 21 | * xresources.texi (GTK styles): | ||
| 22 | * custom.texi (Face Customization): Reference it. | ||
| 23 | |||
| 24 | * glossary.texi (Glossary): Remove "formatted text" and "WYSIWYG". | ||
| 25 | Link to Fill Commands for Justification entry. | ||
| 26 | |||
| 27 | 2011-12-03 Eli Zaretskii <eliz@gnu.org> | ||
| 28 | |||
| 29 | * display.texi (Auto Scrolling): More accurate description of what | ||
| 30 | scroll-*-aggressively does, including the effect of non-zero | ||
| 31 | margin. Fix "i.e." markup. | ||
| 32 | |||
| 33 | 2011-12-02 Chong Yidong <cyd@gnu.org> | ||
| 34 | |||
| 35 | * text.texi (Pages): Mention how formfeed chars are displayed. | ||
| 36 | (Auto Fill): Note convention for calling auto-fill-mode from Lisp. | ||
| 37 | Describe adaptive filling more precisely. | ||
| 38 | (Fill Commands): Note that filling removes excess whitespace. | ||
| 39 | (Text Mode): Note auto-mode-alist entries for Text mode. TAB is | ||
| 40 | now bound to indent-for-tab-command in Text mode. | ||
| 41 | (Outline Mode): Copyedits. | ||
| 42 | (Outline Visibility): Note that Reveal mode is a buffer-local | ||
| 43 | minor mode. | ||
| 44 | |||
| 45 | * modes.texi (Major Modes): Move note about checking major-mode in | ||
| 46 | a hook function here, from Text mode. | ||
| 47 | |||
| 48 | 2011-11-28 Chong Yidong <cyd@gnu.org> | ||
| 49 | |||
| 50 | * text.texi (Words): Add xref to Position Info. | ||
| 51 | (Paragraphs): Add xref to Regexps. | ||
| 52 | |||
| 53 | * indent.texi (Indentation): Rewrite introduction. Move table to | ||
| 54 | Indentation Commands node. | ||
| 55 | (Indentation Commands): Add index entries to table. Copyedits. | ||
| 56 | (Tab Stops, Just Spaces): Copyedits. | ||
| 57 | (Indent Convenience): New node. Document electric-indent-mode. | ||
| 58 | |||
| 59 | * programs.texi (Basic Indent): | ||
| 60 | * windows.texi (Pop Up Window): Fix kindex entry. | ||
| 61 | |||
| 62 | 2011-11-28 Chong Yidong <cyd@gnu.org> | ||
| 63 | |||
| 64 | * modes.texi (Major Modes): Move major-mode variable doc here from | ||
| 65 | Choosing Modes. Document describe-mode. Document prog-mode-hook | ||
| 66 | and text-mode-hook. Add example of using hooks. | ||
| 67 | (Minor Modes): Document behavior of mode command calls from Lisp. | ||
| 68 | Note that setting the mode variable using Customize will DTRT. | ||
| 69 | (Choosing Modes): Add example of setting a minor mode using a | ||
| 70 | local variable. | ||
| 71 | |||
| 72 | 2011-11-27 Chong Yidong <cyd@gnu.org> | ||
| 73 | |||
| 74 | * frames.texi (Creating Frames): Move frame parameter example to | ||
| 75 | Frame Parameters node. | ||
| 76 | (Frame Commands): C-x 5 o does not warp the mouse by default. | ||
| 77 | (Fonts): Add more GTK-style properties; also, they should be | ||
| 78 | capitalized. | ||
| 79 | (Special Buffer Frames): Node deleted; special-display is on the | ||
| 80 | way out. | ||
| 81 | (Frame Parameters): Example moved here from Creating Frames. | ||
| 82 | Clarify that default-frame-alist affects the initial frame too. | ||
| 83 | Delete auto-raise-mode and auto-lower-mode. | ||
| 84 | (Wheeled Mice): Node deleted. Content moved to Mouse Commands. | ||
| 85 | (Dialog Boxes): Delete x-gtk-use-old-file-dialog. | ||
| 86 | |||
| 87 | * windows.texi (Window Choice): Add xref to Lisp manual for | ||
| 88 | special-display-*. | ||
| 89 | |||
| 90 | 2011-11-26 Eli Zaretskii <eliz@gnu.org> | ||
| 91 | |||
| 92 | * display.texi (Text Display): Update the description, | ||
| 93 | cross-references, and indexing related to display of control | ||
| 94 | characters and raw bytes. | ||
| 95 | |||
| 96 | 2011-11-25 Chong Yidong <cyd@gnu.org> | ||
| 97 | |||
| 98 | * frames.texi (Frames): Rewrite introduction. | ||
| 99 | (Mouse Commands): Default for mouse-drag-copy-region is now t. | ||
| 100 | Mouse-3 does not copy to kill ring by default. DEL does not | ||
| 101 | behave specially for mouse commands any more. | ||
| 102 | (Mouse References): Document mouse-1-click-follows-link more | ||
| 103 | thoroughly. | ||
| 104 | (Menu Mouse Clicks): Move footnote to the main text and add xref | ||
| 105 | to Init Rebinding node. | ||
| 106 | (Mode Line Mouse): Mouse-3 on the mode-line does not bury buffer. | ||
| 107 | |||
| 108 | * files.texi (Visiting): `C-x 5 f' works on ttys too. | ||
| 109 | |||
| 110 | 2011-11-24 Juanma Barranquero <lekktu@gmail.com> | ||
| 111 | |||
| 112 | * display.texi (Font Lock): Fix typo. | ||
| 113 | |||
| 114 | 2011-11-24 Glenn Morris <rgm@gnu.org> | ||
| 115 | |||
| 116 | * rmail.texi (Rmail Output): | ||
| 117 | Mention rmail-automatic-folder-directives. (Bug#9657) | ||
| 118 | |||
| 1 | 2011-11-21 Chong Yidong <cyd@gnu.org> | 119 | 2011-11-21 Chong Yidong <cyd@gnu.org> |
| 2 | 120 | ||
| 3 | * mark.texi (Global Mark Ring): Fix description of global mark | 121 | * mark.texi (Global Mark Ring): Fix description of global mark |
diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi index ac62e2d9652..9c5b2e7dcd7 100644 --- a/doc/emacs/building.texi +++ b/doc/emacs/building.texi | |||
| @@ -995,7 +995,7 @@ breakpoint}, the breakpoint which point is on. | |||
| 995 | Enable/disable current breakpoint (@code{gdb-toggle-breakpoint}). | 995 | Enable/disable current breakpoint (@code{gdb-toggle-breakpoint}). |
| 996 | On a graphical display, this changes the color of a bullet in the | 996 | On a graphical display, this changes the color of a bullet in the |
| 997 | margin of a source buffer at the relevant line. This is red when | 997 | margin of a source buffer at the relevant line. This is red when |
| 998 | the breakpoint is enabled and grey when it is disabled. Text-only | 998 | the breakpoint is enabled and gray when it is disabled. Text-only |
| 999 | terminals correspondingly display a @samp{B} or @samp{b}. | 999 | terminals correspondingly display a @samp{B} or @samp{b}. |
| 1000 | 1000 | ||
| 1001 | @item D | 1001 | @item D |
diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi index 07cca53ce4d..d9109045570 100644 --- a/doc/emacs/cmdargs.texi +++ b/doc/emacs/cmdargs.texi | |||
| @@ -69,7 +69,7 @@ arguments.) | |||
| 69 | * Environment:: Environment variables that Emacs uses. | 69 | * Environment:: Environment variables that Emacs uses. |
| 70 | * Display X:: Changing the default display and using remote login. | 70 | * Display X:: Changing the default display and using remote login. |
| 71 | * Font X:: Choosing a font for text, under X. | 71 | * Font X:: Choosing a font for text, under X. |
| 72 | * Colors:: Choosing display colors. | 72 | * Colors X:: Choosing display colors. |
| 73 | * Window Size X:: Start-up window size, under X. | 73 | * Window Size X:: Start-up window size, under X. |
| 74 | * Borders X:: Internal and external borders, under X. | 74 | * Borders X:: Internal and external borders, under X. |
| 75 | * Title X:: Specifying the initial frame's title. | 75 | * Title X:: Specifying the initial frame's title. |
| @@ -784,7 +784,7 @@ Use @var{font} as the default font. | |||
| 784 | 784 | ||
| 785 | When passing a font specification to Emacs on the command line, you | 785 | When passing a font specification to Emacs on the command line, you |
| 786 | may need to ``quote'' it, by enclosing it in quotation marks, if it | 786 | may need to ``quote'' it, by enclosing it in quotation marks, if it |
| 787 | contains characters that the shell treats specially (e.g. spaces). | 787 | contains characters that the shell treats specially (e.g.@: spaces). |
| 788 | For example: | 788 | For example: |
| 789 | 789 | ||
| 790 | @smallexample | 790 | @smallexample |
| @@ -794,27 +794,14 @@ emacs -fn "DejaVu Sans Mono-12" | |||
| 794 | @xref{Fonts}, for other ways to specify the default font and font name | 794 | @xref{Fonts}, for other ways to specify the default font and font name |
| 795 | formats. | 795 | formats. |
| 796 | 796 | ||
| 797 | @node Colors | 797 | @node Colors X |
| 798 | @appendixsec Window Color Options | 798 | @appendixsec Window Color Options |
| 799 | @cindex color of window, from command line | 799 | @cindex color of window, from command line |
| 800 | @cindex text colors, from command line | 800 | @cindex text colors, from command line |
| 801 | 801 | ||
| 802 | @findex list-colors-display | 802 | You can use the following command-line options to specify the colors |
| 803 | @cindex available colors | 803 | to use for various parts of the Emacs display. Colors may be |
| 804 | On a color display, you can specify which color to use for various | 804 | specified using either color names or RGB triplets (@pxref{Colors}). |
| 805 | parts of the Emacs display. To find out what colors are available on | ||
| 806 | your system, type @kbd{M-x list-colors-display}, or press | ||
| 807 | @kbd{C-Mouse-2} and select @samp{Display Colors} from the pop-up menu. | ||
| 808 | (A particular window system might support many more colors, but the | ||
| 809 | list displayed by @code{list-colors-display} shows their portable | ||
| 810 | subset that can be safely used on any display supported by Emacs.) | ||
| 811 | If you do not specify colors, on windowed displays the default for the | ||
| 812 | background is white and the default for all other colors is black. On a | ||
| 813 | monochrome display, the foreground is black, the background is white, | ||
| 814 | and the border is gray if the display supports that. On terminals, the | ||
| 815 | background is usually black and the foreground is white. | ||
| 816 | |||
| 817 | Here is a list of the command-line options for specifying colors: | ||
| 818 | 805 | ||
| 819 | @table @samp | 806 | @table @samp |
| 820 | @item -fg @var{color} | 807 | @item -fg @var{color} |
| @@ -822,15 +809,15 @@ background is usually black and the foreground is white. | |||
| 822 | @itemx --foreground-color=@var{color} | 809 | @itemx --foreground-color=@var{color} |
| 823 | @opindex --foreground-color | 810 | @opindex --foreground-color |
| 824 | @cindex foreground color, command-line argument | 811 | @cindex foreground color, command-line argument |
| 825 | Specify the foreground color. @var{color} should be a standard color | 812 | Specify the foreground color, overriding the color specified by the |
| 826 | name, or a numeric specification of the color's red, green, and blue | 813 | @code{default} face (@pxref{Faces}). |
| 827 | components as in @samp{#4682B4} or @samp{RGB:46/82/B4}. | ||
| 828 | @item -bg @var{color} | 814 | @item -bg @var{color} |
| 829 | @opindex -bg | 815 | @opindex -bg |
| 830 | @itemx --background-color=@var{color} | 816 | @itemx --background-color=@var{color} |
| 831 | @opindex --background-color | 817 | @opindex --background-color |
| 832 | @cindex background color, command-line argument | 818 | @cindex background color, command-line argument |
| 833 | Specify the background color. | 819 | Specify the background color, overriding the color specified by the |
| 820 | @code{default} face. | ||
| 834 | @item -bd @var{color} | 821 | @item -bd @var{color} |
| 835 | @opindex -bd | 822 | @opindex -bd |
| 836 | @itemx --border-color=@var{color} | 823 | @itemx --border-color=@var{color} |
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index 5b98216369d..e807aebdeee 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi | |||
| @@ -430,15 +430,8 @@ means that it's disabled. You can enable or disable the attribute by | |||
| 430 | clicking that button. When the attribute is enabled, you can change | 430 | clicking that button. When the attribute is enabled, you can change |
| 431 | the attribute value in the usual ways. | 431 | the attribute value in the usual ways. |
| 432 | 432 | ||
| 433 | You can specify a color name (use @kbd{M-x list-colors-display} for | 433 | The foreground and background colors can be specified using color |
| 434 | a list of them) or a hexadecimal color specification of the form | 434 | names or RGB triplets. @xref{Colors}. |
| 435 | @samp{#@var{rr}@var{gg}@var{bb}}. (@samp{#000000} is black, | ||
| 436 | @samp{#ff0000} is red, @samp{#00ff00} is green, @samp{#0000ff} is | ||
| 437 | blue, and @samp{#ffffff} is white.) On a black-and-white display, the | ||
| 438 | colors you can use for the background are @samp{black}, @samp{white}, | ||
| 439 | @samp{gray}, @samp{gray1}, and @samp{gray3}. Emacs supports these | ||
| 440 | shades of gray by using background stipple patterns instead of a | ||
| 441 | color. | ||
| 442 | 435 | ||
| 443 | Setting, saving and resetting a face work like the same operations for | 436 | Setting, saving and resetting a face work like the same operations for |
| 444 | variables (@pxref{Changing a Variable}). | 437 | variables (@pxref{Changing a Variable}). |
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi index 8995b1242b1..ea9bd95b8ee 100644 --- a/doc/emacs/display.texi +++ b/doc/emacs/display.texi | |||
| @@ -21,6 +21,7 @@ the text is displayed. | |||
| 21 | * View Mode:: Viewing read-only buffers. | 21 | * View Mode:: Viewing read-only buffers. |
| 22 | * Follow Mode:: Follow mode lets two windows scroll as one. | 22 | * Follow Mode:: Follow mode lets two windows scroll as one. |
| 23 | * Faces:: How to change the display style using faces. | 23 | * Faces:: How to change the display style using faces. |
| 24 | * Colors:: Specifying colors for faces. | ||
| 24 | * Standard Faces:: Emacs' predefined faces. | 25 | * Standard Faces:: Emacs' predefined faces. |
| 25 | * Text Scale:: Increasing or decreasing text size in a buffer. | 26 | * Text Scale:: Increasing or decreasing text size in a buffer. |
| 26 | * Font Lock:: Minor mode for syntactic highlighting using faces. | 27 | * Font Lock:: Minor mode for syntactic highlighting using faces. |
| @@ -122,7 +123,7 @@ moving it to the topmost or bottommost line. With any other | |||
| 122 | non-@code{nil} value, Emacs adjusts point this way even if the scroll | 123 | non-@code{nil} value, Emacs adjusts point this way even if the scroll |
| 123 | command leaves point in the window. This variable affects all the | 124 | command leaves point in the window. This variable affects all the |
| 124 | scroll commands documented in this section, as well as scrolling with | 125 | scroll commands documented in this section, as well as scrolling with |
| 125 | the mouse wheel (@pxref{Wheeled Mice}); in general, it affects any | 126 | the mouse wheel (@pxref{Mouse Commands}); in general, it affects any |
| 126 | command that has a non-@code{nil} @code{scroll-command} property. | 127 | command that has a non-@code{nil} @code{scroll-command} property. |
| 127 | @xref{Property Lists,,, elisp, The Emacs Lisp Reference Manual}. | 128 | @xref{Property Lists,,, elisp, The Emacs Lisp Reference Manual}. |
| 128 | 129 | ||
| @@ -238,26 +239,32 @@ centered after scrolling. | |||
| 238 | @cindex aggressive scrolling | 239 | @cindex aggressive scrolling |
| 239 | @vindex scroll-up-aggressively | 240 | @vindex scroll-up-aggressively |
| 240 | @vindex scroll-down-aggressively | 241 | @vindex scroll-down-aggressively |
| 241 | When the window does scroll by a longer distance, you can control | 242 | When the window does scroll by a distance longer than |
| 242 | how aggressively it scrolls by setting the variables | 243 | @code{scroll-step}, you can control how aggressively it scrolls by |
| 243 | @code{scroll-up-aggressively} and @code{scroll-down-aggressively}. | 244 | setting the variables @code{scroll-up-aggressively} and |
| 244 | The value of @code{scroll-up-aggressively} should be either | 245 | @code{scroll-down-aggressively}. The value of |
| 245 | @code{nil}, or a fraction @var{f} between 0 and 1. A fraction | 246 | @code{scroll-up-aggressively} should be either @code{nil}, or a |
| 246 | specifies where on the screen to put point when scrolling upward, | 247 | fraction @var{f} between 0 and 1. A fraction specifies where on the |
| 247 | i.e. forward. When point goes off the window end, the new start | 248 | screen to put point when scrolling upward, i.e.@: forward. When point |
| 248 | position is chosen to put point @var{f} parts of the window height | 249 | goes off the window end, the new start position is chosen to put point |
| 249 | from the bottom. Thus, larger @var{f} means more aggressive | 250 | @var{f} parts of the window height from the bottom margin. Thus, |
| 250 | scrolling: more new text is brought into view. The default value, | 251 | larger @var{f} means more aggressive scrolling: more new text is |
| 251 | @code{nil}, is equivalent to 0.5. | 252 | brought into view. The default value, @code{nil}, is equivalent to |
| 253 | 0.5. | ||
| 252 | 254 | ||
| 253 | Likewise, @code{scroll-down-aggressively} is used for scrolling | 255 | Likewise, @code{scroll-down-aggressively} is used for scrolling |
| 254 | down, i.e. backward. The value specifies how far point should be | 256 | down, i.e.@: backward. The value specifies how far point should be |
| 255 | placed from the top of the window; thus, as with | 257 | placed from the top margin of the window; thus, as with |
| 256 | @code{scroll-up-aggressively}, a larger value is more aggressive. | 258 | @code{scroll-up-aggressively}, a larger value is more aggressive. |
| 257 | 259 | ||
| 258 | These two variables are ignored if either @code{scroll-step} or | 260 | These two variables are ignored if either @code{scroll-step} or |
| 259 | @code{scroll-conservatively} are set to a non-zero value. | 261 | @code{scroll-conservatively} are set to a non-zero value. |
| 260 | 262 | ||
| 263 | Note that @code{scroll-margin}, described below, limits the amount | ||
| 264 | of scrolling so as to put point outside of the top or bottom margin, | ||
| 265 | even if aggressive scrolling specifies a fraction @var{f} that is | ||
| 266 | larger than the window portion between the top and the bottom margins. | ||
| 267 | |||
| 261 | @vindex scroll-margin | 268 | @vindex scroll-margin |
| 262 | The variable @code{scroll-margin} restricts how close point can come | 269 | The variable @code{scroll-margin} restricts how close point can come |
| 263 | to the top or bottom of a window. Its value is a number of screen | 270 | to the top or bottom of a window. Its value is a number of screen |
| @@ -455,7 +462,7 @@ one large window. | |||
| 455 | To turn off Follow mode, type @kbd{M-x follow-mode} a second time. | 462 | To turn off Follow mode, type @kbd{M-x follow-mode} a second time. |
| 456 | 463 | ||
| 457 | @node Faces | 464 | @node Faces |
| 458 | @section Faces: Controlling Text Display Style | 465 | @section Text Faces |
| 459 | @cindex faces | 466 | @cindex faces |
| 460 | 467 | ||
| 461 | Emacs can display text in several different styles, called | 468 | Emacs can display text in several different styles, called |
| @@ -474,10 +481,8 @@ matching that regular expression (@pxref{Regexps}). | |||
| 474 | It's possible for a given face to look different in different | 481 | It's possible for a given face to look different in different |
| 475 | frames. For instance, some text-only terminals do not support all | 482 | frames. For instance, some text-only terminals do not support all |
| 476 | face attributes, particularly font, height, and width, and some | 483 | face attributes, particularly font, height, and width, and some |
| 477 | support a limited range of colors. The @code{list-faces-display} | 484 | support a limited range of colors. |
| 478 | command shows the appearance for the selected frame. | ||
| 479 | 485 | ||
| 480 | @cindex face colors, setting | ||
| 481 | @cindex background color | 486 | @cindex background color |
| 482 | @cindex default face | 487 | @cindex default face |
| 483 | You can customize a face to alter its appearance, and save those | 488 | You can customize a face to alter its appearance, and save those |
| @@ -492,25 +497,58 @@ background color. | |||
| 492 | You can also use X resources to specify attributes of any particular | 497 | You can also use X resources to specify attributes of any particular |
| 493 | face. @xref{Resources}. | 498 | face. @xref{Resources}. |
| 494 | 499 | ||
| 500 | Emacs can display variable-width fonts, but some Emacs commands, | ||
| 501 | particularly indentation commands, do not account for variable | ||
| 502 | character display widths. Therefore, we recommend not using | ||
| 503 | variable-width fonts for most faces, particularly those assigned by | ||
| 504 | Font Lock mode. | ||
| 505 | |||
| 506 | @node Colors | ||
| 507 | @section Colors for Faces | ||
| 508 | @cindex color name | ||
| 509 | @cindex RGB triplet | ||
| 510 | |||
| 511 | Faces can have various foreground and background colors. When you | ||
| 512 | specify a color for a face---for instance, when customizing the face | ||
| 513 | (@pxref{Face Customization})---you can use either a @dfn{color name} | ||
| 514 | or an @dfn{RGB triplet}. | ||
| 515 | |||
| 516 | @findex list-colors-display | ||
| 517 | A color name is a pre-defined name, such as @samp{dark orange} or | ||
| 518 | @samp{medium sea green}. To view a list of color names, type @kbd{M-x | ||
| 519 | list-colors-display}. If you run this command on a graphical display, | ||
| 520 | it shows the full range of color names known to Emacs (these are the | ||
| 521 | standard X11 color names, defined in X's @file{rgb.txt} file). If you | ||
| 522 | run the command on a text-only terminal, it shows only a small subset | ||
| 523 | of colors that can be safely displayed on such terminals. However, | ||
| 524 | Emacs understands X11 color names even on text-only terminals; if a | ||
| 525 | face is given a color specified by an X11 color name, it is displayed | ||
| 526 | using the closest-matching terminal color. | ||
| 527 | |||
| 528 | An RGB triplet is a string of the form @samp{#RRGGBB}. Each of the | ||
| 529 | R, G, and B components is a hexadecimal number specifying the | ||
| 530 | component's relative intensity, one to four digits long (usually two | ||
| 531 | digits are used). The components must have the same number of digits. | ||
| 532 | For hexadecimal values A to F, either upper or lower case are | ||
| 533 | acceptable. | ||
| 534 | |||
| 535 | The @kbd{M-x list-colors-display} command also shows the equivalent | ||
| 536 | RGB triplet for each named color. For instance, @samp{medium sea | ||
| 537 | green} is equivalent to @samp{#3CB371}. | ||
| 538 | |||
| 539 | @cindex face colors, setting | ||
| 495 | @findex set-face-foreground | 540 | @findex set-face-foreground |
| 496 | @findex set-face-background | 541 | @findex set-face-background |
| 497 | You can also change the foreground and background colors of a face | 542 | You can change the foreground and background colors of a face with |
| 498 | with @kbd{M-x set-face-foreground} and @kbd{M-x set-face-background}. | 543 | @kbd{M-x set-face-foreground} and @kbd{M-x set-face-background}. |
| 499 | These commands prompt in the minibuffer for a face name and a color | 544 | These commands prompt in the minibuffer for a face name and a color, |
| 500 | name, with completion, and then set that face to use the specified | 545 | with completion, and then set that face to use the specified color. |
| 501 | color (@pxref{Face Customization}, for information about color names). | ||
| 502 | They affect the face colors on all frames, but their effects do not | 546 | They affect the face colors on all frames, but their effects do not |
| 503 | persist for future Emacs sessions, unlike using the customization | 547 | persist for future Emacs sessions, unlike using the customization |
| 504 | buffer or X resources. You can also use frame parameters to set | 548 | buffer or X resources. You can also use frame parameters to set |
| 505 | foreground and background colors for a specific frame; see @ref{Frame | 549 | foreground and background colors for a specific frame; @xref{Frame |
| 506 | Parameters}. | 550 | Parameters}. |
| 507 | 551 | ||
| 508 | Emacs can display variable-width fonts, but some Emacs commands, | ||
| 509 | particularly indentation commands, do not account for variable | ||
| 510 | character display widths. Therefore, we recommend not using | ||
| 511 | variable-width fonts for most faces, particularly those assigned by | ||
| 512 | Font Lock mode. | ||
| 513 | |||
| 514 | @node Standard Faces | 552 | @node Standard Faces |
| 515 | @section Standard Faces | 553 | @section Standard Faces |
| 516 | 554 | ||
| @@ -762,7 +800,7 @@ relies on analysis of the syntactic structure of the buffer text. For | |||
| 762 | the sake of speed, some modes, including Lisp mode, rely on a special | 800 | the sake of speed, some modes, including Lisp mode, rely on a special |
| 763 | convention: an open-parenthesis or open-brace in the leftmost column | 801 | convention: an open-parenthesis or open-brace in the leftmost column |
| 764 | always defines the beginning of a defun, and is thus always outside | 802 | always defines the beginning of a defun, and is thus always outside |
| 765 | any string or comment. Therefore, you should avoid placing a an | 803 | any string or comment. Therefore, you should avoid placing an |
| 766 | open-parenthesis or open-brace in the leftmost column, if it is inside | 804 | open-parenthesis or open-brace in the leftmost column, if it is inside |
| 767 | a string or comment. @xref{Left Margin Paren}, for details. | 805 | a string or comment. @xref{Left Margin Paren}, for details. |
| 768 | 806 | ||
| @@ -1016,13 +1054,13 @@ trailing whitespace in the region instead. | |||
| 1016 | @cindex fringes, and unused line indication | 1054 | @cindex fringes, and unused line indication |
| 1017 | On graphical displays, Emacs can indicate unused lines at the end of | 1055 | On graphical displays, Emacs can indicate unused lines at the end of |
| 1018 | the window with a small image in the left fringe (@pxref{Fringes}). | 1056 | the window with a small image in the left fringe (@pxref{Fringes}). |
| 1019 | The image appears for window lines that do not correspond to any | 1057 | The image appears for screen lines that do not correspond to any |
| 1020 | buffer text. Blank lines at the end of the buffer then stand out | 1058 | buffer text, so blank lines at the end of the buffer stand out because |
| 1021 | because they do not have this image in the fringe. To enable this | 1059 | they lack this image. To enable this feature, set the buffer-local |
| 1022 | feature, set the buffer-local variable @code{indicate-empty-lines} to | 1060 | variable @code{indicate-empty-lines} to a non-@code{nil} value. You |
| 1023 | a non-@code{nil} value. You can enable or disable this feature for | 1061 | can enable or disable this feature for all new buffers by setting the |
| 1024 | all new buffers by setting the default value of this variable, | 1062 | default value of this variable, e.g.@: @code{(setq-default |
| 1025 | e.g.@:@code{(setq-default indicate-empty-lines t)}. | 1063 | indicate-empty-lines t)}. |
| 1026 | 1064 | ||
| 1027 | @node Selective Display | 1065 | @node Selective Display |
| 1028 | @section Selective Display | 1066 | @section Selective Display |
| @@ -1216,7 +1254,7 @@ characters include @acronym{ASCII} numbers, letters, and punctuation | |||
| 1216 | characters, as well as many non-@acronym{ASCII} characters. | 1254 | characters, as well as many non-@acronym{ASCII} characters. |
| 1217 | 1255 | ||
| 1218 | @vindex tab-width | 1256 | @vindex tab-width |
| 1219 | @cindex control character | 1257 | @cindex control characters on display |
| 1220 | The @acronym{ASCII} character set contains non-printing @dfn{control | 1258 | The @acronym{ASCII} character set contains non-printing @dfn{control |
| 1221 | characters}. Two of these are displayed specially: the newline | 1259 | characters}. Two of these are displayed specially: the newline |
| 1222 | character (Unicode code point @code{U+000A}) is displayed by starting | 1260 | character (Unicode code point @code{U+000A}) is displayed by starting |
| @@ -1228,19 +1266,21 @@ value between 1 and 1000, inclusive. Note that how the tab character | |||
| 1228 | in the buffer is displayed has nothing to do with the definition of | 1266 | in the buffer is displayed has nothing to do with the definition of |
| 1229 | @key{TAB} as a command. | 1267 | @key{TAB} as a command. |
| 1230 | 1268 | ||
| 1231 | Other @acronym{ASCII} control characters are displayed as a caret | 1269 | Other @acronym{ASCII} control characters, whose codes are below |
| 1270 | @code{U+0020} (octal 40, decimal 32), are displayed as a caret | ||
| 1232 | (@samp{^}) followed by the non-control version of the character, with | 1271 | (@samp{^}) followed by the non-control version of the character, with |
| 1233 | the @code{escape-glyph} face. For instance, the @samp{control-A} | 1272 | the @code{escape-glyph} face. For instance, the @samp{control-A} |
| 1234 | character, @code{U+0001}, is displayed as @samp{^A}. | 1273 | character, @code{U+0001}, is displayed as @samp{^A}. |
| 1235 | 1274 | ||
| 1275 | @cindex octal escapes | ||
| 1236 | @vindex ctl-arrow | 1276 | @vindex ctl-arrow |
| 1237 | The non-@acronym{ASCII}, non-printing characters @code{U+0080} | 1277 | The raw bytes with codes @code{U+0080} (octal 200) through |
| 1238 | (octal 200) through @code{U+009F} (octal 237) are displayed as octal | 1278 | @code{U+009F} (octal 237) are displayed as @dfn{octal escape |
| 1239 | escape sequences, with the @code{escape-glyph} face. For instance, | 1279 | sequences}, with the @code{escape-glyph} face. For instance, |
| 1240 | character code @code{U+0098} (octal 230) is displayed as @samp{\230}. | 1280 | character code @code{U+0098} (octal 230) is displayed as @samp{\230}. |
| 1241 | If you change the buffer-local variable @code{ctl-arrow} to | 1281 | If you change the buffer-local variable @code{ctl-arrow} to |
| 1242 | @code{nil}, @acronym{ASCII} control characters are also displayed as | 1282 | @code{nil}, the @acronym{ASCII} control characters are also displayed |
| 1243 | octal escape sequences instead of caret escape sequences. | 1283 | as octal escape sequences instead of caret escape sequences. |
| 1244 | 1284 | ||
| 1245 | @vindex nobreak-char-display | 1285 | @vindex nobreak-char-display |
| 1246 | @cindex non-breaking space | 1286 | @cindex non-breaking space |
| @@ -1249,7 +1289,7 @@ octal escape sequences instead of caret escape sequences. | |||
| 1249 | Some non-@acronym{ASCII} characters have the same appearance as an | 1289 | Some non-@acronym{ASCII} characters have the same appearance as an |
| 1250 | @acronym{ASCII} space or hyphen (minus) character. Such characters | 1290 | @acronym{ASCII} space or hyphen (minus) character. Such characters |
| 1251 | can cause problems if they are entered into a buffer without your | 1291 | can cause problems if they are entered into a buffer without your |
| 1252 | realization, e.g. by yanking; for instance, source code compilers | 1292 | realization, e.g.@: by yanking; for instance, source code compilers |
| 1253 | typically do not treat non-@acronym{ASCII} spaces as whitespace | 1293 | typically do not treat non-@acronym{ASCII} spaces as whitespace |
| 1254 | characters. To deal with this problem, Emacs displays such characters | 1294 | characters. To deal with this problem, Emacs displays such characters |
| 1255 | specially: it displays @code{U+00A0} (no-break space) with the | 1295 | specially: it displays @code{U+00A0} (no-break space) with the |
| @@ -1270,10 +1310,12 @@ elisp, The Emacs Lisp Reference Manual}. | |||
| 1270 | On graphical displays, some characters may have no glyphs in any of | 1310 | On graphical displays, some characters may have no glyphs in any of |
| 1271 | the fonts available to Emacs. These @dfn{glyphless characters} are | 1311 | the fonts available to Emacs. These @dfn{glyphless characters} are |
| 1272 | normally displayed as boxes containing the hexadecimal character code. | 1312 | normally displayed as boxes containing the hexadecimal character code. |
| 1273 | You can control the display method by customizing the variable | 1313 | Similarly, on text terminals, characters that cannot be displayed |
| 1274 | @code{glyphless-char-display-control}. @xref{Glyphless Chars,, | 1314 | using the terminal encoding (@pxref{Terminal Coding}) are normally |
| 1275 | Glyphless Character Display, elisp, The Emacs Lisp Reference Manual}, | 1315 | displayed as question signs. You can control the display method by |
| 1276 | for details. | 1316 | customizing the variable @code{glyphless-char-display-control}. |
| 1317 | @xref{Glyphless Chars,, Glyphless Character Display, elisp, The Emacs | ||
| 1318 | Lisp Reference Manual}, for details. | ||
| 1277 | 1319 | ||
| 1278 | @node Cursor Display | 1320 | @node Cursor Display |
| 1279 | @section Displaying the Cursor | 1321 | @section Displaying the Cursor |
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index 55fdb9ec875..aca3735ff03 100644 --- a/doc/emacs/emacs.texi +++ b/doc/emacs/emacs.texi | |||
| @@ -113,25 +113,6 @@ Emacs Lisp Reference Manual}. | |||
| 113 | @insertcopying | 113 | @insertcopying |
| 114 | @end ifnottex | 114 | @end ifnottex |
| 115 | 115 | ||
| 116 | @ignore | ||
| 117 | These subcategories have been deleted for simplicity | ||
| 118 | and to avoid conflicts. | ||
| 119 | Completion | ||
| 120 | Backup Files | ||
| 121 | Auto-Saving: Protection Against Disasters | ||
| 122 | Tags | ||
| 123 | Text Mode | ||
| 124 | Outline Mode | ||
| 125 | @TeX{} Mode | ||
| 126 | Formatted Text | ||
| 127 | Shell Command History | ||
| 128 | |||
| 129 | The ones for Dired and Rmail have had the items turned into :: items | ||
| 130 | to avoid conflicts. | ||
| 131 | Also Running Shell Commands from Emacs | ||
| 132 | and Sending Mail and Registers and Minibuffer. | ||
| 133 | @end ignore | ||
| 134 | |||
| 135 | @menu | 116 | @menu |
| 136 | * Distrib:: How to get the latest Emacs distribution. | 117 | * Distrib:: How to get the latest Emacs distribution. |
| 137 | * Intro:: An introduction to Emacs concepts. | 118 | * Intro:: An introduction to Emacs concepts. |
| @@ -350,6 +331,7 @@ Controlling the Display | |||
| 350 | * View Mode:: Viewing read-only buffers. | 331 | * View Mode:: Viewing read-only buffers. |
| 351 | * Follow Mode:: Follow mode lets two windows scroll as one. | 332 | * Follow Mode:: Follow mode lets two windows scroll as one. |
| 352 | * Faces:: How to change the display style using faces. | 333 | * Faces:: How to change the display style using faces. |
| 334 | * Colors:: Specifying colors for faces. | ||
| 353 | * Standard Faces:: Emacs' predefined faces. | 335 | * Standard Faces:: Emacs' predefined faces. |
| 354 | * Text Scale:: Increasing or decreasing text size in a buffer. | 336 | * Text Scale:: Increasing or decreasing text size in a buffer. |
| 355 | * Font Lock:: Minor mode for syntactic highlighting using faces. | 337 | * Font Lock:: Minor mode for syntactic highlighting using faces. |
| @@ -505,10 +487,8 @@ Frames and Graphical Displays | |||
| 505 | * Fonts:: Changing the frame font. | 487 | * Fonts:: Changing the frame font. |
| 506 | * Speedbar:: How to make and use a speedbar frame. | 488 | * Speedbar:: How to make and use a speedbar frame. |
| 507 | * Multiple Displays:: How one Emacs job can talk to several displays. | 489 | * Multiple Displays:: How one Emacs job can talk to several displays. |
| 508 | * Special Buffer Frames:: You can make certain buffers have their own frames. | ||
| 509 | * Frame Parameters:: Changing the colors and other modes of frames. | 490 | * Frame Parameters:: Changing the colors and other modes of frames. |
| 510 | * Scroll Bars:: How to enable and disable scroll bars; how to use them. | 491 | * Scroll Bars:: How to enable and disable scroll bars; how to use them. |
| 511 | * Wheeled Mice:: Using mouse wheels for scrolling. | ||
| 512 | * Drag and Drop:: Using drag and drop to open files and insert text. | 492 | * Drag and Drop:: Using drag and drop to open files and insert text. |
| 513 | * Menu Bars:: Enabling and disabling the menu bar. | 493 | * Menu Bars:: Enabling and disabling the menu bar. |
| 514 | * Tool Bars:: Enabling and disabling the tool bar. | 494 | * Tool Bars:: Enabling and disabling the tool bar. |
| @@ -553,10 +533,10 @@ Modes | |||
| 553 | 533 | ||
| 554 | Indentation | 534 | Indentation |
| 555 | 535 | ||
| 556 | * Indentation Commands:: Various commands and techniques for indentation. | 536 | * Indentation Commands:: More commands for performing indentation. |
| 557 | * Tab Stops:: You can set arbitrary "tab stops" and then | 537 | * Tab Stops:: Stop points for indentation in Text modes. |
| 558 | indent to the next tab stop when you want to. | 538 | * Just Spaces:: Using only space characters for indentation. |
| 559 | * Just Spaces:: You can request indentation using just spaces. | 539 | * Indent Convenience:: Optional indentation features. |
| 560 | 540 | ||
| 561 | Commands for Human Languages | 541 | Commands for Human Languages |
| 562 | 542 | ||
| @@ -571,8 +551,8 @@ Commands for Human Languages | |||
| 571 | * TeX Mode:: Editing input to the formatter TeX. | 551 | * TeX Mode:: Editing input to the formatter TeX. |
| 572 | * HTML Mode:: Editing HTML and SGML files. | 552 | * HTML Mode:: Editing HTML and SGML files. |
| 573 | * Nroff Mode:: Editing input to the formatter nroff. | 553 | * Nroff Mode:: Editing input to the formatter nroff. |
| 574 | * Formatted Text:: Editing formatted text directly in WYSIWYG fashion. | 554 | * Enriched Text:: Editing text ``enriched'' with fonts, colors, etc. |
| 575 | * Text Based Tables:: Editing text-based tables in WYSIWYG fashion. | 555 | * Text Based Tables:: Commands for editing text-based tables. |
| 576 | * Two-Column:: Splitting text columns into separate windows. | 556 | * Two-Column:: Splitting text columns into separate windows. |
| 577 | 557 | ||
| 578 | Filling Text | 558 | Filling Text |
| @@ -599,18 +579,16 @@ Outline Mode | |||
| 599 | * TeX Print:: Commands for printing part of a file with TeX. | 579 | * TeX Print:: Commands for printing part of a file with TeX. |
| 600 | * TeX Misc:: Customization of TeX mode, and related features. | 580 | * TeX Misc:: Customization of TeX mode, and related features. |
| 601 | 581 | ||
| 602 | Editing Formatted Text | 582 | Editing Enriched Text |
| 603 | 583 | ||
| 604 | * Requesting Formatted Text:: Entering and exiting Enriched mode. | 584 | * Enriched Mode:: Entering and exiting Enriched mode. |
| 605 | * Hard and Soft Newlines:: There are two different kinds of newlines. | 585 | * Hard and Soft Newlines:: There are two different kinds of newlines. |
| 606 | * Editing Format Info:: How to edit text properties. | 586 | * Editing Format Info:: How to edit text properties. |
| 607 | * Format Faces:: Bold, italic, underline, etc. | 587 | * Enriched Faces:: Bold, italic, underline, etc. |
| 608 | * Format Colors:: Changing the color of text. | 588 | * Enriched Indentation:: Changing the left and right margins. |
| 609 | * Format Indentation:: Changing the left and right margins. | 589 | * Enriched Justification:: Centering, setting text flush with the |
| 610 | * Format Justification:: Centering, setting text flush with the | 590 | left or right margin, etc. |
| 611 | left or right margin, etc. | 591 | * Enriched Properties:: The "special" text properties submenu. |
| 612 | * Format Properties:: The "special" text properties submenu. | ||
| 613 | * Forcing Enriched Mode:: How to force use of Enriched mode. | ||
| 614 | 592 | ||
| 615 | @c The automatic texinfo menu update inserts some duplicate items here | 593 | @c The automatic texinfo menu update inserts some duplicate items here |
| 616 | @c (faces, colors, indentation, justification, properties), because | 594 | @c (faces, colors, indentation, justification, properties), because |
| @@ -1152,7 +1130,7 @@ Command Line Arguments for Emacs Invocation | |||
| 1152 | * Environment:: Environment variables that Emacs uses. | 1130 | * Environment:: Environment variables that Emacs uses. |
| 1153 | * Display X:: Changing the default display and using remote login. | 1131 | * Display X:: Changing the default display and using remote login. |
| 1154 | * Font X:: Choosing a font for text, under X. | 1132 | * Font X:: Choosing a font for text, under X. |
| 1155 | * Colors:: Choosing display colors. | 1133 | * Colors X:: Choosing display colors. |
| 1156 | * Window Size X:: Start-up window size, under X. | 1134 | * Window Size X:: Start-up window size, under X. |
| 1157 | * Borders X:: Internal and external borders, under X. | 1135 | * Borders X:: Internal and external borders, under X. |
| 1158 | * Title X:: Specifying the initial frame's title. | 1136 | * Title X:: Specifying the initial frame's title. |
diff --git a/doc/emacs/emacsver.texi b/doc/emacs/emacsver.texi index 87f9dddbba8..cb3f3f39778 100644 --- a/doc/emacs/emacsver.texi +++ b/doc/emacs/emacsver.texi | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | @c It would be nicer to generate this using configure and @version@. | 1 | @c It would be nicer to generate this using configure and @version@. |
| 2 | @c However, that would mean emacsver.texi would always be newer | 2 | @c However, that would mean emacsver.texi would always be newer |
| 3 | @c then the info files in release tarfiles. | 3 | @c then the info files in release tarfiles. |
| 4 | @set EMACSVER 24.0.91 | 4 | @set EMACSVER 24.0.92 |
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi index 2317f876b08..e3da0ca44e6 100644 --- a/doc/emacs/files.texi +++ b/doc/emacs/files.texi | |||
| @@ -267,9 +267,8 @@ newly requested file. @xref{Windows}. | |||
| 267 | @kindex C-x 5 f | 267 | @kindex C-x 5 f |
| 268 | @findex find-file-other-frame | 268 | @findex find-file-other-frame |
| 269 | @kbd{C-x 5 f} (@code{find-file-other-frame}) is similar, but opens a | 269 | @kbd{C-x 5 f} (@code{find-file-other-frame}) is similar, but opens a |
| 270 | new frame, or makes visible any existing frame showing the file you | 270 | new frame, or selects any existing frame showing the specified file. |
| 271 | seek. This feature is available only when you are using a window | 271 | @xref{Frames}. |
| 272 | system. @xref{Frames}. | ||
| 273 | 272 | ||
| 274 | @cindex file selection dialog | 273 | @cindex file selection dialog |
| 275 | On graphical displays, there are two additional methods for visiting | 274 | On graphical displays, there are two additional methods for visiting |
| @@ -298,8 +297,9 @@ original encoding and end-of-line convention. @xref{Coding Systems}. | |||
| 298 | If you wish to edit a file as a sequence of @acronym{ASCII} | 297 | If you wish to edit a file as a sequence of @acronym{ASCII} |
| 299 | characters with no special encoding or conversion, use the @kbd{M-x | 298 | characters with no special encoding or conversion, use the @kbd{M-x |
| 300 | find-file-literally} command. This visits a file, like @kbd{C-x C-f}, | 299 | find-file-literally} command. This visits a file, like @kbd{C-x C-f}, |
| 301 | but does not do format conversion (@pxref{Formatted Text}), character | 300 | but does not do format conversion (@pxref{Format Conversion,, Format |
| 302 | code conversion (@pxref{Coding Systems}), or automatic uncompression | 301 | Conversion, elisp, the Emacs Lisp Reference Manual}), character code |
| 302 | conversion (@pxref{Coding Systems}), or automatic uncompression | ||
| 303 | (@pxref{Compressed Files}), and does not add a final newline because | 303 | (@pxref{Compressed Files}), and does not add a final newline because |
| 304 | of @code{require-final-newline} (@pxref{Customize Save}). If you have | 304 | of @code{require-final-newline} (@pxref{Customize Save}). If you have |
| 305 | already visited the same file in the usual (non-literal) manner, this | 305 | already visited the same file in the usual (non-literal) manner, this |
diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi index 49222451cce..1445d25be15 100644 --- a/doc/emacs/frames.texi +++ b/doc/emacs/frames.texi | |||
| @@ -6,31 +6,41 @@ | |||
| 6 | @chapter Frames and Graphical Displays | 6 | @chapter Frames and Graphical Displays |
| 7 | @cindex frames | 7 | @cindex frames |
| 8 | 8 | ||
| 9 | When using a graphical display, you can create multiple system-level | 9 | When Emacs is started on a graphical display, e.g.@: on the X Window |
| 10 | ``windows'' in a single Emacs session. We refer to these system-level | 10 | System, it occupies a graphical system-level ``window''. In this |
| 11 | windows as @dfn{frames}. A frame initially contains a single Emacs | 11 | manual, we call this a @dfn{frame}, reserving the word ``window'' for |
| 12 | window; however, you can subdivide this Emacs window into smaller | 12 | the part of the frame used for displaying a buffer. A frame initially |
| 13 | windows, all fitting into the same frame. Each frame normally | 13 | contains one window, but it can be subdivided into multiple windows |
| 14 | contains its own echo area and minibuffer. | 14 | (@pxref{Windows}). A frame normally also contains a menu bar, tool |
| 15 | 15 | bar, and echo area. | |
| 16 | To avoid confusion, we reserve the word ``window'' for the | 16 | |
| 17 | subdivisions that Emacs implements, and never use it to refer to a | 17 | You can also create additional frames (@pxref{Creating Frames}). |
| 18 | frame. | 18 | All frames created in the same Emacs session have access to the same |
| 19 | 19 | underlying buffers and other data. For instance, if a buffer is being | |
| 20 | Any editing you do in one frame affects the other frames. For | 20 | shown in more than one frame, any changes made to it in one frame show |
| 21 | instance, if you put text in the kill ring in one frame, you can yank | 21 | up immediately in the other frames too. |
| 22 | it in another frame. If you exit Emacs through @kbd{C-x C-c} in one | 22 | |
| 23 | frame, it terminates all the frames. To delete just one frame, use | 23 | Typing @kbd{C-x C-c} closes all the frames on the current display, |
| 24 | and ends the Emacs session if it has no frames open on any other | ||
| 25 | displays (@pxref{Exiting}). To close just the selected frame, type | ||
| 24 | @kbd{C-x 5 0} (that is zero, not @kbd{o}). | 26 | @kbd{C-x 5 0} (that is zero, not @kbd{o}). |
| 25 | 27 | ||
| 26 | Emacs compiled for MS-DOS emulates some windowing functionality, | 28 | This chapter describes Emacs features specific to graphical displays |
| 27 | so that you can use many of the features described in this chapter. | 29 | (particularly mouse commands), and features for managing multiple |
| 30 | frames. On text-only terminals, many of these features are | ||
| 31 | unavailable. However, it is still possible to create multiple | ||
| 32 | ``frames'' on text-only terminals; such frames are displayed one at a | ||
| 33 | time, filling the entire terminal screen (@pxref{Non-Window | ||
| 34 | Terminals}). It is also possible to use the mouse on some text-only | ||
| 35 | terminals (@pxref{Text-Only Mouse}, for doing so on GNU and UNIX | ||
| 36 | systems; and | ||
| 28 | @iftex | 37 | @iftex |
| 29 | @xref{MS-DOS Mouse,,,emacs-xtra,Specialized Emacs Features}. | 38 | @pxref{MS-DOS Mouse,,,emacs-xtra,Specialized Emacs Features}, |
| 30 | @end iftex | 39 | @end iftex |
| 31 | @ifnottex | 40 | @ifnottex |
| 32 | @xref{MS-DOS Mouse}. | 41 | @pxref{MS-DOS Mouse}, |
| 33 | @end ifnottex | 42 | @end ifnottex |
| 43 | for doing so on MS-DOS). | ||
| 34 | 44 | ||
| 35 | @menu | 45 | @menu |
| 36 | * Mouse Commands:: Moving, cutting, and pasting, with the mouse. | 46 | * Mouse Commands:: Moving, cutting, and pasting, with the mouse. |
| @@ -43,10 +53,8 @@ so that you can use many of the features described in this chapter. | |||
| 43 | * Fonts:: Changing the frame font. | 53 | * Fonts:: Changing the frame font. |
| 44 | * Speedbar:: How to make and use a speedbar frame. | 54 | * Speedbar:: How to make and use a speedbar frame. |
| 45 | * Multiple Displays:: How one Emacs job can talk to several displays. | 55 | * Multiple Displays:: How one Emacs job can talk to several displays. |
| 46 | * Special Buffer Frames:: You can make certain buffers have their own frames. | ||
| 47 | * Frame Parameters:: Changing the colors and other modes of frames. | 56 | * Frame Parameters:: Changing the colors and other modes of frames. |
| 48 | * Scroll Bars:: How to enable and disable scroll bars; how to use them. | 57 | * Scroll Bars:: How to enable and disable scroll bars; how to use them. |
| 49 | * Wheeled Mice:: Using mouse wheels for scrolling. | ||
| 50 | * Drag and Drop:: Using drag and drop to open files and insert text. | 58 | * Drag and Drop:: Using drag and drop to open files and insert text. |
| 51 | * Menu Bars:: Enabling and disabling the menu bar. | 59 | * Menu Bars:: Enabling and disabling the menu bar. |
| 52 | * Tool Bars:: Enabling and disabling the tool bar. | 60 | * Tool Bars:: Enabling and disabling the tool bar. |
| @@ -85,31 +93,32 @@ ring; on a second click, kill it (@code{mouse-save-then-kill}). | |||
| 85 | 93 | ||
| 86 | @findex mouse-set-point | 94 | @findex mouse-set-point |
| 87 | The most basic mouse command is @code{mouse-set-point}, which is | 95 | The most basic mouse command is @code{mouse-set-point}, which is |
| 88 | called by clicking with the left mouse button, @kbd{Mouse-1}, in the | 96 | invoked by clicking with the left mouse button, @kbd{Mouse-1}, in the |
| 89 | text area of a window. This moves point to the position where you | 97 | text area of a window. This moves point to the position where you |
| 90 | clicked. | 98 | clicked. If that window was not the selected window, it becomes the |
| 99 | selected window. | ||
| 91 | 100 | ||
| 92 | @vindex x-mouse-click-focus-ignore-position | 101 | @vindex x-mouse-click-focus-ignore-position |
| 93 | Normally, Emacs does not distinguish between ordinary mouse clicks | 102 | Normally, if the frame you clicked in was not the selected frame, it |
| 94 | and clicks that select a frame. When you click on a frame to select | 103 | is made the selected frame, in addition to selecting the window and |
| 95 | it, that also changes the selected window and cursor position | 104 | setting the cursor. On the X Window System, you can change this by |
| 96 | according to the mouse click position. On the X Window System, you | 105 | setting the variable @code{x-mouse-click-focus-ignore-position} to |
| 97 | can change this behavior by setting the variable | 106 | @code{t}. In that case, the initial click on an unselected frame just |
| 98 | @code{x-mouse-click-focus-ignore-position} to @code{t}. Then the | 107 | selects the frame, without doing anything else; clicking again selects |
| 99 | first click selects the frame, but does not affect the selected window | 108 | the window and sets the cursor position. |
| 100 | or cursor position. If you click again in the same place, that click | ||
| 101 | will be in the selected frame, so it will change the window or cursor | ||
| 102 | position. | ||
| 103 | 109 | ||
| 104 | @findex mouse-set-region | 110 | @findex mouse-set-region |
| 105 | @vindex mouse-drag-copy-region | ||
| 106 | Holding down @kbd{Mouse-1} and ``dragging'' the mouse over a stretch | 111 | Holding down @kbd{Mouse-1} and ``dragging'' the mouse over a stretch |
| 107 | of text activates the region around that text | 112 | of text activates the region around that text |
| 108 | (@code{mouse-set-region}). @xref{Mark}. Emacs places the mark where | 113 | (@code{mouse-set-region}), placing the mark where you started holding |
| 109 | you started holding down the mouse button, and point where you release | 114 | down the mouse button, and point where you release it (@pxref{Mark}). |
| 110 | it. In addition, the region is copied into the kill ring (@pxref{Kill | 115 | In addition, the text in the region becomes the primary selection |
| 111 | Ring}). If you don't want Emacs to copy the region, change the | 116 | (@pxref{Primary Selection}). |
| 112 | variable @code{mouse-drag-copy-region} to @code{nil}. | 117 | |
| 118 | @vindex mouse-drag-copy-region | ||
| 119 | If you change the variable @code{mouse-drag-copy-region} to a | ||
| 120 | non-@code{nil} value, dragging the mouse over a stretch of text also | ||
| 121 | adds the text to the kill ring. The default is @code{nil}. | ||
| 113 | 122 | ||
| 114 | @vindex mouse-scroll-min-lines | 123 | @vindex mouse-scroll-min-lines |
| 115 | If you move the mouse off the top or bottom of the window while | 124 | If you move the mouse off the top or bottom of the window while |
| @@ -124,7 +133,7 @@ on how far away from the window edge the mouse has gone; the variable | |||
| 124 | Clicking with the middle mouse button, @kbd{Mouse-2}, moves point to | 133 | Clicking with the middle mouse button, @kbd{Mouse-2}, moves point to |
| 125 | the position where you clicked and inserts the contents of the primary | 134 | the position where you clicked and inserts the contents of the primary |
| 126 | selection (@code{mouse-yank-primary}). @xref{Primary Selection}. | 135 | selection (@code{mouse-yank-primary}). @xref{Primary Selection}. |
| 127 | This behavior is consistent with other X applications; alternatively, | 136 | This behavior is consistent with other X applications. Alternatively, |
| 128 | you can rebind @kbd{Mouse-2} to @code{mouse-yank-at-click}, which | 137 | you can rebind @kbd{Mouse-2} to @code{mouse-yank-at-click}, which |
| 129 | performs a yank at point. | 138 | performs a yank at point. |
| 130 | 139 | ||
| @@ -144,7 +153,6 @@ depending on where you click and the status of the region: | |||
| 144 | @item | 153 | @item |
| 145 | If no region is active, clicking @kbd{Mouse-3} activates the region, | 154 | If no region is active, clicking @kbd{Mouse-3} activates the region, |
| 146 | placing the mark where point was and point at the clicked position. | 155 | placing the mark where point was and point at the clicked position. |
| 147 | In addition, the text in the region is copied to the kill ring. | ||
| 148 | 156 | ||
| 149 | @item | 157 | @item |
| 150 | If a region is active, clicking @kbd{Mouse-3} adjusts the nearer end | 158 | If a region is active, clicking @kbd{Mouse-3} adjusts the nearer end |
| @@ -155,8 +163,8 @@ region was already on the kill ring, it replaces it there. | |||
| 155 | @item | 163 | @item |
| 156 | If you originally specified the region using a double or triple | 164 | If you originally specified the region using a double or triple |
| 157 | @kbd{Mouse-1}, so that the region is defined to consist of entire | 165 | @kbd{Mouse-1}, so that the region is defined to consist of entire |
| 158 | words or lines, then adjusting the region with @kbd{Mouse-3} also | 166 | words or lines (@pxref{Word and Line Mouse}), then adjusting the |
| 159 | proceeds by entire words or lines. | 167 | region with @kbd{Mouse-3} also proceeds by entire words or lines. |
| 160 | 168 | ||
| 161 | @item | 169 | @item |
| 162 | If you use @kbd{Mouse-3} a second time consecutively, at the same | 170 | If you use @kbd{Mouse-3} a second time consecutively, at the same |
| @@ -168,23 +176,33 @@ just once---or just drag across the text with @kbd{Mouse-1}. Then you | |||
| 168 | can copy it elsewhere by yanking it. | 176 | can copy it elsewhere by yanking it. |
| 169 | @end itemize | 177 | @end itemize |
| 170 | 178 | ||
| 179 | The @code{mouse-save-then-kill} command also obeys the variable | ||
| 180 | @code{mouse-drag-copy-region} (described above). If the value is | ||
| 181 | non-@code{nil}, then whenever the command sets or adjusts the active | ||
| 182 | region, the text in the region is also added to the kill ring. If the | ||
| 183 | latest kill ring entry had been added the same way, that entry is | ||
| 184 | replaced rather than making a new entry. | ||
| 185 | |||
| 171 | Whenever you set the region using any of the mouse commands | 186 | Whenever you set the region using any of the mouse commands |
| 172 | described above, the mark will be deactivated by any subsequent | 187 | described above, the mark will be deactivated by any subsequent |
| 173 | unshifted cursor motion command, in addition to the usual ways of | 188 | unshifted cursor motion command, in addition to the usual ways of |
| 174 | deactivating the mark. @xref{Shift Selection}. While the region | 189 | deactivating the mark. @xref{Shift Selection}. |
| 175 | remains active, typing @key{Backspace} or @key{Delete} deletes the | 190 | |
| 176 | text in that region and deactivates the mark; this behavior follows a | 191 | @cindex mouse wheel |
| 177 | convention established by other graphical programs, and it does | 192 | @findex mouse-wheel-mode |
| 178 | @emph{not} apply when you set the region any other way, including | 193 | @cindex Mouse Wheel minor mode |
| 179 | shift-selection (@pxref{Shift Selection}). | 194 | @cindex mode, Mouse Wheel |
| 180 | 195 | @vindex mouse-wheel-follow-mouse | |
| 181 | @cindex Delete Selection mode | 196 | @vindex mouse-wheel-scroll-amount |
| 182 | @cindex mode, Delete Selection | 197 | @vindex mouse-wheel-progressive-speed |
| 183 | @findex delete-selection-mode | 198 | Some mice have a ``wheel'' which can be used for scrolling. Emacs |
| 184 | Many graphical applications also follow the convention that | 199 | supports scrolling windows with the mouse wheel, by default, on most |
| 185 | insertion while text is selected deletes the selected text. You can | 200 | graphical displays. To toggle this feature, use @kbd{M-x |
| 186 | make Emacs behave this way by enabling Delete Selection mode. | 201 | mouse-wheel-mode}. The variables @code{mouse-wheel-follow-mouse} and |
| 187 | @xref{Using Region}. | 202 | @code{mouse-wheel-scroll-amount} determine where and by how much |
| 203 | buffers are scrolled. The variable | ||
| 204 | @code{mouse-wheel-progressive-speed} determines whether the scroll | ||
| 205 | speed is linked to how fast you move the wheel. | ||
| 188 | 206 | ||
| 189 | @node Word and Line Mouse | 207 | @node Word and Line Mouse |
| 190 | @section Mouse Commands for Words and Lines | 208 | @section Mouse Commands for Words and Lines |
| @@ -202,7 +220,7 @@ underscore, in C mode) selects the symbol surrounding that character. | |||
| 202 | Double-clicking on a character with open- or close-parenthesis syntax | 220 | Double-clicking on a character with open- or close-parenthesis syntax |
| 203 | selects the parenthetical grouping which that character starts or | 221 | selects the parenthetical grouping which that character starts or |
| 204 | ends. Double-clicking on a character with string-delimiter syntax | 222 | ends. Double-clicking on a character with string-delimiter syntax |
| 205 | (such as a singlequote or doublequote in C) selects the string | 223 | (such as a single-quote or double-quote in C) selects the string |
| 206 | constant (Emacs uses heuristics to figure out whether that character | 224 | constant (Emacs uses heuristics to figure out whether that character |
| 207 | is the beginning or the end of it). | 225 | is the beginning or the end of it). |
| 208 | 226 | ||
| @@ -220,50 +238,54 @@ Select the text you drag across, in the form of whole lines. | |||
| 220 | @section Following References with the Mouse | 238 | @section Following References with the Mouse |
| 221 | @kindex Mouse-1 @r{(selection)} | 239 | @kindex Mouse-1 @r{(selection)} |
| 222 | @kindex Mouse-2 @r{(selection)} | 240 | @kindex Mouse-2 @r{(selection)} |
| 241 | @cindex hyperlinks | ||
| 242 | @cindex links | ||
| 243 | @cindex text buttons | ||
| 244 | @cindex buttons | ||
| 223 | 245 | ||
| 224 | @vindex mouse-highlight | 246 | @vindex mouse-highlight |
| 225 | Some Emacs buffers include @dfn{buttons}. A button is a piece of | 247 | Some Emacs buffers include @dfn{buttons}, or @dfn{hyperlinks}: |
| 226 | text that performs some action when you activate it, such as following | 248 | pieces of text that perform some action (e.g.@: following a reference) |
| 227 | a reference. Usually, a button's text is visually highlighted: it is | 249 | when activated (e.g.@: by clicking on them). Usually, a button's text |
| 228 | underlined, or a box is drawn around it. If you move the mouse over a | 250 | is visually highlighted: it is underlined, or a box is drawn around |
| 229 | button, the shape of the mouse cursor changes and the button lights up | 251 | it. If you move the mouse over a button, the shape of the mouse |
| 230 | (if you change the variable @code{mouse-highlight} to @code{nil}, | 252 | cursor changes and the button lights up. If you change the variable |
| 231 | Emacs disables this highlighting). | 253 | @code{mouse-highlight} to @code{nil}, Emacs disables this |
| 254 | highlighting. | ||
| 232 | 255 | ||
| 233 | You can activate a button by moving point to it and typing | 256 | You can activate a button by moving point to it and typing |
| 234 | @key{RET}, or by clicking either @kbd{Mouse-1} or @kbd{Mouse-2} on the | 257 | @key{RET}, or by clicking either @kbd{Mouse-1} or @kbd{Mouse-2} on the |
| 235 | button. For example, typing @key{RET} or clicking on a file name in a | 258 | button. For example, in a Dired buffer, each file name is a button; |
| 236 | Dired buffer visits that file (@pxref{Dired}). Doing it on an error | 259 | activating it causes Emacs to visit that file (@pxref{Dired}). In a |
| 237 | message in the @samp{*Compilation*} buffer goes to the source code for | 260 | @samp{*Compilation*} buffer, each error message is a button, and |
| 238 | that error message (@pxref{Compilation}). Doing it on a completion in | 261 | activating it visits the source code for that error |
| 239 | the @samp{*Completions*} buffer chooses that completion | 262 | (@pxref{Compilation}). |
| 240 | (@pxref{Completion}). | 263 | |
| 241 | 264 | Although clicking @kbd{Mouse-1} on a button usually activates the | |
| 242 | Although clicking @kbd{Mouse-1} on a button usually activates that | 265 | button, if you hold the mouse button down for a period of time before |
| 243 | button, if you hold the mouse button down for a short period of time | 266 | releasing it (specifically, for more than 450 milliseconds), then |
| 244 | before releasing it (specifically, for more than 450 milliseconds), | 267 | Emacs moves point where you clicked, without activating the button. |
| 245 | then Emacs moves point where you clicked instead. This behavior | 268 | In this way, you can use the mouse to move point over a button without |
| 246 | allows you to use the mouse to move point over a button without | 269 | activating it. Dragging the mouse over or onto a button has its usual |
| 247 | following it. Dragging---moving the mouse while it is held down---has | 270 | behavior of setting the region, and does not activate the button. |
| 248 | its usual behavior of setting the region, even if you drag from or | 271 | |
| 249 | onto a button. | 272 | You can change how @kbd{Mouse-1} applies to buttons by customizing |
| 273 | the variable @code{mouse-1-click-follows-link}. If the value is a | ||
| 274 | positive integer, that determines how long you need to hold the mouse | ||
| 275 | button down for, in milliseconds, to cancel button activation; the | ||
| 276 | default is 450, as described in the previous paragraph. If the value | ||
| 277 | is @code{nil}, @kbd{Mouse-1} just sets point where you clicked, and | ||
| 278 | does not activate buttons. If the value is @code{double}, double | ||
| 279 | clicks activate buttons but single clicks just set point. | ||
| 250 | 280 | ||
| 251 | @vindex mouse-1-click-in-non-selected-windows | 281 | @vindex mouse-1-click-in-non-selected-windows |
| 252 | Normally, clicking @kbd{Mouse-1} on a button activates the button | 282 | Normally, @kbd{Mouse-1} on a button activates the button even if it |
| 253 | even if it is in a nonselected window. If you change the variable | 283 | is in a non-selected window. If you change the variable |
| 254 | @code{mouse-1-click-in-non-selected-windows} to @code{nil}, clicking | 284 | @code{mouse-1-click-in-non-selected-windows} to @code{nil}, |
| 255 | @kbd{Mouse-1} on a button in an un-selected window moves point to the | 285 | @kbd{Mouse-1} on a button in an unselected window moves point to the |
| 256 | clicked position and selects that window, without activating the | 286 | clicked position and selects that window, without activating the |
| 257 | button. | 287 | button. |
| 258 | 288 | ||
| 259 | @vindex mouse-1-click-follows-link | ||
| 260 | In Emacs versions before 22, only @kbd{Mouse-2} activates buttons | ||
| 261 | and @kbd{Mouse-1} always sets point. If you prefer this older | ||
| 262 | behavior, set the variable @code{mouse-1-click-follows-link} to | ||
| 263 | @code{nil}. This variable also lets you choose various other | ||
| 264 | alternatives for following links with the mouse. Type @kbd{C-h v | ||
| 265 | mouse-1-click-follows-link @key{RET}} for more details. | ||
| 266 | |||
| 267 | @node Menu Mouse Clicks | 289 | @node Menu Mouse Clicks |
| 268 | @section Mouse Clicks for Menus | 290 | @section Mouse Clicks for Menus |
| 269 | 291 | ||
| @@ -280,28 +302,35 @@ menu smarter and more customizable. @xref{Buffer Menus}. | |||
| 280 | 302 | ||
| 281 | @item C-Mouse-2 | 303 | @item C-Mouse-2 |
| 282 | @kindex C-Mouse-2 | 304 | @kindex C-Mouse-2 |
| 283 | This menu is for specifying faces and other text properties | 305 | This menu contains entries for examining faces and other text |
| 284 | for editing formatted text. @xref{Formatted Text}. | 306 | properties, and well as for setting them (the latter is mainly useful |
| 307 | when editing enriched text; @pxref{Enriched Text}). | ||
| 285 | 308 | ||
| 286 | @item C-Mouse-3 | 309 | @item C-Mouse-3 |
| 287 | @kindex C-Mouse-3 | 310 | @kindex C-Mouse-3 |
| 288 | This menu is mode-specific. For most modes if Menu-bar mode is on, | 311 | This menu is mode-specific. For most modes if Menu-bar mode is on, |
| 289 | this menu has the same items as all the mode-specific menu-bar menus | 312 | this menu has the same items as all the mode-specific menu-bar menus |
| 290 | put together. Some modes may specify a different menu for this | 313 | put together. Some modes may specify a different menu for this |
| 291 | button.@footnote{Some systems use @kbd{Mouse-3} for a mode-specific | 314 | button. If Menu Bar mode is off, this menu contains all the items |
| 292 | menu. We took a survey of users, and found they preferred to keep | 315 | which would be present in the menu bar---not just the mode-specific |
| 293 | @kbd{Mouse-3} for selecting and killing regions. Hence the decision | 316 | ones---so that you can access them without having to display the menu |
| 294 | to use @kbd{C-Mouse-3} for this menu. To use @kbd{Mouse-3} instead, | 317 | bar. |
| 295 | do @code{(global-set-key [mouse-3] 'mouse-popup-menubar-stuff)}.} If | ||
| 296 | Menu-bar mode is off, this menu contains all the items which would be | ||
| 297 | present in the menu bar---not just the mode-specific ones---so that | ||
| 298 | you can access them without having to display the menu bar. | ||
| 299 | 318 | ||
| 300 | @item S-Mouse-1 | 319 | @item S-Mouse-1 |
| 301 | This menu is for changing the default face within the window's buffer. | 320 | This menu is for changing the default face within the window's buffer. |
| 302 | @xref{Text Scale}. | 321 | @xref{Text Scale}. |
| 303 | @end table | 322 | @end table |
| 304 | 323 | ||
| 324 | Some graphical applications use @kbd{Mouse-3} for a mode-specific | ||
| 325 | menu. If you prefer @kbd{Mouse-3} in Emacs to bring up such a menu | ||
| 326 | instead of running the @code{mouse-save-then-kill} command, rebind | ||
| 327 | @kbd{Mouse-3} by adding the following line to your init file | ||
| 328 | (@pxref{Init Rebinding}): | ||
| 329 | |||
| 330 | @smallexample | ||
| 331 | (global-set-key [mouse-3] 'mouse-popup-menubar-stuff) | ||
| 332 | @end smallexample | ||
| 333 | |||
| 305 | @node Mode Line Mouse | 334 | @node Mode Line Mouse |
| 306 | @section Mode Line Mouse Commands | 335 | @section Mode Line Mouse Commands |
| 307 | @cindex mode line, mouse | 336 | @cindex mode line, mouse |
| @@ -332,34 +361,33 @@ make any window smaller than the minimum height. | |||
| 332 | @item Mouse-3 | 361 | @item Mouse-3 |
| 333 | @kindex Mouse-3 @r{(mode line)} | 362 | @kindex Mouse-3 @r{(mode line)} |
| 334 | @kbd{Mouse-3} on a mode line deletes the window it belongs to. If the | 363 | @kbd{Mouse-3} on a mode line deletes the window it belongs to. If the |
| 335 | frame has only one window, it buries the current buffer instead, and | 364 | frame has only one window, it does nothing. |
| 336 | switches to another buffer. | ||
| 337 | 365 | ||
| 338 | @item C-Mouse-2 | 366 | @item C-Mouse-2 |
| 339 | @kindex C-mouse-2 @r{(mode line)} | 367 | @kindex C-mouse-2 @r{(mode line)} |
| 340 | @kbd{C-Mouse-2} on a mode line splits the window above | 368 | @kbd{C-Mouse-2} on a mode line splits that window, producing two |
| 341 | horizontally, above the place in the mode line where you click. | 369 | side-by-side windows with the boundary running through the click |
| 370 | position (@pxref{Split Window}). | ||
| 342 | @end table | 371 | @end table |
| 343 | 372 | ||
| 344 | @kindex C-Mouse-2 @r{(scroll bar)} | 373 | @kindex C-Mouse-2 @r{(scroll bar)} |
| 345 | @kindex Mouse-1 @r{(scroll bar)} | 374 | @kindex Mouse-1 @r{(scroll bar)} |
| 346 | Using @kbd{Mouse-1} on the divider between two side-by-side mode | 375 | Furthermore, by clicking and dragging @kbd{Mouse-1} on the divider |
| 347 | lines, you can move the vertical boundary left or right. Using | 376 | between two side-by-side mode lines, you can move the vertical |
| 348 | @kbd{C-Mouse-2} on a scroll bar splits the corresponding window | 377 | boundary to the left or right. |
| 349 | vertically. @xref{Split Window}. | ||
| 350 | 378 | ||
| 351 | @node Creating Frames | 379 | @node Creating Frames |
| 352 | @section Creating Frames | 380 | @section Creating Frames |
| 353 | @cindex creating frames | 381 | @cindex creating frames |
| 354 | 382 | ||
| 355 | @kindex C-x 5 | 383 | @kindex C-x 5 |
| 356 | The prefix key @kbd{C-x 5} is analogous to @kbd{C-x 4}, with | 384 | The prefix key @kbd{C-x 5} is analogous to @kbd{C-x 4}. Whereas |
| 357 | parallel subcommands. The difference is that @kbd{C-x 5} commands | 385 | each @kbd{C-x 4} command pops up a buffer in a different window in the |
| 358 | create a new frame rather than just a new window in the selected frame | 386 | selected frame (@pxref{Pop Up Window}), the @kbd{C-x 5} commands use a |
| 359 | (@pxref{Pop Up Window}). If an existing visible or iconified | 387 | different frame. If an existing visible or iconified (``minimized'') |
| 360 | (``minimized'') frame already displays the requested material, these | 388 | frame already displays the requested buffer, that frame is raised and |
| 361 | commands use the existing frame, after raising or deiconifying | 389 | deiconified (``un-minimized''); otherwise, a new frame is created on |
| 362 | (``un-minimizing'') as necessary. | 390 | the current display terminal. |
| 363 | 391 | ||
| 364 | The various @kbd{C-x 5} commands differ in how they find or create the | 392 | The various @kbd{C-x 5} commands differ in how they find or create the |
| 365 | buffer to select: | 393 | buffer to select: |
| @@ -394,56 +422,32 @@ frame. This runs @code{find-file-read-only-other-frame}. | |||
| 394 | @xref{Visiting}. | 422 | @xref{Visiting}. |
| 395 | @end table | 423 | @end table |
| 396 | 424 | ||
| 397 | @cindex default-frame-alist | 425 | You can control the appearance and behavior of the newly-created |
| 398 | @cindex initial-frame-alist | 426 | frames by specifying @dfn{frame parameters}. @xref{Frame Parameters}. |
| 399 | @cindex face customization, in init file | ||
| 400 | @cindex color customization, in init file | ||
| 401 | You can control the appearance of new frames you create by setting the | ||
| 402 | frame parameters in @code{default-frame-alist}. You can use the | ||
| 403 | variable @code{initial-frame-alist} to specify parameters that affect | ||
| 404 | only the initial frame. @xref{Initial Parameters,,, elisp, The Emacs | ||
| 405 | Lisp Reference Manual}, for more information. | ||
| 406 | |||
| 407 | @cindex font (default) | ||
| 408 | Here is an example of using @code{default-frame-alist} to specify | ||
| 409 | the default foreground color and font: | ||
| 410 | |||
| 411 | @example | ||
| 412 | (add-to-list 'default-frame-alist '(font . "10x20")) | ||
| 413 | (add-to-list 'default-frame-alist | ||
| 414 | '(foreground-color . "blue")) | ||
| 415 | @end example | ||
| 416 | |||
| 417 | @noindent | ||
| 418 | By putting such customizations in your init file, you can control the | ||
| 419 | appearance of all the frames Emacs creates, including the initial one | ||
| 420 | (@pxref{Init File}). @xref{Fonts}, for other ways to set the default | ||
| 421 | font. | ||
| 422 | 427 | ||
| 423 | @node Frame Commands | 428 | @node Frame Commands |
| 424 | @section Frame Commands | 429 | @section Frame Commands |
| 425 | 430 | ||
| 426 | The following commands let you create, delete and operate on frames: | 431 | The following commands are used to delete and operate on frames: |
| 427 | 432 | ||
| 428 | @table @kbd | 433 | @table @kbd |
| 434 | @item C-x 5 0 | ||
| 435 | @kindex C-x 5 0 | ||
| 436 | @findex delete-frame | ||
| 437 | Delete the selected frame (@code{delete-frame}). This signals an | ||
| 438 | error if there is only one frame. | ||
| 439 | |||
| 429 | @item C-z | 440 | @item C-z |
| 430 | @kindex C-z @r{(X windows)} | 441 | @kindex C-z @r{(X windows)} |
| 431 | @findex suspend-frame | 442 | @findex suspend-frame |
| 432 | Minimize (or ``iconify) the selected Emacs frame | 443 | Minimize (or ``iconify) the selected Emacs frame |
| 433 | (@code{suspend-frame}). @xref{Exiting}. | 444 | (@code{suspend-frame}). @xref{Exiting}. |
| 434 | 445 | ||
| 435 | @item C-x 5 0 | ||
| 436 | @kindex C-x 5 0 | ||
| 437 | @findex delete-frame | ||
| 438 | Delete the selected frame (@code{delete-frame}). This is not allowed | ||
| 439 | if there is only one frame. | ||
| 440 | |||
| 441 | @item C-x 5 o | 446 | @item C-x 5 o |
| 442 | @kindex C-x 5 o | 447 | @kindex C-x 5 o |
| 443 | @findex other-frame | 448 | @findex other-frame |
| 444 | Select another frame, raise it, and warp the mouse to it. If you | 449 | Select another frame, and raise it. If you repeat this command, it |
| 445 | repeat this command, it cycles through all the frames on your | 450 | cycles through all the frames on your terminal. |
| 446 | terminal. | ||
| 447 | 451 | ||
| 448 | @item C-x 5 1 | 452 | @item C-x 5 1 |
| 449 | @kindex C-x 5 1 | 453 | @kindex C-x 5 1 |
| @@ -451,43 +455,37 @@ terminal. | |||
| 451 | Delete all frames on the current terminal, except the selected one. | 455 | Delete all frames on the current terminal, except the selected one. |
| 452 | @end table | 456 | @end table |
| 453 | 457 | ||
| 454 | The @kbd{C-x 5 0} (@code{delete-frame}) command never deletes the | 458 | The @kbd{C-x 5 0} (@code{delete-frame}) command deletes the selected |
| 455 | last frame. This prevents you from losing the ability to interact | 459 | frame. However, it will refuse to delete the last frame in an Emacs |
| 456 | with the Emacs process. Note that when Emacs is run as a daemon | 460 | session, to prevent you from losing the ability to interact with the |
| 457 | (@pxref{Emacs Server}), there is always a ``virtual frame'' that | 461 | Emacs session. Note that when Emacs is run as a daemon (@pxref{Emacs |
| 458 | remains after all the ordinary, interactive frames are deleted. In | 462 | Server}), there is always a ``virtual frame'' that remains after all |
| 459 | this case, @kbd{C-x 5 0} can delete the last interactive frame; you | 463 | the ordinary, interactive frames are deleted. In this case, @kbd{C-x |
| 460 | can use @command{emacsclient} to reconnect to the Emacs session. | 464 | 5 0} can delete the last interactive frame; you can use |
| 461 | 465 | @command{emacsclient} to reconnect to the Emacs session. | |
| 462 | The @kbd{C-x 5 1} (@code{delete-other-frames}) command only deletes | 466 | |
| 463 | frames on the current terminal. For example, if you call it from an X | 467 | The @kbd{C-x 5 1} (@code{delete-other-frames}) command deletes all |
| 464 | frame, it deletes the other frames on that X display; if the Emacs | 468 | other frames on the current terminal (this terminal refers to either a |
| 465 | process has frames open on other X displays or text terminals, those | 469 | graphical display, or a text-only terminal; @pxref{Non-Window |
| 466 | are not deleted. | 470 | Terminals}). If the Emacs session has frames open on other graphical |
| 471 | displays or text terminals, those are not deleted. | ||
| 467 | 472 | ||
| 468 | @vindex focus-follows-mouse | 473 | @vindex focus-follows-mouse |
| 469 | On X, you may have to tell Emacs how the window manager handles | 474 | The @kbd{C-x 5 o} (@code{other-frame}) command selects the next |
| 470 | focus-switching between windows, in order for @kbd{C-x 5 o} | 475 | frame on the current terminal. If you are using Emacs on the X Window |
| 471 | (@code{other-frame}) to work properly. Unfortunately, there is no way | 476 | System with a window manager that selects (or @dfn{gives focus to}) |
| 472 | for Emacs to detect this automatically, so you should set the variable | 477 | whatever frame the mouse cursor is over, you have to change the |
| 473 | @code{focus-follows-mouse}. The default is @code{nil}, meaning you | 478 | variable @code{focus-follows-mouse} to @code{t} in order for this |
| 474 | have to click on the window to select it (the default for most modern | 479 | command to work properly. Then invoking @kbd{C-x 5 o} will also warp |
| 475 | window managers). You should change it to @code{t} if your window | 480 | the mouse cursor to the chosen frame. |
| 476 | manager selects a window and gives it focus anytime you move the mouse | ||
| 477 | onto the window. | ||
| 478 | |||
| 479 | The window manager that is part of MS-Windows always gives focus to | ||
| 480 | a frame that raises, so this variable has no effect in the native | ||
| 481 | MS-Windows build of Emacs. However, you may still wish to set this | ||
| 482 | variable to @code{t} to have Emacs automatically move the mouse | ||
| 483 | pointer to the raised frame. | ||
| 484 | 481 | ||
| 485 | @node Fonts | 482 | @node Fonts |
| 486 | @section Fonts | 483 | @section Fonts |
| 487 | @cindex fonts | 484 | @cindex fonts |
| 488 | 485 | ||
| 489 | By default, Emacs displays text in X using a 12-point monospace | 486 | By default, Emacs displays text on graphical displays using a |
| 490 | font. There are several different ways to specify a different font: | 487 | 12-point monospace font. There are several different ways to specify |
| 488 | a different font: | ||
| 491 | 489 | ||
| 492 | @itemize | 490 | @itemize |
| 493 | @item | 491 | @item |
| @@ -501,7 +499,7 @@ variable @code{default-frame-alist} to specify the @code{font} | |||
| 501 | parameter (@pxref{Creating Frames}), like this: | 499 | parameter (@pxref{Creating Frames}), like this: |
| 502 | 500 | ||
| 503 | @smallexample | 501 | @smallexample |
| 504 | (add-to-list 'default-frame-alist '(font . "DejaVu Sans Mono-12")) | 502 | (add-to-list 'default-frame-alist '(font . "DejaVu Sans Mono-10")) |
| 505 | @end smallexample | 503 | @end smallexample |
| 506 | 504 | ||
| 507 | @cindex X defaults file | 505 | @cindex X defaults file |
| @@ -523,18 +521,16 @@ font in your X resources file, you should not quote it. | |||
| 523 | If you are running Emacs on the GNOME desktop, you can tell Emacs to | 521 | If you are running Emacs on the GNOME desktop, you can tell Emacs to |
| 524 | use the default system font by setting the variable | 522 | use the default system font by setting the variable |
| 525 | @code{font-use-system-font} to @code{t} (the default is @code{nil}). | 523 | @code{font-use-system-font} to @code{t} (the default is @code{nil}). |
| 526 | For this to work, Emacs must be compiled with Gconf support; this is | 524 | For this to work, Emacs must have been compiled with Gconf support. |
| 527 | done automatically if the libraries are present at compile time. | ||
| 528 | 525 | ||
| 529 | @item | 526 | @item |
| 530 | Use the command line option @samp{-fn} (or @samp{--font}). @xref{Font | 527 | Use the command line option @samp{-fn} (or @samp{--font}). @xref{Font |
| 531 | X}. | 528 | X}. |
| 532 | @end itemize | 529 | @end itemize |
| 533 | 530 | ||
| 534 | To check what font you're currently using, the @kbd{C-u C-x =} | 531 | To check what font you're currently using, the @kbd{C-u C-x =} |
| 535 | command can be helpful. It'll describe the character under point, and | 532 | command can be helpful. It describes the character at point, and |
| 536 | also say what font it's rendered in, if the window system you're | 533 | names the font that it's rendered in. |
| 537 | running under supports that. | ||
| 538 | 534 | ||
| 539 | @cindex fontconfig | 535 | @cindex fontconfig |
| 540 | On X, there are four different ways to express a ``font name''. The | 536 | On X, there are four different ways to express a ``font name''. The |
| @@ -548,7 +544,7 @@ the following form: | |||
| 548 | @noindent | 544 | @noindent |
| 549 | Within this format, any of the elements in braces may be omitted. | 545 | Within this format, any of the elements in braces may be omitted. |
| 550 | Here, @var{fontname} is the @dfn{family name} of the font, such as | 546 | Here, @var{fontname} is the @dfn{family name} of the font, such as |
| 551 | @samp{Monospace} or @samp{DejaVu Serif}; @var{fontsize} is the | 547 | @samp{Monospace} or @samp{DejaVu Sans Mono}; @var{fontsize} is the |
| 552 | @dfn{point size} of the font (one @dfn{printer's point} is about 1/72 | 548 | @dfn{point size} of the font (one @dfn{printer's point} is about 1/72 |
| 553 | of an inch); and the @samp{@var{name}=@var{values}} entries specify | 549 | of an inch); and the @samp{@var{name}=@var{values}} entries specify |
| 554 | settings such as the slant and weight of the font. Each @var{values} | 550 | settings such as the slant and weight of the font. Each @var{values} |
| @@ -561,7 +557,7 @@ Here is a list of common font properties: | |||
| 561 | 557 | ||
| 562 | @table @samp | 558 | @table @samp |
| 563 | @item slant | 559 | @item slant |
| 564 | One of @samp{italic}, @samp{oblique} or @samp{roman}. | 560 | One of @samp{italic}, @samp{oblique}, or @samp{roman}. |
| 565 | 561 | ||
| 566 | @item weight | 562 | @item weight |
| 567 | One of @samp{light}, @samp{medium}, @samp{demibold}, @samp{bold} or | 563 | One of @samp{light}, @samp{medium}, @samp{demibold}, @samp{bold} or |
| @@ -595,8 +591,9 @@ For a more detailed description of Fontconfig patterns, see the | |||
| 595 | Fontconfig manual, which is distributed with Fontconfig and available | 591 | Fontconfig manual, which is distributed with Fontconfig and available |
| 596 | online at @url{http://fontconfig.org/fontconfig-user.html}. | 592 | online at @url{http://fontconfig.org/fontconfig-user.html}. |
| 597 | 593 | ||
| 598 | The second way to specify a font is to use a @dfn{GTK font | 594 | @cindex GTK font pattern |
| 599 | description}. These have the syntax | 595 | The second way to specify a font is to use a @dfn{GTK font pattern}. |
| 596 | These have the syntax | ||
| 600 | 597 | ||
| 601 | @smallexample | 598 | @smallexample |
| 602 | @var{fontname} [@var{properties}] [@var{fontsize}] | 599 | @var{fontname} [@var{properties}] [@var{fontsize}] |
| @@ -605,20 +602,24 @@ description}. These have the syntax | |||
| 605 | @noindent | 602 | @noindent |
| 606 | where @var{fontname} is the family name, @var{properties} is a list of | 603 | where @var{fontname} is the family name, @var{properties} is a list of |
| 607 | property values separated by spaces, and @var{fontsize} is the point | 604 | property values separated by spaces, and @var{fontsize} is the point |
| 608 | size. The properties that you may specify are as follows: | 605 | size. The properties that you may specify for GTK font patterns are |
| 606 | as follows: | ||
| 609 | 607 | ||
| 610 | @table @samp | 608 | @itemize |
| 611 | @item style | 609 | @item |
| 612 | One of @samp{roman}, @samp{italic} or @samp{oblique}. If omitted, the | 610 | Slant properties: @samp{Italic} or @samp{Oblique}. If omitted, the |
| 613 | @samp{roman} style is used. | 611 | default (roman) slant is implied. |
| 614 | @item weight | 612 | @item |
| 615 | One of @samp{medium}, @samp{ultra-light}, @samp{light}, | 613 | Weight properties: @samp{Bold}, @samp{Book}, @samp{Light}, |
| 616 | @samp{semi-bold}, or @samp{bold}. If omitted, @samp{medium} weight is | 614 | @samp{Medium}, @samp{Semi-bold}, or @samp{Ultra-light}. If omitted, |
| 617 | used. | 615 | @samp{Medium} weight is implied. |
| 618 | @end table | 616 | @item |
| 617 | Width properties: @samp{Semi-Condensed} or @samp{Condensed}. If | ||
| 618 | omitted, a default width is used. | ||
| 619 | @end itemize | ||
| 619 | 620 | ||
| 620 | @noindent | 621 | @noindent |
| 621 | Here are some examples of GTK font descriptions: | 622 | Here are some examples of GTK font patterns: |
| 622 | 623 | ||
| 623 | @smallexample | 624 | @smallexample |
| 624 | Monospace 12 | 625 | Monospace 12 |
| @@ -657,7 +658,7 @@ The entries have the following meanings: | |||
| 657 | @item maker | 658 | @item maker |
| 658 | The name of the font manufacturer. | 659 | The name of the font manufacturer. |
| 659 | @item family | 660 | @item family |
| 660 | The name of the font family (e.g. @samp{courier}). | 661 | The name of the font family (e.g.@: @samp{courier}). |
| 661 | @item weight | 662 | @item weight |
| 662 | The font weight---normally either @samp{bold}, @samp{medium} or | 663 | The font weight---normally either @samp{bold}, @samp{medium} or |
| 663 | @samp{light}. Some font names support other values. | 664 | @samp{light}. Some font names support other values. |
| @@ -670,8 +671,8 @@ The font width---normally @samp{normal}, @samp{condensed}, | |||
| 670 | @samp{extended}, or @samp{semicondensed} (some font names support | 671 | @samp{extended}, or @samp{semicondensed} (some font names support |
| 671 | other values). | 672 | other values). |
| 672 | @item style | 673 | @item style |
| 673 | An optional additional style name. Usually it is empty---most long | 674 | An optional additional style name. Usually it is empty---most XLFDs |
| 674 | font names have two hyphens in a row at this point. | 675 | have two hyphens in a row at this point. |
| 675 | @item pixels | 676 | @item pixels |
| 676 | The font height, in pixels. | 677 | The font height, in pixels. |
| 677 | @item height | 678 | @item height |
| @@ -840,116 +841,40 @@ input stream for each server. Each server also has its own selected | |||
| 840 | frame. The commands you enter with a particular X server apply to | 841 | frame. The commands you enter with a particular X server apply to |
| 841 | that server's selected frame. | 842 | that server's selected frame. |
| 842 | 843 | ||
| 843 | It is even possible to use this feature to let two or more users | 844 | @node Frame Parameters |
| 844 | type simultaneously on the two displays, within the same Emacs job. | 845 | @section Frame Parameters |
| 845 | In practice, however, the different users can easily interfere with | 846 | @cindex default-frame-alist |
| 846 | each others' edits if they are not careful. | ||
| 847 | |||
| 848 | @node Special Buffer Frames | ||
| 849 | @section Special Buffer Frames | ||
| 850 | |||
| 851 | @vindex special-display-buffer-names | ||
| 852 | You can make certain chosen buffers, which Emacs normally displays | ||
| 853 | in ``some other window'' (@pxref{Displaying Buffers}), appear in | ||
| 854 | special frames of their own. To do this, set the variable | ||
| 855 | @code{special-display-buffer-names} to a list of buffer names; any | ||
| 856 | buffer whose name is in that list automatically gets a special frame. | ||
| 857 | @xref{Window Choice}, for how this fits in with the other ways for | ||
| 858 | Emacs to choose a window to display in. | ||
| 859 | |||
| 860 | For example, if you set the variable this way, | ||
| 861 | 847 | ||
| 862 | @example | 848 | You can control the default appearance and behavior of all frames by |
| 863 | (setq special-display-buffer-names | 849 | specifying a default list of @dfn{frame parameters} in the variable |
| 864 | '("*Completions*" "*grep*" "*tex-shell*")) | 850 | @code{default-frame-alist}. Its value should be a list of entries, |
| 865 | @end example | 851 | each specifying a parameter name and a value for that parameter. |
| 852 | These entries take effect whenever Emacs creates a new frame, | ||
| 853 | including the initial frame. | ||
| 866 | 854 | ||
| 867 | @noindent | 855 | @cindex frame size, specifying default |
| 868 | then completion lists, @code{grep} output and the @TeX{} mode shell | 856 | For example, you can add the following lines to your init file |
| 869 | buffer get individual frames of their own. These frames, and the | 857 | (@pxref{Init File}) to set the default frame width to 90 character |
| 870 | windows in them, are never automatically split or reused for any other | 858 | columns, the default frame height to 40 character rows, and the |
| 871 | buffers. They continue to show the buffers they were created for, | 859 | default font to @samp{Monospace-10}: |
| 872 | unless you alter them by hand. Killing the special buffer deletes its | ||
| 873 | frame automatically. | ||
| 874 | |||
| 875 | @vindex special-display-regexps | ||
| 876 | More generally, you can set @code{special-display-regexps} to a list | ||
| 877 | of regular expressions; then a buffer gets its own frame if its name | ||
| 878 | matches any of those regular expressions. (Once again, this applies only | ||
| 879 | to buffers that normally get displayed for you in ``another window.'') | ||
| 880 | |||
| 881 | @vindex special-display-frame-alist | ||
| 882 | The variable @code{special-display-frame-alist} specifies the frame | ||
| 883 | parameters for these frames. It has a default value, so you don't need | ||
| 884 | to set it. | ||
| 885 | |||
| 886 | For those who know Lisp, an element of | ||
| 887 | @code{special-display-buffer-names} or @code{special-display-regexps} | ||
| 888 | can also be a list. Then the first element is the buffer name or | ||
| 889 | regular expression; the rest of the list specifies how to create the | ||
| 890 | frame. It can be an association list specifying frame parameter | ||
| 891 | values; these values take precedence over parameter values specified | ||
| 892 | in @code{special-display-frame-alist}. If you specify the symbol | ||
| 893 | @code{same-window} as a ``frame parameter'' in this list, with a | ||
| 894 | non-@code{nil} value, that means to use the selected window if | ||
| 895 | possible. If you use the symbol @code{same-frame} as a ``frame | ||
| 896 | parameter'' in this list, with a non-@code{nil} value, that means to | ||
| 897 | use the selected frame if possible. | ||
| 898 | |||
| 899 | Alternatively, the value can have this form: | ||
| 900 | 860 | ||
| 901 | @example | 861 | @example |
| 902 | (@var{function} @var{args}...) | 862 | (add-to-list 'default-frame-alist '(width . 90)) |
| 863 | (add-to-list 'default-frame-alist '(height . 40)) | ||
| 864 | (add-to-list 'default-frame-alist '(font . "Monospace-10")) | ||
| 903 | @end example | 865 | @end example |
| 904 | 866 | ||
| 905 | @noindent | 867 | For a list of frame parameters and their effects, see @ref{Frame |
| 906 | where @var{function} is a symbol. Then the frame is constructed by | 868 | Parameters,,, elisp, The Emacs Lisp Reference Manual}. |
| 907 | calling @var{function}; its first argument is the buffer, and its | ||
| 908 | remaining arguments are @var{args}. | ||
| 909 | |||
| 910 | @node Frame Parameters | ||
| 911 | @section Setting Frame Parameters | ||
| 912 | @cindex Auto-Raise mode | ||
| 913 | @cindex Auto-Lower mode | ||
| 914 | |||
| 915 | These commands are available for controlling the window management | ||
| 916 | behavior of the selected frame: | ||
| 917 | 869 | ||
| 918 | @table @kbd | 870 | @cindex initial-frame-alist |
| 919 | @findex auto-raise-mode | 871 | You can also specify a list of frame parameters which apply to just |
| 920 | @item M-x auto-raise-mode | 872 | the initial frame, by customizing the variable |
| 921 | Toggle whether or not the selected frame should auto-raise. Auto-raise | 873 | @code{initial-frame-alist}. |
| 922 | means that every time you move the mouse onto the frame, it raises the | ||
| 923 | frame. | ||
| 924 | |||
| 925 | Some window managers also implement auto-raise. If you enable | ||
| 926 | auto-raise for Emacs frames in your window manager, it will work, but | ||
| 927 | it is beyond Emacs' control, so @code{auto-raise-mode} has no effect | ||
| 928 | on it. | ||
| 929 | |||
| 930 | @findex auto-lower-mode | ||
| 931 | @item M-x auto-lower-mode | ||
| 932 | Toggle whether or not the selected frame should auto-lower. | ||
| 933 | Auto-lower means that every time you move the mouse off the frame, | ||
| 934 | the frame moves to the bottom of the stack on the screen. | ||
| 935 | |||
| 936 | The command @code{auto-lower-mode} has no effect on auto-lower | ||
| 937 | implemented by the window manager. To control that, you must use the | ||
| 938 | appropriate window manager features. | ||
| 939 | @end table | ||
| 940 | 874 | ||
| 941 | In Emacs versions that use an X toolkit, the color-setting and | 875 | If Emacs is compiled to use an X toolkit, frame parameters that |
| 942 | font-setting functions don't affect menus and the menu bar, since they | 876 | specify colors and fonts don't affect menus and the menu bar, since |
| 943 | are displayed by their own widget classes. To change the appearance of | 877 | those are drawn by the toolkit and not directly by Emacs. |
| 944 | the menus and menu bar, you must use X resources (@pxref{Resources}). | ||
| 945 | @xref{Colors}, regarding colors. @xref{Font X}, regarding choice of | ||
| 946 | font. | ||
| 947 | |||
| 948 | Colors, fonts, and other attributes of the frame's display can also | ||
| 949 | be customized by setting frame parameters in the variable | ||
| 950 | @code{default-frame-alist} (@pxref{Creating Frames}). For a detailed | ||
| 951 | description of frame parameters and customization, see @ref{Frame | ||
| 952 | Parameters,,, elisp, The Emacs Lisp Reference Manual}. | ||
| 953 | 878 | ||
| 954 | @node Scroll Bars | 879 | @node Scroll Bars |
| 955 | @section Scroll Bars | 880 | @section Scroll Bars |
| @@ -994,41 +919,17 @@ or disable the scroll bars (@pxref{Resources}). To control the scroll | |||
| 994 | bar width, change the @code{scroll-bar-width} frame parameter | 919 | bar width, change the @code{scroll-bar-width} frame parameter |
| 995 | (@pxref{Frame Parameters,,, elisp, The Emacs Lisp Reference Manual}). | 920 | (@pxref{Frame Parameters,,, elisp, The Emacs Lisp Reference Manual}). |
| 996 | 921 | ||
| 997 | @node Wheeled Mice | ||
| 998 | @section Scrolling With ``Wheeled'' Mice | ||
| 999 | |||
| 1000 | @cindex mouse wheel | ||
| 1001 | @cindex wheel, mouse | ||
| 1002 | @findex mouse-wheel-mode | ||
| 1003 | @cindex Mouse Wheel minor mode | ||
| 1004 | @cindex mode, Mouse Wheel | ||
| 1005 | Some mice have a ``wheel'' instead of a third button. You can | ||
| 1006 | usually click the wheel to act as either @kbd{Mouse-2} or | ||
| 1007 | @kbd{Mouse-3}, depending on the setup. You can also use the wheel to | ||
| 1008 | scroll windows instead of using the scroll bar or keyboard commands. | ||
| 1009 | Mouse wheel support only works if the system generates appropriate | ||
| 1010 | events; whenever possible, it is turned on by default. To toggle this | ||
| 1011 | feature, use @kbd{M-x mouse-wheel-mode}. | ||
| 1012 | |||
| 1013 | @vindex mouse-wheel-follow-mouse | ||
| 1014 | @vindex mouse-wheel-scroll-amount | ||
| 1015 | @vindex mouse-wheel-progressive-speed | ||
| 1016 | The two variables @code{mouse-wheel-follow-mouse} and | ||
| 1017 | @code{mouse-wheel-scroll-amount} determine where and by how much | ||
| 1018 | buffers are scrolled. The variable | ||
| 1019 | @code{mouse-wheel-progressive-speed} determines whether the scroll | ||
| 1020 | speed is linked to how fast you move the wheel. | ||
| 1021 | |||
| 1022 | @node Drag and Drop | 922 | @node Drag and Drop |
| 1023 | @section Drag and Drop | 923 | @section Drag and Drop |
| 1024 | @cindex drag and drop | 924 | @cindex drag and drop |
| 1025 | 925 | ||
| 1026 | Emacs supports @dfn{drag and drop} using the mouse. For instance, | 926 | In most graphical desktop environments, Emacs has basic support for |
| 1027 | dropping text onto an Emacs frame inserts the text where it is dropped. | 927 | @dfn{drag and drop} operations. For instance, dropping text onto an |
| 1028 | Dropping a file onto an Emacs frame visits that file. As a special | 928 | Emacs frame inserts the text where it is dropped. Dropping a file |
| 1029 | case, dropping the file on a Dired buffer moves or copies the file | 929 | onto an Emacs frame visits that file. As a special case, dropping the |
| 1030 | (according to the conventions of the application it came from) into the | 930 | file on a Dired buffer moves or copies the file (according to the |
| 1031 | directory displayed in that buffer. | 931 | conventions of the application it came from) into the directory |
| 932 | displayed in that buffer. | ||
| 1032 | 933 | ||
| 1033 | @vindex dnd-open-file-other-window | 934 | @vindex dnd-open-file-other-window |
| 1034 | Dropping a file normally visits it in the window you drop it on. If | 935 | Dropping a file normally visits it in the window you drop it on. If |
| @@ -1045,13 +946,12 @@ protocol, are currently supported. | |||
| 1045 | @findex menu-bar-mode | 946 | @findex menu-bar-mode |
| 1046 | @vindex menu-bar-mode | 947 | @vindex menu-bar-mode |
| 1047 | 948 | ||
| 1048 | You can turn display of menu bars on or off with @kbd{M-x | 949 | You can toggle the use of menu bars with @kbd{M-x menu-bar-mode}. |
| 1049 | menu-bar-mode} or by customizing the variable @code{menu-bar-mode}. | 950 | With no argument, this command toggles Menu Bar mode, a global minor |
| 1050 | With no argument, this command toggles Menu Bar mode, a | 951 | mode. With an argument, the command turns Menu Bar mode on if the |
| 1051 | minor mode. With an argument, the command turns Menu Bar mode on if the | 952 | argument is positive, off if the argument is not positive. To control |
| 1052 | argument is positive, off if the argument is not positive. You can use | 953 | the use of menu bars at startup, customize the variable |
| 1053 | the X resource @samp{menuBar} to control the initial setting of | 954 | @code{menu-bar-mode}. |
| 1054 | Menu Bar mode. @xref{Resources}. | ||
| 1055 | 955 | ||
| 1056 | @kindex C-Mouse-3 @r{(when menu bar is disabled)} | 956 | @kindex C-Mouse-3 @r{(when menu bar is disabled)} |
| 1057 | Expert users often turn off the menu bar, especially on text-only | 957 | Expert users often turn off the menu bar, especially on text-only |
| @@ -1135,47 +1035,39 @@ toggle to be activated by default, change the variable | |||
| 1135 | help text to the GTK+ file chooser dialog; to disable this help text, | 1035 | help text to the GTK+ file chooser dialog; to disable this help text, |
| 1136 | change the variable @code{x-gtk-file-dialog-help-text} to @code{nil}. | 1036 | change the variable @code{x-gtk-file-dialog-help-text} to @code{nil}. |
| 1137 | 1037 | ||
| 1138 | @vindex x-gtk-use-old-file-dialog | ||
| 1139 | In GTK+ versions 2.4 through 2.10, you can choose to use an older | ||
| 1140 | version of the GTK+ file dialog by setting the variable | ||
| 1141 | @code{x-gtk-use-old-file-dialog} to a non-@code{nil} value. If Emacs | ||
| 1142 | is built with a GTK+ version that has only one file dialog, this | ||
| 1143 | variable has no effect. | ||
| 1144 | |||
| 1145 | @node Tooltips | 1038 | @node Tooltips |
| 1146 | @section Tooltips | 1039 | @section Tooltips |
| 1147 | @cindex tooltips | 1040 | @cindex tooltips |
| 1148 | 1041 | ||
| 1149 | @dfn{Tooltips} are small windows that display text information at the | 1042 | @dfn{Tooltips} are small windows that display text information at |
| 1150 | current mouse position. They activate when there is a pause in mouse | 1043 | the current mouse position. They activate when there is a pause in |
| 1151 | movement. There are two types of tooltip: help tooltips and GUD | 1044 | mouse movement over some significant piece of text in a window, or the |
| 1152 | tooltips. | 1045 | mode line, or some other part of the Emacs frame such as a tool bar |
| 1153 | 1046 | button or menu item. | |
| 1154 | @dfn{Help tooltips} typically display over text---including the mode | ||
| 1155 | line---but are also available for other parts of the Emacs frame, such | ||
| 1156 | as the tool bar and menu items. | ||
| 1157 | 1047 | ||
| 1158 | @findex tooltip-mode | 1048 | @findex tooltip-mode |
| 1159 | You can toggle display of help tooltips (Tooltip mode) with the | 1049 | You can toggle the use of tooltips with the command @kbd{M-x |
| 1160 | command @kbd{M-x tooltip-mode}. When Tooltip mode is disabled, the | 1050 | tooltip-mode}. When Tooltip mode is disabled, the help text is |
| 1161 | help text is displayed in the echo area instead. | 1051 | displayed in the echo area instead. To control the use of tooltips at |
| 1162 | 1052 | startup, customize the variable @code{tooltip-mode}. | |
| 1163 | @dfn{GUD tooltips} show values of variables. They are useful when | ||
| 1164 | you are debugging a program. @xref{Debugger Operation}. | ||
| 1165 | 1053 | ||
| 1166 | @vindex tooltip-delay | 1054 | @vindex tooltip-delay |
| 1167 | The variables @code{tooltip-delay} specifies how long Emacs should | 1055 | The variables @code{tooltip-delay} specifies how long Emacs should |
| 1168 | wait before displaying a tooltip. For additional customization | 1056 | wait before displaying a tooltip. For additional customization |
| 1169 | options for displaying tooltips, use @kbd{M-x customize-group | 1057 | options for displaying tooltips, use @kbd{M-x customize-group |
| 1170 | @key{RET} tooltip @key{RET}}. @xref{X Resources}, for information on | 1058 | @key{RET} tooltip @key{RET}}. |
| 1171 | customizing the windows that display tooltips. | ||
| 1172 | 1059 | ||
| 1173 | @vindex x-gtk-use-system-tooltips | 1060 | @vindex x-gtk-use-system-tooltips |
| 1174 | If Emacs is built with GTK+ support, it displays tooltips via GTK+, | 1061 | If Emacs is built with GTK+ support, it displays tooltips via GTK+, |
| 1175 | using the default appearance of GTK+ tooltips. To disable this, | 1062 | using the default appearance of GTK+ tooltips. To disable this, |
| 1176 | change the variable @code{x-gtk-use-system-tooltips} to @code{nil}. | 1063 | change the variable @code{x-gtk-use-system-tooltips} to @code{nil}. |
| 1177 | If you do this, or if Emacs is built without GTK+ support, the | 1064 | If you do this, or if Emacs is built without GTK+ support, most |
| 1178 | @code{tooltip} face specifies most attributes of the tooltip text. | 1065 | attributes of the tooltip text are specified by the @code{tooltip} |
| 1066 | face, and by X resources (@pxref{X Resources}). | ||
| 1067 | |||
| 1068 | @dfn{GUD tooltips} are special tooltips that show the values of | ||
| 1069 | variables when debugging a program with GUD. @xref{Debugger | ||
| 1070 | Operation}. | ||
| 1179 | 1071 | ||
| 1180 | @node Mouse Avoidance | 1072 | @node Mouse Avoidance |
| 1181 | @section Mouse Avoidance | 1073 | @section Mouse Avoidance |
| @@ -1248,23 +1140,31 @@ to select a frame according to its name. The name you specify appears | |||
| 1248 | in the mode line when the frame is selected. | 1140 | in the mode line when the frame is selected. |
| 1249 | 1141 | ||
| 1250 | @node Text-Only Mouse | 1142 | @node Text-Only Mouse |
| 1251 | @section Using a Mouse in Terminal Emulators | 1143 | @section Using a Mouse in Text-only Terminals |
| 1252 | @cindex mouse support | 1144 | @cindex mouse support |
| 1253 | @cindex terminal emulators, mouse support | 1145 | @cindex terminal emulators, mouse support |
| 1254 | 1146 | ||
| 1255 | Some text-only terminals support mouse clicks in the terminal window. | 1147 | Some text-only terminals support mouse clicks in the terminal window. |
| 1256 | 1148 | ||
| 1257 | @cindex xterm | 1149 | @cindex xterm |
| 1258 | In a terminal emulator which is compatible with @code{xterm}, | 1150 | In a terminal emulator which is compatible with @command{xterm}, you |
| 1259 | you can use @kbd{M-x xterm-mouse-mode} to give Emacs control over | 1151 | can use @kbd{M-x xterm-mouse-mode} to give Emacs control over simple |
| 1260 | simple use of the mouse---basically, only non-modified single clicks | 1152 | uses of the mouse---basically, only non-modified single clicks are |
| 1261 | are supported. The normal @code{xterm} mouse functionality for such | 1153 | supported. The normal @command{xterm} mouse functionality for such |
| 1262 | clicks is still available by holding down the @kbd{SHIFT} key when you | 1154 | clicks is still available by holding down the @kbd{SHIFT} key when you |
| 1263 | press the mouse button. Xterm Mouse mode is a global minor mode | 1155 | press the mouse button. Xterm Mouse mode is a global minor mode |
| 1264 | (@pxref{Minor Modes}). Repeating the command turns the mode off | 1156 | (@pxref{Minor Modes}). Repeating the command turns the mode off |
| 1265 | again. | 1157 | again. |
| 1266 | 1158 | ||
| 1267 | @findex gpm-mouse-mode | 1159 | @findex gpm-mouse-mode |
| 1268 | In the console on GNU/Linux, you can use @kbd{M-x gpm-mouse-mode} to | 1160 | In the console on GNU/Linux, you can use @kbd{M-x gpm-mouse-mode} to |
| 1269 | enable terminal mouse support. You must have the gpm package | 1161 | enable mouse support. You must have the gpm server installed and |
| 1270 | installed and running on your system in order for this to work. | 1162 | running on your system in order for this to work. |
| 1163 | |||
| 1164 | @iftex | ||
| 1165 | @pxref{MS-DOS Mouse,,,emacs-xtra,Specialized Emacs Features}, | ||
| 1166 | @end iftex | ||
| 1167 | @ifnottex | ||
| 1168 | @pxref{MS-DOS Mouse}, | ||
| 1169 | @end ifnottex | ||
| 1170 | for information about mouse support on MS-DOS. | ||
diff --git a/doc/emacs/glossary.texi b/doc/emacs/glossary.texi index e37e80bfab8..3af75245e69 100644 --- a/doc/emacs/glossary.texi +++ b/doc/emacs/glossary.texi | |||
| @@ -509,11 +509,6 @@ character sets and which font to use to display each of them. Fontsets | |||
| 509 | make it easy to change several fonts at once by specifying the name of a | 509 | make it easy to change several fonts at once by specifying the name of a |
| 510 | fontset, rather than changing each font separately. @xref{Fontsets}. | 510 | fontset, rather than changing each font separately. @xref{Fontsets}. |
| 511 | 511 | ||
| 512 | @item Formatted Text | ||
| 513 | Formatted text is text that displays with formatting information while | ||
| 514 | you edit. Formatting information includes fonts, colors, and specified | ||
| 515 | margins. @xref{Formatted Text}. | ||
| 516 | |||
| 517 | @item Formfeed Character | 512 | @item Formfeed Character |
| 518 | See `page.' | 513 | See `page.' |
| 519 | 514 | ||
| @@ -702,9 +697,8 @@ that someone else is already editing. | |||
| 702 | See `incremental search.' | 697 | See `incremental search.' |
| 703 | 698 | ||
| 704 | @item Justification | 699 | @item Justification |
| 705 | Justification means adding extra spaces within lines of text | 700 | Justification means adding extra spaces within lines of text in order |
| 706 | in order to adjust the position of the text edges. | 701 | to adjust the position of the text edges. @xref{Fill Commands}. |
| 707 | @xref{Format Justification}. | ||
| 708 | 702 | ||
| 709 | @item Key Binding | 703 | @item Key Binding |
| 710 | See `binding.' | 704 | See `binding.' |
| @@ -1362,12 +1356,6 @@ See `abbrev.' | |||
| 1362 | Word search is searching for a sequence of words, considering the | 1356 | Word search is searching for a sequence of words, considering the |
| 1363 | punctuation between them as insignificant. @xref{Word Search}. | 1357 | punctuation between them as insignificant. @xref{Word Search}. |
| 1364 | 1358 | ||
| 1365 | @item WYSIWYG | ||
| 1366 | WYSIWYG stands for ``What you see is what you get.'' Emacs generally | ||
| 1367 | provides WYSIWYG editing for files of characters; in Enriched mode | ||
| 1368 | (@pxref{Formatted Text}), it provides WYSIWYG editing for files that | ||
| 1369 | include text formatting information. | ||
| 1370 | |||
| 1371 | @item Yanking | 1359 | @item Yanking |
| 1372 | Yanking means reinserting text previously killed (q.v.@:). It can be | 1360 | Yanking means reinserting text previously killed (q.v.@:). It can be |
| 1373 | used to undo a mistaken kill, or for copying or moving text. Some | 1361 | used to undo a mistaken kill, or for copying or moving text. Some |
diff --git a/doc/emacs/indent.texi b/doc/emacs/indent.texi index e13b2808f09..f99e3519710 100644 --- a/doc/emacs/indent.texi +++ b/doc/emacs/indent.texi | |||
| @@ -8,214 +8,154 @@ | |||
| 8 | @cindex tabs | 8 | @cindex tabs |
| 9 | @cindex columns (indentation) | 9 | @cindex columns (indentation) |
| 10 | 10 | ||
| 11 | This chapter describes the Emacs commands that add, remove, or | 11 | @cindex whitespace character |
| 12 | adjust indentation. | 12 | @dfn{Indentation} refers to inserting or adjusting @dfn{whitespace |
| 13 | 13 | characters} (space and/or tab characters) at the beginning of a line | |
| 14 | @table @kbd | 14 | of text. This chapter documents indentation commands and options |
| 15 | @item @key{TAB} | 15 | which are common to Text mode and related modes, as well as |
| 16 | Indent the current line appropriately, in a mode-dependent fashion. | 16 | programming language modes. @xref{Program Indent}, for additional |
| 17 | @item @kbd{C-j} | 17 | documentation about indenting in programming modes. |
| 18 | Perform @key{RET} followed by @key{TAB} (@code{newline-and-indent}). | 18 | |
| 19 | @item M-^ | 19 | @findex indent-for-tab-command |
| 20 | Merge the previous and the current line (@code{delete-indentation}). | 20 | @kindex TAB @r{(indentation)} |
| 21 | This would cancel the effect of a preceding @kbd{C-j}. | 21 | The simplest way to perform indentation is the @key{TAB} key. In |
| 22 | @item C-M-o | 22 | most major modes, this runs the command @code{indent-for-tab-command}. |
| 23 | Split the current line at point; text on the line after point becomes a | 23 | (In C and related modes, @key{TAB} runs the command |
| 24 | new line indented to the same column where point is located | 24 | @code{c-indent-line-or-region}, which behaves similarly). |
| 25 | (@code{split-line}). | 25 | |
| 26 | @item M-m | 26 | @table @key |
| 27 | Move (forward or back) to the first nonblank character on the current | 27 | @item TAB |
| 28 | line (@code{back-to-indentation}). | 28 | Insert whitespace, or indent the current line, in a mode-appropriate |
| 29 | @item C-M-\ | 29 | way (@code{indent-for-tab-command}). If the region is active, indent |
| 30 | Indent lines in the region to the same column (@code{indent-region}). | 30 | all the lines within it. |
| 31 | @item C-x @key{TAB} | ||
| 32 | Shift lines in the region rigidly right or left (@code{indent-rigidly}). | ||
| 33 | @item M-i | ||
| 34 | Indent from point to the next prespecified tab stop column | ||
| 35 | (@code{tab-to-tab-stop}). | ||
| 36 | @item M-x indent-relative | ||
| 37 | Indent from point to under an indentation point in the previous line. | ||
| 38 | @end table | 31 | @end table |
| 39 | 32 | ||
| 40 | @noindent | 33 | The exact behavior of @key{TAB} depends on the major mode. In Text |
| 41 | The @key{TAB} key runs @code{indent-for-tab-command} in most major | 34 | mode and related major modes, @key{TAB} normally inserts some |
| 42 | modes (in C and related modes, @key{TAB} runs a separate command, | 35 | combination of space and tab characters to advance point to the next |
| 43 | @code{c-indent-line-or-region}, which behaves similarly). The major | 36 | tab stop (@pxref{Tab Stops}). For this purpose, the position of the |
| 44 | mode determines just what this entails. | 37 | first non-whitespace character on the preceding line is treated as an |
| 45 | 38 | additional tab stop, so you can use @key{TAB} to ``align'' point with | |
| 46 | In text modes, @key{TAB} inserts some combination of space and tab | 39 | the preceding line. If the region is active (@pxref{Using Region}), |
| 47 | characters to advance point to the next tab stop (@pxref{Tab Stops}). | 40 | @key{TAB} acts specially: it indents each line in the region so that |
| 48 | If the region is active and spans multiple lines, it advances the | 41 | its first non-whitespace character is aligned with the preceding line. |
| 49 | first character of each of those lines to the next tab stop | 42 | |
| 50 | (@pxref{Using Region}). For the purposes of this command, the | 43 | In programming modes, @key{TAB} indents the current line of code in |
| 51 | position of the first non-whitespace character on the preceding line | 44 | a way that makes sense given the code in the preceding lines. If the |
| 52 | is treated as an additional tab stop. Thus, you can use @key{TAB} to | 45 | region is active, all the lines in the region are indented this way. |
| 53 | ``align'' point with the preceding line. | 46 | If point was initially within the current line's indentation, it is |
| 54 | 47 | repositioned to the first non-whitespace character on the line. | |
| 55 | In programming modes, @key{TAB} adds or removes some combination of | ||
| 56 | space and tab characters at the start of the line, in a way that makes | ||
| 57 | sense given the text in the preceding lines. If the region is active | ||
| 58 | and spans multiple lines, all those lines are indented this way. If | ||
| 59 | point was initially within the current line's indentation, it is | ||
| 60 | positioned after that indentation; otherwise, it remains at same point | ||
| 61 | in the newly-indented text. @xref{Program Indent}. | ||
| 62 | 48 | ||
| 63 | @vindex tab-width | 49 | If you just want to insert a tab character in the buffer, type |
| 64 | Normally, indentation commands insert (or remove) an optimal mix of | 50 | @kbd{C-q @key{TAB}} (@pxref{Inserting Text}). |
| 65 | @dfn{tab characters} and spaces to align to the desired column. Tab | ||
| 66 | characters (@acronym{ASCII} code 9) are displayed as a stretch of | ||
| 67 | empty space extending to the next @dfn{display tab stop}. By default, | ||
| 68 | there is one display tab stop every eight columns; the number of | ||
| 69 | columns is determined by the variable @code{tab-width}. You can | ||
| 70 | insert a single tab character by typing @kbd{C-q @key{TAB}}. | ||
| 71 | @xref{Text Display}. | ||
| 72 | 51 | ||
| 73 | @findex edit-tab-stops | 52 | @menu |
| 74 | @findex tab-to-tab-stop | 53 | * Indentation Commands:: More commands for performing indentation. |
| 75 | @kindex M-i | 54 | * Tab Stops:: Stop points for indentation in Text modes. |
| 76 | The command @kbd{M-i} (@code{tab-to-tab-stop}) adjusts the | 55 | * Just Spaces:: Using only space characters for indentation. |
| 77 | whitespace characters around point, inserting just enough whitespace | 56 | * Indent Convenience:: Optional indentation features. |
| 78 | to advance point up to the next tab stop. By default, this involves | 57 | @end menu |
| 79 | deleting the existing whitespace and inserting a single tab character. | ||
| 80 | 58 | ||
| 81 | @xref{Just Spaces}, for how to disable use of tabs. However, | 59 | @node Indentation Commands |
| 82 | @kbd{C-q @key{TAB}} always inserts a tab, even when tabs are disabled | 60 | @section Indentation Commands |
| 83 | for the indentation commands. | ||
| 84 | 61 | ||
| 85 | @vindex tab-always-indent | 62 | Apart from the @key{TAB} (@code{indent-for-tab-command}) command, |
| 86 | The variable @code{tab-always-indent} tweaks the behavior of the | 63 | Emacs provides a variety of commands to perform indentation in other |
| 87 | @key{TAB} (@code{indent-for-tab-command}) command. The default value, | 64 | ways. |
| 88 | @code{t}, gives the behavior described above. If you change the value | ||
| 89 | to the symbol @code{complete}, then @key{TAB} first tries to indent | ||
| 90 | the current line, and if the line was already indented, it tries to | ||
| 91 | complete the text at point (@pxref{Symbol Completion}). If the value | ||
| 92 | is @code{nil}, then @key{TAB} indents the current line only if point | ||
| 93 | is at the left margin or in the line's indentation; otherwise, it | ||
| 94 | inserts a real tab character. | ||
| 95 | 65 | ||
| 96 | @menu | 66 | @table @kbd |
| 97 | * Indentation Commands:: Various commands and techniques for indentation. | 67 | @item C-j |
| 98 | * Tab Stops:: You can set arbitrary "tab stops" and then | 68 | @kindex C-j |
| 99 | indent to the next tab stop when you want to. | 69 | @findex newline-and-indent |
| 100 | * Just Spaces:: You can request indentation using just spaces. | 70 | Perform @key{RET} followed by @key{TAB} (@code{newline-and-indent}). |
| 101 | @end menu | ||
| 102 | 71 | ||
| 103 | @node Indentation Commands, Tab Stops, Indentation, Indentation | 72 | @item C-M-o |
| 104 | @section Indentation Commands and Techniques | 73 | @kindex C-M-o |
| 74 | @findex split-line | ||
| 75 | Split the current line at point (@code{split-line}). The text on the | ||
| 76 | line after point becomes a new line, indented to the same column where | ||
| 77 | point is located. This command first moves point forward over any | ||
| 78 | spaces and tabs. Afterward, point is positioned before the inserted | ||
| 79 | newline. | ||
| 105 | 80 | ||
| 106 | @kindex M-m | 81 | @kindex M-m |
| 107 | @findex back-to-indentation | 82 | @findex back-to-indentation |
| 108 | To move over the indentation on a line, do @kbd{M-m} | 83 | @item M-m |
| 109 | (@code{back-to-indentation}). This command, given anywhere on a line, | 84 | Move (forward or back) to the first non-whitespace character on the |
| 110 | positions point at the first nonblank character on the line, if any, | 85 | current line (@code{back-to-indentation}). If there are no |
| 111 | or else at the end of the line. | 86 | non-whitespace characters on the line, move to the end of the line. |
| 112 | |||
| 113 | To insert an indented line before the current line, do @kbd{C-a C-o | ||
| 114 | @key{TAB}}. To make an indented line after the current line, use | ||
| 115 | @kbd{C-e C-j}. | ||
| 116 | 87 | ||
| 117 | If you just want to insert a tab character in the buffer, type | 88 | @item M-i |
| 118 | @kbd{C-q @key{TAB}}. | 89 | @kindex M-i |
| 90 | @findex tab-to-tab-stop | ||
| 91 | Indent whitespace at point, up to the next tab stop | ||
| 92 | (@code{tab-to-tab-stop}). @xref{Tab Stops}. | ||
| 119 | 93 | ||
| 120 | @kindex C-M-o | 94 | @findex indent-relative |
| 121 | @findex split-line | 95 | @item M-x indent-relative |
| 122 | @kbd{C-M-o} (@code{split-line}) moves the text from point to the end of | 96 | Insert whitespace at point, until point is aligned with the first |
| 123 | the line vertically down, so that the current line becomes two lines. | 97 | non-whitespace character on the previous line (actually, the last |
| 124 | @kbd{C-M-o} first moves point forward over any spaces and tabs. Then it | 98 | non-blank line). If point is already farther right than that, run |
| 125 | inserts after point a newline and enough indentation to reach the same | 99 | @code{tab-to-tab-stop} instead---unless called with a numeric |
| 126 | column point is on. Point remains before the inserted newline; in this | 100 | argument, in which case do nothing. |
| 127 | regard, @kbd{C-M-o} resembles @kbd{C-o}. | ||
| 128 | 101 | ||
| 102 | @item M-^ | ||
| 129 | @kindex M-^ | 103 | @kindex M-^ |
| 130 | @findex delete-indentation | 104 | @findex delete-indentation |
| 131 | To join two lines cleanly, use the @kbd{M-^} | 105 | Merge the previous and the current line (@code{delete-indentation}). |
| 132 | (@code{delete-indentation}) command. It deletes the indentation at | 106 | This ``joins'' the two lines cleanly, by replacing any indentation at |
| 133 | the front of the current line, and the line boundary as well, | 107 | the front of the current line, together with the line boundary, with a |
| 134 | replacing them with a single space. As a special case (useful for | 108 | single space. |
| 135 | Lisp code) the single space is omitted if the characters to be joined | 109 | |
| 136 | are consecutive open parentheses or closing parentheses, or if the | 110 | As a special case (useful for Lisp code), the single space is omitted |
| 137 | junction follows another newline. To delete just the indentation of a | 111 | if the characters to be joined are consecutive opening and closing |
| 138 | line, go to the beginning of the line and use @kbd{M-\} | 112 | parentheses, or if the junction follows another newline. |
| 139 | (@code{delete-horizontal-space}), which deletes all spaces and tabs | 113 | |
| 140 | around the cursor. | 114 | If there is a fill prefix, @kbd{M-^} deletes the fill prefix if it |
| 141 | |||
| 142 | If you have a fill prefix, @kbd{M-^} deletes the fill prefix if it | ||
| 143 | appears after the newline that is deleted. @xref{Fill Prefix}. | 115 | appears after the newline that is deleted. @xref{Fill Prefix}. |
| 144 | 116 | ||
| 117 | @item C-M-\ | ||
| 145 | @kindex C-M-\ | 118 | @kindex C-M-\ |
| 146 | @kindex C-x TAB | ||
| 147 | @findex indent-region | 119 | @findex indent-region |
| 148 | @findex indent-rigidly | 120 | Indent all the lines in the region, as though you had typed @key{TAB} |
| 149 | There are also commands for changing the indentation of several lines | 121 | at the beginning of each line (@code{indent-region}). |
| 150 | at once. They apply to all the lines that begin in the region. | ||
| 151 | @kbd{C-M-\} (@code{indent-region}) indents each line in the ``usual'' | ||
| 152 | way, as if you had typed @key{TAB} at the beginning of the line. A | ||
| 153 | numeric argument specifies the column to indent to, and each line is | ||
| 154 | shifted left or right so that its first nonblank character appears in | ||
| 155 | that column. @kbd{C-x @key{TAB}} (@code{indent-rigidly}) moves all of | ||
| 156 | the lines in the region right by its argument (left, for negative | ||
| 157 | arguments). The whole group of lines moves rigidly sideways, which is | ||
| 158 | how the command gets its name. | ||
| 159 | 122 | ||
| 123 | If a numeric argument is supplied, indent every line in the region to | ||
| 124 | that column number. | ||
| 125 | |||
| 126 | @item C-x @key{TAB} | ||
| 127 | @kindex C-x TAB | ||
| 128 | @findex indent-rigidly | ||
| 160 | @cindex remove indentation | 129 | @cindex remove indentation |
| 161 | To remove all indentation from all of the lines in the region, | 130 | Shift each line in the region by a fixed distance, to the right or |
| 162 | invoke @kbd{C-x @key{TAB}} with a large negative argument, such as | 131 | left (@code{indent-rigidly}). The distance to move is determined by |
| 163 | -1000. | 132 | the numeric argument (positive to move rightward, negative to move |
| 133 | leftward). | ||
| 134 | |||
| 135 | This command can be used to remove all indentation from the lines in | ||
| 136 | the region, by invoking it with a large negative argument, | ||
| 137 | e.g. @kbd{C-u -1000 C-x @key{TAB}}. | ||
| 138 | @end table | ||
| 164 | 139 | ||
| 165 | @findex indent-relative | 140 | @node Tab Stops |
| 166 | @kbd{M-x indent-relative} indents at point based on the previous line | ||
| 167 | (actually, the last nonempty line). It inserts whitespace at point, moving | ||
| 168 | point, until it is underneath the next indentation point in the previous line. | ||
| 169 | An indentation point is the end of a sequence of whitespace or the end of | ||
| 170 | the line. If point is farther right than any indentation point in the | ||
| 171 | previous line, @code{indent-relative} runs @code{tab-to-tab-stop} | ||
| 172 | @ifnottex | ||
| 173 | (@pxref{Tab Stops}), | ||
| 174 | @end ifnottex | ||
| 175 | @iftex | ||
| 176 | (see next section), | ||
| 177 | @end iftex | ||
| 178 | unless it is called with a numeric argument, in which case it does | ||
| 179 | nothing. | ||
| 180 | |||
| 181 | @xref{Format Indentation}, for another way of specifying the | ||
| 182 | indentation for part of your text. | ||
| 183 | |||
| 184 | @node Tab Stops, Just Spaces, Indentation Commands, Indentation | ||
| 185 | @section Tab Stops | 141 | @section Tab Stops |
| 186 | |||
| 187 | @cindex tab stops | 142 | @cindex tab stops |
| 188 | @cindex using tab stops in making tables | 143 | |
| 189 | @cindex tables, indentation for | 144 | @vindex tab-stop-list |
| 190 | @kindex M-i | 145 | Emacs defines certain column numbers to be @dfn{tab stops}. These |
| 191 | @findex tab-to-tab-stop | 146 | are used as stopping points by @key{TAB} when inserting whitespace in |
| 192 | For typing in tables, you can use @kbd{M-i} (@code{tab-to-tab-stop}). | 147 | Text mode and related modes (@pxref{Indentation}), and by commands |
| 193 | This command inserts indentation before point, enough to reach the | 148 | like @kbd{M-i} (@pxref{Indentation Commands}). By default, tab stops |
| 194 | next tab stop column. | 149 | are located every 8 columns. These positions are stored in the |
| 150 | variable @code{tab-stop-list}, whose value is a list of column numbers | ||
| 151 | in increasing order. | ||
| 195 | 152 | ||
| 196 | @findex edit-tab-stops | 153 | @findex edit-tab-stops |
| 197 | @findex edit-tab-stops-note-changes | ||
| 198 | @kindex C-c C-c @r{(Edit Tab Stops)} | 154 | @kindex C-c C-c @r{(Edit Tab Stops)} |
| 199 | @vindex tab-stop-list | 155 | Instead of customizing the variable @code{tab-stop-list} directly, a |
| 200 | You can change the tab stops used by @kbd{M-i} and other indentation | 156 | convenient way to view and set tab stops is via the command @kbd{M-x |
| 201 | commands, so that they need not be spaced every eight characters, or | 157 | edit-tab-stops}. This switches to a buffer containing a description |
| 202 | even regularly spaced. The tab stops are stored in the variable | 158 | of the tab stop settings, which looks like this: |
| 203 | @code{tab-stop-list}, as a list of column numbers in increasing order. | ||
| 204 | |||
| 205 | A convenient way to set the tab stops is with @kbd{M-x | ||
| 206 | edit-tab-stops}, which creates and selects a buffer containing a | ||
| 207 | description of the tab stop settings. You can edit this buffer to | ||
| 208 | specify different tab stops, and then type @kbd{C-c C-c} to make those | ||
| 209 | new tab stops take effect. The buffer uses Overwrite mode | ||
| 210 | (@pxref{Minor Modes}). @code{edit-tab-stops} records which buffer was | ||
| 211 | current when you invoked it, and stores the tab stops back in that | ||
| 212 | buffer; normally all buffers share the same tab stops and changing | ||
| 213 | them in one buffer affects all, but if you happen to make | ||
| 214 | @code{tab-stop-list} local in one buffer then @code{edit-tab-stops} in | ||
| 215 | that buffer will edit the local settings. | ||
| 216 | |||
| 217 | Here is what the text representing the tab stops looks like for ordinary | ||
| 218 | tab stops every eight columns. | ||
| 219 | 159 | ||
| 220 | @example | 160 | @example |
| 221 | : : : : : : | 161 | : : : : : : |
| @@ -224,37 +164,77 @@ tab stops every eight columns. | |||
| 224 | To install changes, type C-c C-c | 164 | To install changes, type C-c C-c |
| 225 | @end example | 165 | @end example |
| 226 | 166 | ||
| 227 | The first line contains a colon at each tab stop. The remaining lines | 167 | @noindent |
| 228 | are present just to help you see where the colons are and know what to do. | 168 | The first line contains a colon at each tab stop. The numbers on the |
| 169 | next two lines are present just to indicate where the colons are. | ||
| 170 | |||
| 171 | You can edit this buffer to specify different tab stops by placing | ||
| 172 | colons on the desired columns. The buffer uses Overwrite mode | ||
| 173 | (@pxref{Minor Modes}). When you are done, type @kbd{C-c C-c} to make | ||
| 174 | the new tab stops take effect. Normally, the new tab stop settings | ||
| 175 | apply to all buffers. However, if you have made the | ||
| 176 | @code{tab-stop-list} variable local to the buffer where you called | ||
| 177 | @kbd{M-x edit-tab-stops} (@pxref{Locals}), then the new tab stop | ||
| 178 | settings apply only to that buffer. To save the tab stop settings for | ||
| 179 | future Emacs sessions, use the Customize interface to save the value | ||
| 180 | of @code{tab-stop-list} (@pxref{Easy Customization}). | ||
| 181 | |||
| 182 | Note that the tab stops discussed in this section have nothing to do | ||
| 183 | with how tab characters are displayed in the buffer. Tab characters | ||
| 184 | are always displayed as empty spaces extending to the next | ||
| 185 | @dfn{display tab stop}. @xref{Text Display}. | ||
| 186 | |||
| 187 | @node Just Spaces | ||
| 188 | @section Tabs vs. Spaces | ||
| 229 | 189 | ||
| 230 | Note that the tab stops that control @code{tab-to-tab-stop} have | 190 | @vindex tab-width |
| 231 | nothing to do with how tab characters are displayed in the buffer. | 191 | Normally, indentation commands insert (or remove) an optimal mix of |
| 232 | Tab characters are always displayed as empty spaces extending to the | 192 | space characters and tab characters to align to the desired column. |
| 233 | next display tab stop, which occurs every @code{tab-width} columns | 193 | Tab characters are displayed as a stretch of empty space extending to |
| 234 | regardless of the contents of @code{tab-stop-list}. @xref{Text | 194 | the next @dfn{display tab stop}. By default, there is one display tab |
| 195 | stop every @code{tab-width} columns (the default is 8). @xref{Text | ||
| 235 | Display}. | 196 | Display}. |
| 236 | 197 | ||
| 237 | @node Just Spaces,, Tab Stops, Indentation | ||
| 238 | @section Tabs vs. Spaces | ||
| 239 | |||
| 240 | @vindex indent-tabs-mode | 198 | @vindex indent-tabs-mode |
| 241 | Emacs normally uses both tabs and spaces to indent lines. If you | 199 | If you prefer, all indentation can be made from spaces only. To |
| 242 | prefer, all indentation can be made from spaces only. To request | 200 | request this, set the buffer-local variable @code{indent-tabs-mode} to |
| 243 | this, set @code{indent-tabs-mode} to @code{nil}. This is a per-buffer | 201 | @code{nil}. @xref{Locals}, for information about setting buffer-local |
| 244 | variable, so altering the variable affects only the current buffer, | 202 | variables. Note, however, that @kbd{C-q @key{TAB}} always inserts a |
| 245 | but there is a default value which you can change as well. | 203 | tab character, regardless of the value of @code{indent-tabs-mode}. |
| 246 | @xref{Locals}. | 204 | |
| 247 | 205 | One reason to set @code{indent-tabs-mode} to @code{nil} is that not | |
| 248 | A tab is not always displayed in the same way. By default, tabs are | 206 | all editors display tab characters in the same way. Emacs users, too, |
| 249 | eight columns wide, but some people like to customize their editors to | 207 | may have different customized values of @code{tab-width}. By using |
| 250 | use a different tab width (e.g., by changing the variable | 208 | spaces only, you can make sure that your file always looks the same. |
| 251 | @code{tab-width} in Emacs). By using spaces only, you can make sure | 209 | If you only care about how it looks within Emacs, another way to |
| 252 | that your file looks the same regardless of the tab width setting. | 210 | tackle this problem is to set the @code{tab-width} variable in a |
| 211 | file-local variable (@pxref{File Variables}). | ||
| 253 | 212 | ||
| 254 | @findex tabify | 213 | @findex tabify |
| 255 | @findex untabify | 214 | @findex untabify |
| 256 | There are also commands to convert tabs to spaces or vice versa, always | 215 | There are also commands to convert tabs to spaces or vice versa, always |
| 257 | preserving the columns of all nonblank text. @kbd{M-x tabify} scans the | 216 | preserving the columns of all non-whitespace text. @kbd{M-x tabify} scans the |
| 258 | region for sequences of spaces, and converts sequences of at least two | 217 | region for sequences of spaces, and converts sequences of at least two |
| 259 | spaces to tabs if that can be done without changing indentation. @kbd{M-x | 218 | spaces to tabs if that can be done without changing indentation. @kbd{M-x |
| 260 | untabify} changes all tabs in the region to appropriate numbers of spaces. | 219 | untabify} changes all tabs in the region to appropriate numbers of spaces. |
| 220 | |||
| 221 | @node Indent Convenience | ||
| 222 | @section Convenience Features for Indentation | ||
| 223 | |||
| 224 | @vindex tab-always-indent | ||
| 225 | The variable @code{tab-always-indent} tweaks the behavior of the | ||
| 226 | @key{TAB} (@code{indent-for-tab-command}) command. The default value, | ||
| 227 | @code{t}, gives the behavior described in @ref{Indentation}. If you | ||
| 228 | change the value to the symbol @code{complete}, then @key{TAB} first | ||
| 229 | tries to indent the current line, and if the line was already | ||
| 230 | indented, it tries to complete the text at point (@pxref{Symbol | ||
| 231 | Completion}). If the value is @code{nil}, then @key{TAB} indents the | ||
| 232 | current line only if point is at the left margin or in the line's | ||
| 233 | indentation; otherwise, it inserts a tab character. | ||
| 234 | |||
| 235 | @cindex Electric Indent mode | ||
| 236 | @cindex mode, Electric Indent | ||
| 237 | @findex electric-indent-mode | ||
| 238 | Electric Indent mode is a global minor mode that automatically | ||
| 239 | indents the line after every @key{RET} you type. To toggle this minor | ||
| 240 | mode, type @kbd{M-x electric-indent-mode}. | ||
diff --git a/doc/emacs/modes.texi b/doc/emacs/modes.texi index 5a786be62cf..4d574242c8d 100644 --- a/doc/emacs/modes.texi +++ b/doc/emacs/modes.texi | |||
| @@ -3,11 +3,11 @@ | |||
| 3 | @c Free Software Foundation, Inc. | 3 | @c Free Software Foundation, Inc. |
| 4 | @c See file emacs.texi for copying conditions. | 4 | @c See file emacs.texi for copying conditions. |
| 5 | @node Modes, Indentation, International, Top | 5 | @node Modes, Indentation, International, Top |
| 6 | @chapter Editing Modes | 6 | @chapter Major and Minor Modes |
| 7 | 7 | ||
| 8 | Emacs contains many @dfn{editing modes}, each of which alters its | 8 | Emacs contains many @dfn{editing modes} that alter its basic |
| 9 | basic behavior in useful ways. These are divided into @dfn{major | 9 | behavior in useful ways. These are divided into @dfn{major modes} and |
| 10 | modes} and @dfn{minor modes}. | 10 | @dfn{minor modes}. |
| 11 | 11 | ||
| 12 | Major modes provide specialized facilities for working on a | 12 | Major modes provide specialized facilities for working on a |
| 13 | particular file type, such as a C source file (@pxref{Programs}), or a | 13 | particular file type, such as a C source file (@pxref{Programs}), or a |
| @@ -38,15 +38,8 @@ one another, and of the selected major mode. | |||
| 38 | 38 | ||
| 39 | Every buffer possesses a major mode, which determines the editing | 39 | Every buffer possesses a major mode, which determines the editing |
| 40 | behavior of Emacs while that buffer is current. The mode line | 40 | behavior of Emacs while that buffer is current. The mode line |
| 41 | normally shows the name of the current major mode, in parentheses. | 41 | normally shows the name of the current major mode, in parentheses |
| 42 | @xref{Mode Line}. | 42 | (@pxref{Mode Line}). |
| 43 | |||
| 44 | Usually, the major mode is automatically set by Emacs, when you | ||
| 45 | first visit a file or create a buffer. @xref{Choosing Modes}. You | ||
| 46 | can explicitly select a new major mode by using an @kbd{M-x} command. | ||
| 47 | Take the name of the mode and add @code{-mode} to get the name of the | ||
| 48 | command to select that mode. Thus, you can enter Lisp mode with | ||
| 49 | @kbd{M-x lisp-mode}. | ||
| 50 | 43 | ||
| 51 | The least specialized major mode is called @dfn{Fundamental mode}. | 44 | The least specialized major mode is called @dfn{Fundamental mode}. |
| 52 | This mode has no mode-specific redefinitions or variable settings, so | 45 | This mode has no mode-specific redefinitions or variable settings, so |
| @@ -55,73 +48,142 @@ user option variable is in its default state. | |||
| 55 | 48 | ||
| 56 | For editing text of a specific type that Emacs knows about, such as | 49 | For editing text of a specific type that Emacs knows about, such as |
| 57 | Lisp code or English text, you typically use a more specialized major | 50 | Lisp code or English text, you typically use a more specialized major |
| 58 | mode, such as Lisp mode or Text mode. Such major modes change the | 51 | mode, such as Lisp mode or Text mode. Most major modes fall into |
| 59 | meanings of some keys to become more specifically adapted to the | 52 | three major groups. The first group contains modes for normal text, |
| 60 | language being edited. The ones that are commonly changed are | 53 | either plain or with mark-up. It includes Text mode, HTML mode, SGML |
| 61 | @key{TAB}, @key{DEL}, and @kbd{C-j}. The prefix key @kbd{C-c} | 54 | mode, @TeX{} mode and Outline mode. The second group contains modes |
| 62 | normally contains mode-specific commands. In addition, the commands | 55 | for specific programming languages. These include Lisp mode (which |
| 63 | which handle comments use the mode to determine how comments are to be | 56 | has several variants), C mode, Fortran mode, and others. The third |
| 64 | delimited. Many major modes redefine the syntactical properties of | 57 | group consists of major modes that are not associated directly with |
| 65 | characters appearing in the buffer. | 58 | files; they are used in buffers created for specific purposes by |
| 66 | 59 | Emacs, such as Dired mode for buffers made by Dired (@pxref{Dired}), | |
| 67 | The major modes fall into three major groups. The first group | 60 | Message mode for buffers made by @kbd{C-x m} (@pxref{Sending Mail}), |
| 68 | contains modes for normal text, either plain or with mark-up. It | 61 | and Shell mode for buffers used to communicate with an inferior shell |
| 69 | includes Text mode, HTML mode, SGML mode, @TeX{} mode and Outline | 62 | process (@pxref{Interactive Shell}). |
| 70 | mode. The second group contains modes for specific programming | 63 | |
| 71 | languages. These include Lisp mode (which has several variants), C | 64 | Usually, the major mode is automatically set by Emacs, when you |
| 72 | mode, Fortran mode, and others. The remaining major modes are not | 65 | first visit a file or create a buffer (@pxref{Choosing Modes}). You |
| 73 | intended for use on users' files; they are used in buffers created for | 66 | can explicitly select a new major mode by using an @kbd{M-x} command. |
| 74 | specific purposes by Emacs, such as Dired mode for buffers made by | 67 | Take the name of the mode and add @code{-mode} to get the name of the |
| 75 | Dired (@pxref{Dired}), Message mode for buffers made by @kbd{C-x m} | 68 | command to select that mode. Thus, you can enter Lisp mode with |
| 76 | (@pxref{Sending Mail}), and Shell mode for buffers used for | 69 | @kbd{M-x lisp-mode}. |
| 77 | communicating with an inferior shell process (@pxref{Interactive | 70 | |
| 78 | Shell}). | 71 | @vindex major-mode |
| 79 | 72 | The value of the buffer-local variable @code{major-mode} is a symbol | |
| 80 | Most programming-language major modes specify that only blank lines | 73 | with the same name as the major mode command (e.g. @code{lisp-mode}). |
| 81 | separate paragraphs. This is to make the paragraph commands useful. | 74 | This variable is set automatically; you should not change it yourself. |
| 82 | (@xref{Paragraphs}.) They also cause Auto Fill mode to use the | 75 | |
| 83 | definition of @key{TAB} to indent the new lines it creates. This is | 76 | The default value of @code{major-mode} determines the major mode to |
| 84 | because most lines in a program are usually indented | 77 | use for files that do not specify a major mode, and for new buffers |
| 85 | (@pxref{Indentation}). | 78 | created with @kbd{C-x b}. Normally, this default value is the symbol |
| 79 | @code{fundamental-mode}, which specifies Fundamental mode. You can | ||
| 80 | change this default value via the Customization interface (@pxref{Easy | ||
| 81 | Customization}), or by adding a line like this to your init file | ||
| 82 | (@pxref{Init File}): | ||
| 83 | |||
| 84 | @smallexample | ||
| 85 | (setq-default major-mode 'text-mode) | ||
| 86 | @end smallexample | ||
| 87 | |||
| 88 | @noindent | ||
| 89 | If the default value of @code{major-mode} is @code{nil}, the major | ||
| 90 | mode is taken from the previously current buffer. | ||
| 91 | |||
| 92 | Specialized major modes often change the meanings of certain keys to | ||
| 93 | do something more suitable for the mode. For instance, programming | ||
| 94 | language modes bind @key{TAB} to indent the current line according to | ||
| 95 | the rules of the language (@pxref{Indentation}). The keys that are | ||
| 96 | commonly changed are @key{TAB}, @key{DEL}, and @kbd{C-j}. Many modes | ||
| 97 | also define special commands of their own, usually bound in the prefix | ||
| 98 | key @kbd{C-c}. Major modes can also alter user options and variables; | ||
| 99 | for instance, programming language modes typicaly set a buffer-local | ||
| 100 | value for the variable @code{comment-start}, which determines how | ||
| 101 | source code comments are delimited (@pxref{Comments}). | ||
| 102 | |||
| 103 | @findex describe-mode | ||
| 104 | @kindex C-h m | ||
| 105 | To view the documentation for the current major mode, including a | ||
| 106 | list of its key bindings, type @code{C-h m} (@code{describe-mode}). | ||
| 107 | |||
| 108 | @cindex mode hook | ||
| 109 | @vindex text-mode-hook | ||
| 110 | @vindex prog-mode-hook | ||
| 111 | Every major mode, apart from Fundamental mode, defines a @dfn{mode | ||
| 112 | hook}, a customizable list of Lisp functions to run each time the mode | ||
| 113 | is enabled in a buffer. @xref{Hooks}, for more information about | ||
| 114 | hooks. Each mode hook is named after its major mode, e.g. Fortran | ||
| 115 | mode has @code{fortran-mode-hook}. Furthermore, all text-based major | ||
| 116 | modes run @code{text-mode-hook}, and all programming language modes | ||
| 117 | run @code{prog-mode-hook}, prior to running their own mode hooks. | ||
| 118 | Hook functions can look at the value of the variable @code{major-mode} | ||
| 119 | to see which mode is actually being entered. | ||
| 120 | |||
| 121 | Mode hooks are commonly used to enable minor modes (@pxref{Minor | ||
| 122 | Modes}). For example, you can put the following lines in your init | ||
| 123 | file to enable Flyspell minor mode in all text-based major modes | ||
| 124 | (@pxref{Spelling}), and Eldoc minor mode in Emacs Lisp mode | ||
| 125 | (@pxref{Lisp Doc}): | ||
| 126 | |||
| 127 | @example | ||
| 128 | (add-hook 'text-mode-hook 'flyspell-mode) | ||
| 129 | (add-hook 'emacs-lisp-mode-hook 'eldoc-mode) | ||
| 130 | @end example | ||
| 86 | 131 | ||
| 87 | @node Minor Modes | 132 | @node Minor Modes |
| 88 | @section Minor Modes | 133 | @section Minor Modes |
| 89 | @cindex minor modes | 134 | @cindex minor modes |
| 90 | @cindex mode, minor | 135 | @cindex mode, minor |
| 91 | 136 | ||
| 92 | A minor mode is an optional editing modes that alters the behavior | 137 | A minor mode is an optional editing mode that alters the behavior of |
| 93 | of Emacs in some well-defined way. Unlike major modes, any number of | 138 | Emacs in some well-defined way. Unlike major modes, any number of |
| 94 | minor modes can be in effect at any time. Some minor modes are | 139 | minor modes can be in effect at any time. Some minor modes are |
| 95 | @dfn{buffer-local}: they apply only to the current buffer, so you can | 140 | @dfn{buffer-local}, and can be turned on (enabled) in certain buffers |
| 96 | enable the mode in certain buffers and not others. Other minor modes | 141 | and off (disabled) in others. Other minor modes are @dfn{global}: |
| 97 | are @dfn{global}: while enabled, they affect everything you do in the | 142 | while enabled, they affect everything you do in the Emacs session, in |
| 98 | Emacs session, in all buffers. Some global minor modes are enabled by | 143 | all buffers. Most minor modes are disabled by default, but a few are |
| 99 | default. | 144 | enabled by default. |
| 100 | 145 | ||
| 101 | Most minor modes say in the mode line when they are enabled, just | 146 | Most buffer-local minor modes say in the mode line when they are |
| 102 | after the major mode indicator. For example, @samp{Fill} in the mode | 147 | enabled, just after the major mode indicator. For example, |
| 103 | line means that Auto Fill mode is enabled. @xref{Mode Line}. | 148 | @samp{Fill} in the mode line means that Auto Fill mode is enabled. |
| 104 | 149 | @xref{Mode Line}. | |
| 105 | Each minor mode is associated with a command, called the @dfn{mode | 150 | |
| 106 | command}, which turns it on or off. The name of this command consists | 151 | @cindex mode commands for minor modes |
| 107 | of the name of the minor mode, followed by @samp{-mode}; for instance, | 152 | Like major modes, each minor mode is associated with a @dfn{mode |
| 108 | the mode command for Auto Fill mode is @code{auto-fill-mode}. Calling | 153 | command}, whose name consists of the mode name followed by |
| 109 | the minor mode command with no prefix argument @dfn{toggles} the mode, | 154 | @samp{-mode}. For instance, the mode command for Auto Fill mode is |
| 110 | turning it on if it was off, and off if it was on. A positive | 155 | @code{auto-fill-mode}. But unlike a major mode command, which simply |
| 111 | argument always turns the mode on, and a zero or negative argument | 156 | enables the mode, the mode command for a minor mode can either enable |
| 112 | always turns it off. Mode commands are usually invoked with | 157 | or disable it: |
| 113 | @kbd{M-x}, but you can bind keys to them if you wish (@pxref{Key | 158 | |
| 114 | Bindings}). | 159 | @itemize |
| 160 | @item | ||
| 161 | If you invoke the mode command directly with no prefix argument | ||
| 162 | (either via @kbd{M-x}, or by binding it to a key and typing that key; | ||
| 163 | @pxref{Key Bindings}), that @dfn{toggles} the minor mode. The minor | ||
| 164 | mode is turned on if it was off, and turned off if it was on. | ||
| 165 | |||
| 166 | @item | ||
| 167 | If you invoke the mode command with a prefix argument, the minor mode | ||
| 168 | is unconditionally turned off if that argument is zero or negative; | ||
| 169 | otherwise, it is unconditionally turned on. | ||
| 170 | |||
| 171 | @item | ||
| 172 | If the mode command is called via Lisp, the minor mode is | ||
| 173 | unconditionally turned on if the argument is omitted or @code{nil}. | ||
| 174 | This makes it easy to turn on a minor mode from a major mode's mode | ||
| 175 | hook (@pxref{Major Modes}). A non-@code{nil} argument is handled like | ||
| 176 | an interactive prefix argument, as described above. | ||
| 177 | @end itemize | ||
| 115 | 178 | ||
| 116 | Most minor modes also have a @dfn{mode variable}, with the same name | 179 | Most minor modes also have a @dfn{mode variable}, with the same name |
| 117 | as the mode command. Its value is non-@code{nil} if the mode is | 180 | as the mode command. Its value is non-@code{nil} if the mode is |
| 118 | enabled, and @code{nil} if it is disabled. In some minor modes---but | 181 | enabled, and @code{nil} if it is disabled. In general, you should not |
| 119 | not all---the value of the variable alone determines whether the mode | 182 | try to enable or disable the mode by changing the value of the mode |
| 120 | is active: the mode command works simply by setting the variable, and | 183 | variable directly in Lisp; you should run the mode command instead. |
| 121 | changing the value of the variable has the same effect as calling the | 184 | However, setting the mode variable through the Customize interface |
| 122 | mode command. Because not all minor modes work this way, we recommend | 185 | (@pxref{Easy Customization}) will always properly enable or disable |
| 123 | that you avoid changing the mode variables directly; use the mode | 186 | the mode, since Customize automatically runs the mode command for you. |
| 124 | commands instead. | ||
| 125 | 187 | ||
| 126 | The following is a list of some buffer-local minor modes: | 188 | The following is a list of some buffer-local minor modes: |
| 127 | 189 | ||
| @@ -140,7 +202,7 @@ amount of work you can lose in case of a crash. @xref{Auto Save}. | |||
| 140 | 202 | ||
| 141 | @item | 203 | @item |
| 142 | Enriched mode enables editing and saving of formatted text. | 204 | Enriched mode enables editing and saving of formatted text. |
| 143 | @xref{Formatted Text}. | 205 | @xref{Enriched Text}. |
| 144 | 206 | ||
| 145 | @item | 207 | @item |
| 146 | Flyspell mode automatically highlights misspelled words. | 208 | Flyspell mode automatically highlights misspelled words. |
| @@ -189,11 +251,8 @@ Visual Line mode performs ``word wrapping'', causing long lines to be | |||
| 189 | wrapped at word boundaries. @xref{Visual Line Mode}. | 251 | wrapped at word boundaries. @xref{Visual Line Mode}. |
| 190 | @end itemize | 252 | @end itemize |
| 191 | 253 | ||
| 192 | Here are some useful global minor modes. Since Line Number mode and | 254 | @noindent |
| 193 | Transient Mark mode can be enabled or disabled just by setting the | 255 | And here are some useful global minor modes: |
| 194 | value of the minor mode variable, you @emph{can} set them differently | ||
| 195 | for particular buffers, by explicitly making the corresponding | ||
| 196 | variable local in those buffers. @xref{Locals}. | ||
| 197 | 256 | ||
| 198 | @itemize @bullet | 257 | @itemize @bullet |
| 199 | @item | 258 | @item |
| @@ -261,22 +320,27 @@ text may appear on the line as well. For example, | |||
| 261 | 320 | ||
| 262 | @noindent | 321 | @noindent |
| 263 | tells Emacs to use Lisp mode. Note how the semicolon is used to make | 322 | tells Emacs to use Lisp mode. Note how the semicolon is used to make |
| 264 | Lisp treat this line as a comment. Alternatively, you could write | 323 | Lisp treat this line as a comment. You could equivalently write |
| 265 | 324 | ||
| 266 | @example | 325 | @example |
| 267 | ; -*- mode: Lisp;-*- | 326 | ; -*- mode: Lisp;-*- |
| 268 | @end example | 327 | @end example |
| 269 | 328 | ||
| 270 | @noindent | 329 | @noindent |
| 271 | The latter format allows you to specify local variables as well, like | 330 | You can also use file-local variables to specify buffer-local minor |
| 272 | this: | 331 | modes, by using @code{eval} specifications. For example, this first |
| 332 | nonblank line puts the buffer in Lisp mode and enables Auto-Fill mode: | ||
| 273 | 333 | ||
| 274 | @example | 334 | @example |
| 275 | ; -*- mode: Lisp; tab-width: 4; -*- | 335 | ; -*- mode: Lisp; eval: (auto-fill-mode 1); -*- |
| 276 | @end example | 336 | @end example |
| 277 | 337 | ||
| 278 | If a file variable specifies a buffer-local minor mode, Emacs | 338 | @noindent |
| 279 | enables that minor mode in the buffer. | 339 | Note, however, that it is usually inappropriate to enable minor modes |
| 340 | this way, since most minor modes represent individual user | ||
| 341 | preferences. If you personally want to use a minor mode for a | ||
| 342 | particular file type, it is better to enable the minor mode via a | ||
| 343 | major mode hook (@pxref{Major Modes}). | ||
| 280 | 344 | ||
| 281 | @vindex interpreter-mode-alist | 345 | @vindex interpreter-mode-alist |
| 282 | Second, if there is no file variable specifying a major mode, Emacs | 346 | Second, if there is no file variable specifying a major mode, Emacs |
| @@ -310,9 +374,9 @@ elements of the form | |||
| 310 | 374 | ||
| 311 | @noindent | 375 | @noindent |
| 312 | where @var{regexp} is a regular expression (@pxref{Regexps}), and | 376 | where @var{regexp} is a regular expression (@pxref{Regexps}), and |
| 313 | @var{mode-function} is a Lisp function that toggles a major mode. If | 377 | @var{mode-function} is a major mode command. If the text at the |
| 314 | the text at the beginning of the file matches @var{regexp}, Emacs | 378 | beginning of the file matches @var{regexp}, Emacs chooses the major |
| 315 | chooses the major mode specified by @var{mode-function}. | 379 | mode specified by @var{mode-function}. |
| 316 | 380 | ||
| 317 | Alternatively, an element of @code{magic-mode-alist} may have the form | 381 | Alternatively, an element of @code{magic-mode-alist} may have the form |
| 318 | 382 | ||
| @@ -323,7 +387,7 @@ Alternatively, an element of @code{magic-mode-alist} may have the form | |||
| 323 | @noindent | 387 | @noindent |
| 324 | where @var{match-function} is a Lisp function that is called at the | 388 | where @var{match-function} is a Lisp function that is called at the |
| 325 | beginning of the buffer; if the function returns non-@code{nil}, Emacs | 389 | beginning of the buffer; if the function returns non-@code{nil}, Emacs |
| 326 | set the major mode wit @var{mode-function}. | 390 | set the major mode with @var{mode-function}. |
| 327 | 391 | ||
| 328 | Fourth---if Emacs still hasn't found a suitable major mode---it | 392 | Fourth---if Emacs still hasn't found a suitable major mode---it |
| 329 | looks at the file's name. The correspondence between file names and | 393 | looks at the file's name. The correspondence between file names and |
| @@ -370,29 +434,6 @@ only after @code{auto-mode-alist}. By default, | |||
| 370 | @code{magic-fallback-mode-alist} contains forms that check for image | 434 | @code{magic-fallback-mode-alist} contains forms that check for image |
| 371 | files, HTML/XML/SGML files, and PostScript files. | 435 | files, HTML/XML/SGML files, and PostScript files. |
| 372 | 436 | ||
| 373 | @vindex major-mode | ||
| 374 | Once a major mode is chosen, Emacs sets the value of the variable | ||
| 375 | @code{major-mode} to the symbol for that major mode (e.g., | ||
| 376 | @code{text-mode} for Text mode). This is a per-buffer variable | ||
| 377 | (@pxref{Locals}); its buffer-local value is set automatically, and you | ||
| 378 | should not change it yourself. | ||
| 379 | |||
| 380 | The default value of @code{major-mode} determines the major mode to | ||
| 381 | use for files that do not specify a major mode, and for new buffers | ||
| 382 | created with @kbd{C-x b}. Normally, this default value is the symbol | ||
| 383 | @code{fundamental-mode}, which specifies Fundamental mode. You can | ||
| 384 | change it via the Customization interface (@pxref{Easy | ||
| 385 | Customization}), or by adding a line like this to your init file | ||
| 386 | (@pxref{Init File}): | ||
| 387 | |||
| 388 | @smallexample | ||
| 389 | (setq-default major-mode 'text-mode) | ||
| 390 | @end smallexample | ||
| 391 | |||
| 392 | @noindent | ||
| 393 | If the default value of @code{major-mode} is @code{nil}, the major | ||
| 394 | mode is taken from the previously current buffer. | ||
| 395 | |||
| 396 | @findex normal-mode | 437 | @findex normal-mode |
| 397 | If you have changed the major mode of a buffer, you can return to | 438 | If you have changed the major mode of a buffer, you can return to |
| 398 | the major mode Emacs would have chosen automatically, by typing | 439 | the major mode Emacs would have chosen automatically, by typing |
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi index 2357902341e..675977c2c35 100644 --- a/doc/emacs/programs.texi +++ b/doc/emacs/programs.texi | |||
| @@ -397,7 +397,7 @@ the syntax and conventions for its particular language. | |||
| 397 | 397 | ||
| 398 | Use @kbd{C-q @key{TAB}} to insert a tab character at point. | 398 | Use @kbd{C-q @key{TAB}} to insert a tab character at point. |
| 399 | 399 | ||
| 400 | @kindex C-j | 400 | @kindex C-j @r{(indenting source code)} |
| 401 | @findex newline-and-indent | 401 | @findex newline-and-indent |
| 402 | When entering lines of new code, use @kbd{C-j} | 402 | When entering lines of new code, use @kbd{C-j} |
| 403 | (@code{newline-and-indent}), which inserts a newline and then adjusts | 403 | (@code{newline-and-indent}), which inserts a newline and then adjusts |
diff --git a/doc/emacs/rmail.texi b/doc/emacs/rmail.texi index 71c23655608..0df4a3a7bb5 100644 --- a/doc/emacs/rmail.texi +++ b/doc/emacs/rmail.texi | |||
| @@ -571,6 +571,22 @@ the file name to use, or more generally it may be any Lisp expression | |||
| 571 | that returns a file name as a string. @code{rmail-output-file-alist} | 571 | that returns a file name as a string. @code{rmail-output-file-alist} |
| 572 | applies to both @kbd{o} and @kbd{C-o}. | 572 | applies to both @kbd{o} and @kbd{C-o}. |
| 573 | 573 | ||
| 574 | @vindex rmail-automatic-folder-directives | ||
| 575 | Rmail can automatically save messages from your primary Rmail file | ||
| 576 | (the one that @code{rmail-file-name} specifies) to other files, based | ||
| 577 | on the value of the variable @code{rmail-automatic-folder-directives}. | ||
| 578 | This variable is a list of elements (@samp{directives}) that say which | ||
| 579 | messages to save where. Each directive is a list consisting of an | ||
| 580 | output file, followed by one or more pairs of a header name and a regular | ||
| 581 | expression. If a message has a header matching the specified regular | ||
| 582 | expression, that message is saved to the given file. If the directive | ||
| 583 | has more than one header entry, all must match. Rmail checks directives | ||
| 584 | when it shows a message from the file @code{rmail-file-name}, and | ||
| 585 | applies the first that matches (if any). If the output file is | ||
| 586 | @code{nil}, the message is deleted, not saved. For example, you can use | ||
| 587 | this feature to save messages from a particular address, or with a | ||
| 588 | particular subject, to a dedicated file. | ||
| 589 | |||
| 574 | @node Rmail Labels | 590 | @node Rmail Labels |
| 575 | @section Labels | 591 | @section Labels |
| 576 | @cindex label (Rmail) | 592 | @cindex label (Rmail) |
diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi index 562ce92d427..8f353961afb 100644 --- a/doc/emacs/text.texi +++ b/doc/emacs/text.texi | |||
| @@ -32,10 +32,9 @@ structure. | |||
| 32 | @findex nxml-mode | 32 | @findex nxml-mode |
| 33 | Emacs has other major modes for text which contains ``embedded'' | 33 | Emacs has other major modes for text which contains ``embedded'' |
| 34 | commands, such as @TeX{} and La@TeX{} (@pxref{TeX Mode}); HTML and | 34 | commands, such as @TeX{} and La@TeX{} (@pxref{TeX Mode}); HTML and |
| 35 | SGML (@pxref{HTML Mode}); XML (@pxref{Top, nXML Mode,,nxml-mode, nXML | 35 | SGML (@pxref{HTML Mode}); XML (@pxref{Top,The nXML Mode |
| 36 | Mode}); and Groff and Nroff (@pxref{Nroff Mode}). In addition, you | 36 | Manual,,nxml-mode, nXML Mode}); and Groff and Nroff (@pxref{Nroff |
| 37 | can edit formatted text in WYSIWYG style (``what you see is what you | 37 | Mode}). |
| 38 | get''), using Enriched mode (@pxref{Formatted Text}). | ||
| 39 | 38 | ||
| 40 | @cindex ASCII art | 39 | @cindex ASCII art |
| 41 | If you need to edit pictures made out of text characters (commonly | 40 | If you need to edit pictures made out of text characters (commonly |
| @@ -48,13 +47,14 @@ for editing such pictures. | |||
| 48 | @xref{Picture Mode}. | 47 | @xref{Picture Mode}. |
| 49 | @end ifnottex | 48 | @end ifnottex |
| 50 | 49 | ||
| 51 | 50 | @ifinfo | |
| 52 | @cindex skeletons | 51 | @cindex skeletons |
| 53 | @cindex templates | 52 | @cindex templates |
| 54 | @cindex autotyping | 53 | @cindex autotyping |
| 55 | @cindex automatic typing | 54 | @cindex automatic typing |
| 56 | The ``automatic typing'' features may be useful when writing text. | 55 | The ``automatic typing'' features may be useful when writing text. |
| 57 | @inforef{Top,, autotype}. | 56 | @inforef{Top,The Autotype Manual,autotype}. |
| 57 | @end ifinfo | ||
| 58 | 58 | ||
| 59 | @menu | 59 | @menu |
| 60 | * Words:: Moving over and killing words. | 60 | * Words:: Moving over and killing words. |
| @@ -68,8 +68,8 @@ for editing such pictures. | |||
| 68 | * TeX Mode:: Editing input to the formatter TeX. | 68 | * TeX Mode:: Editing input to the formatter TeX. |
| 69 | * HTML Mode:: Editing HTML and SGML files. | 69 | * HTML Mode:: Editing HTML and SGML files. |
| 70 | * Nroff Mode:: Editing input to the formatter nroff. | 70 | * Nroff Mode:: Editing input to the formatter nroff. |
| 71 | * Formatted Text:: Editing formatted text directly in WYSIWYG fashion. | 71 | * Enriched Text:: Editing text ``enriched'' with fonts, colors, etc. |
| 72 | * Text Based Tables:: Editing text-based tables in WYSIWYG fashion. | 72 | * Text Based Tables:: Commands for editing text-based tables. |
| 73 | * Two-Column:: Splitting text columns into separate windows. | 73 | * Two-Column:: Splitting text columns into separate windows. |
| 74 | @end menu | 74 | @end menu |
| 75 | 75 | ||
| @@ -78,8 +78,8 @@ for editing such pictures. | |||
| 78 | @cindex words | 78 | @cindex words |
| 79 | @cindex Meta commands and words | 79 | @cindex Meta commands and words |
| 80 | 80 | ||
| 81 | Emacs has commands for moving over or operating on words. By convention, | 81 | Emacs defines several commands for moving over or operating on |
| 82 | the keys for them are all Meta characters. | 82 | words: |
| 83 | 83 | ||
| 84 | @table @kbd | 84 | @table @kbd |
| 85 | @item M-f | 85 | @item M-f |
| @@ -157,13 +157,17 @@ the syntax table. Any character can, for example, be declared to be a | |||
| 157 | word delimiter. @xref{Syntax Tables,, Syntax Tables, elisp, The Emacs | 157 | word delimiter. @xref{Syntax Tables,, Syntax Tables, elisp, The Emacs |
| 158 | Lisp Reference Manual}. | 158 | Lisp Reference Manual}. |
| 159 | 159 | ||
| 160 | In addition, see @ref{Position Info} for the @kbd{M-=} | ||
| 161 | (@code{count-words-region}) and @kbd{M-x count-words} commands, which | ||
| 162 | count and report the number of words in the region or buffer. | ||
| 163 | |||
| 160 | @node Sentences | 164 | @node Sentences |
| 161 | @section Sentences | 165 | @section Sentences |
| 162 | @cindex sentences | 166 | @cindex sentences |
| 163 | @cindex manipulating sentences | 167 | @cindex manipulating sentences |
| 164 | 168 | ||
| 165 | The Emacs commands for manipulating sentences and paragraphs are mostly | 169 | The Emacs commands for manipulating sentences and paragraphs are |
| 166 | on Meta keys, so as to be like the word-handling commands. | 170 | mostly on Meta keys, like the word-handling commands. |
| 167 | 171 | ||
| 168 | @table @kbd | 172 | @table @kbd |
| 169 | @item M-a | 173 | @item M-a |
| @@ -180,12 +184,12 @@ Kill back to the beginning of the sentence (@code{backward-kill-sentence}). | |||
| 180 | @kindex M-e | 184 | @kindex M-e |
| 181 | @findex backward-sentence | 185 | @findex backward-sentence |
| 182 | @findex forward-sentence | 186 | @findex forward-sentence |
| 183 | The commands @kbd{M-a} and @kbd{M-e} (@code{backward-sentence} and | 187 | The commands @kbd{M-a} (@code{backward-sentence}) and @kbd{M-e} |
| 184 | @code{forward-sentence}) move to the beginning and end of the current | 188 | (@code{forward-sentence}) move to the beginning and end of the current |
| 185 | sentence, respectively. They were chosen to resemble @kbd{C-a} and | 189 | sentence, respectively. Their bindings were chosen to resemble |
| 186 | @kbd{C-e}, which move to the beginning and end of a line. Unlike | 190 | @kbd{C-a} and @kbd{C-e}, which move to the beginning and end of a |
| 187 | them, @kbd{M-a} and @kbd{M-e} move over successive sentences if | 191 | line. Unlike them, @kbd{M-a} and @kbd{M-e} move over successive |
| 188 | repeated. | 192 | sentences if repeated. |
| 189 | 193 | ||
| 190 | Moving backward over a sentence places point just before the first | 194 | Moving backward over a sentence places point just before the first |
| 191 | character of the sentence; moving forward places point right after the | 195 | character of the sentence; moving forward places point right after the |
| @@ -207,15 +211,14 @@ it kills back to the beginning of the @var{n}th preceding sentence. | |||
| 207 | to the beginning of a sentence. | 211 | to the beginning of a sentence. |
| 208 | 212 | ||
| 209 | The sentence commands assume that you follow the American typist's | 213 | The sentence commands assume that you follow the American typist's |
| 210 | convention of putting two spaces at the end of a sentence; they consider | 214 | convention of putting two spaces at the end of a sentence. That is, a |
| 211 | a sentence to end wherever there is a @samp{.}, @samp{?} or @samp{!} | 215 | sentence ends wherever there is a @samp{.}, @samp{?} or @samp{!} |
| 212 | followed by the end of a line or two spaces, with any number of | 216 | followed by the end of a line or two spaces, with any number of |
| 213 | @samp{)}, @samp{]}, @samp{'}, or @samp{"} characters allowed in between. | 217 | @samp{)}, @samp{]}, @samp{'}, or @samp{"} characters allowed in |
| 214 | A sentence also begins or ends wherever a paragraph begins or ends. | 218 | between. A sentence also begins or ends wherever a paragraph begins |
| 215 | It is useful to follow this convention, because it makes a distinction | 219 | or ends. It is useful to follow this convention, because it allows |
| 216 | between periods that end a sentence and periods that indicate | 220 | the Emacs sentence commands to distinguish between periods that end a |
| 217 | abbreviations; that enables the Emacs sentence commands to distinguish, | 221 | sentence and periods that indicate abbreviations. |
| 218 | too. These commands do not stop for periods that indicate abbreviations. | ||
| 219 | 222 | ||
| 220 | @vindex sentence-end-double-space | 223 | @vindex sentence-end-double-space |
| 221 | If you want to use just one space between sentences, you can set the | 224 | If you want to use just one space between sentences, you can set the |
| @@ -225,7 +228,7 @@ drawback: there is no way to distinguish between periods that end | |||
| 225 | sentences and those that indicate abbreviations. For convenient and | 228 | sentences and those that indicate abbreviations. For convenient and |
| 226 | reliable editing, we therefore recommend you follow the two-space | 229 | reliable editing, we therefore recommend you follow the two-space |
| 227 | convention. The variable @code{sentence-end-double-space} also | 230 | convention. The variable @code{sentence-end-double-space} also |
| 228 | affects filling (@pxref{Fill Commands}) in related ways. | 231 | affects filling (@pxref{Fill Commands}). |
| 229 | 232 | ||
| 230 | @vindex sentence-end | 233 | @vindex sentence-end |
| 231 | The variable @code{sentence-end} controls how to recognize the end | 234 | The variable @code{sentence-end} controls how to recognize the end |
| @@ -237,19 +240,14 @@ Emacs computes sentence ends according to various criteria such as the | |||
| 237 | value of @code{sentence-end-double-space}. | 240 | value of @code{sentence-end-double-space}. |
| 238 | 241 | ||
| 239 | @vindex sentence-end-without-period | 242 | @vindex sentence-end-without-period |
| 240 | Some languages do not use periods to indicate the end of a sentence. | 243 | Some languages, such as Thai, do not use periods to indicate the end |
| 241 | For example, sentences in Thai end with a double space but without a | 244 | of a sentence. Set the variable @code{sentence-end-without-period} to |
| 242 | period. Set the variable @code{sentence-end-without-period} to | ||
| 243 | @code{t} in such cases. | 245 | @code{t} in such cases. |
| 244 | 246 | ||
| 245 | @node Paragraphs | 247 | @node Paragraphs |
| 246 | @section Paragraphs | 248 | @section Paragraphs |
| 247 | @cindex paragraphs | 249 | @cindex paragraphs |
| 248 | @cindex manipulating paragraphs | 250 | @cindex manipulating paragraphs |
| 249 | @kindex M-@{ | ||
| 250 | @kindex M-@} | ||
| 251 | @findex backward-paragraph | ||
| 252 | @findex forward-paragraph | ||
| 253 | 251 | ||
| 254 | The Emacs commands for manipulating paragraphs are also on Meta keys. | 252 | The Emacs commands for manipulating paragraphs are also on Meta keys. |
| 255 | 253 | ||
| @@ -262,23 +260,15 @@ Move forward to next paragraph end (@code{forward-paragraph}). | |||
| 262 | Put point and mark around this or next paragraph (@code{mark-paragraph}). | 260 | Put point and mark around this or next paragraph (@code{mark-paragraph}). |
| 263 | @end table | 261 | @end table |
| 264 | 262 | ||
| 265 | @kbd{M-@{} moves to the beginning of the current or previous | 263 | @kindex M-@{ |
| 266 | paragraph, while @kbd{M-@}} moves to the end of the current or next | 264 | @kindex M-@} |
| 267 | paragraph. Blank lines and text-formatter command lines separate | 265 | @findex backward-paragraph |
| 268 | paragraphs and are not considered part of any paragraph. If there is | 266 | @findex forward-paragraph |
| 269 | a blank line before the paragraph, @kbd{M-@{} moves to the blank line, | 267 | @kbd{M-@{} (@code{backward-paragraph}) moves to the beginning of the |
| 270 | because that is convenient in practice. | 268 | current or previous paragraph (see below for the definition of a |
| 271 | 269 | paragraph). @kbd{M-@}} (@code{forward-paragraph}) moves to the end of | |
| 272 | In Text mode, an indented line is not a paragraph break. If you | 270 | the current or next paragraph. If there is a blank line before the |
| 273 | want indented lines to have this effect, use Paragraph-Indent Text | 271 | paragraph, @kbd{M-@{} moves to the blank line. |
| 274 | mode instead. @xref{Text Mode}. | ||
| 275 | |||
| 276 | In major modes for programs, paragraphs begin and end only at blank | ||
| 277 | lines. This makes the paragraph commands useful, even though there | ||
| 278 | are no paragraphs as such in a program. | ||
| 279 | |||
| 280 | When you have set a fill prefix, then paragraphs are delimited by | ||
| 281 | all lines which don't start with the fill prefix. @xref{Filling}. | ||
| 282 | 272 | ||
| 283 | @kindex M-h | 273 | @kindex M-h |
| 284 | @findex mark-paragraph | 274 | @findex mark-paragraph |
| @@ -287,46 +277,57 @@ all lines which don't start with the fill prefix. @xref{Filling}. | |||
| 287 | @kbd{M-h C-w} kills the paragraph around or after point. @kbd{M-h} | 277 | @kbd{M-h C-w} kills the paragraph around or after point. @kbd{M-h} |
| 288 | puts point at the beginning and mark at the end of the paragraph point | 278 | puts point at the beginning and mark at the end of the paragraph point |
| 289 | was in. If point is between paragraphs (in a run of blank lines, or | 279 | was in. If point is between paragraphs (in a run of blank lines, or |
| 290 | at a boundary), the paragraph following point is surrounded by point | 280 | at a boundary), @kbd{M-h} sets the region around the paragraph |
| 291 | and mark. If there are blank lines preceding the first line of the | 281 | following point. If there are blank lines preceding the first line of |
| 292 | paragraph, one of these blank lines is included in the region. If the | 282 | the paragraph, one of these blank lines is included in the region. If |
| 293 | region is already active, the command sets the mark without changing | 283 | the region is already active, the command sets the mark without |
| 294 | point; furthermore, each subsequent @kbd{M-h} further advances the | 284 | changing point, and each subsequent @kbd{M-h} further advances the |
| 295 | mark by one paragraph. | 285 | mark by one paragraph. |
| 296 | 286 | ||
| 287 | The definition of a paragraph depends on the major mode. In | ||
| 288 | Fundamental mode, as well as Text mode and related modes, a paragraph | ||
| 289 | is separated each neighboring paragraph another by one or more | ||
| 290 | @dfn{blank lines}---lines that are either empty, or consist solely of | ||
| 291 | space, tab and/or formfeed characters. In programming language modes, | ||
| 292 | paragraphs are usually defined in a similar way, so that you can use | ||
| 293 | the paragraph commands even though there are no paragraphs as such in | ||
| 294 | a program. | ||
| 295 | |||
| 296 | Note that an indented line is @emph{not} itself a paragraph break in | ||
| 297 | Text mode. If you want indented lines to separate paragraphs, use | ||
| 298 | Paragraph-Indent Text mode instead. @xref{Text Mode}. | ||
| 299 | |||
| 300 | If you set a fill prefix, then paragraphs are delimited by all lines | ||
| 301 | which don't start with the fill prefix. @xref{Filling}. | ||
| 302 | |||
| 297 | @vindex paragraph-start | 303 | @vindex paragraph-start |
| 298 | @vindex paragraph-separate | 304 | @vindex paragraph-separate |
| 299 | The precise definition of a paragraph boundary is controlled by the | 305 | The precise definition of a paragraph boundary is controlled by the |
| 300 | variables @code{paragraph-separate} and @code{paragraph-start}. The | 306 | variables @code{paragraph-separate} and @code{paragraph-start}. The |
| 301 | value of @code{paragraph-start} is a regexp that should match any line | 307 | value of @code{paragraph-start} is a regular expression that should |
| 302 | that either starts or separates paragraphs. The value of | 308 | match lines that either start or separate paragraphs |
| 303 | @code{paragraph-separate} is another regexp that should match only lines | 309 | (@pxref{Regexps}). The value of @code{paragraph-separate} is another |
| 304 | that separate paragraphs without being part of any paragraph (for | 310 | regular expression that should match lines that separate paragraphs |
| 305 | example, blank lines). Lines that start a new paragraph and are | 311 | without being part of any paragraph (for example, blank lines). Lines |
| 306 | contained in it must match only @code{paragraph-start}, not | 312 | that start a new paragraph and are contained in it must match only |
| 307 | @code{paragraph-separate}. Each regular expression must match at the | 313 | @code{paragraph-start}, not @code{paragraph-separate}. For example, |
| 308 | left margin. For example, in Fundamental mode, @code{paragraph-start} | 314 | in Fundamental mode, @code{paragraph-start} is @w{@code{"\f\\|[ |
| 309 | is @w{@code{"\f\\|[ \t]*$"}}, and @code{paragraph-separate} is | 315 | \t]*$"}}, and @code{paragraph-separate} is @w{@code{"[ \t\f]*$"}}. |
| 310 | @w{@code{"[ \t\f]*$"}}. | ||
| 311 | |||
| 312 | Normally it is desirable for page boundaries to separate paragraphs. | ||
| 313 | The default values of these variables recognize the usual separator for | ||
| 314 | pages. | ||
| 315 | 316 | ||
| 316 | @node Pages | 317 | @node Pages |
| 317 | @section Pages | 318 | @section Pages |
| 318 | 319 | ||
| 319 | @cindex pages | 320 | @cindex pages |
| 320 | @cindex formfeed character | 321 | @cindex formfeed character |
| 321 | Within some text files, text is divided into @dfn{pages}, which are | 322 | Within some text files, text is divided into @dfn{pages} delimited |
| 322 | delimited by the @dfn{formfeed character} (@acronym{ASCII} code 12, | 323 | by the @dfn{formfeed character} (@acronym{ASCII} code 12, also denoted |
| 323 | sometimes denoted as @key{control-L}). When you print hardcopy for a | 324 | as @key{control-L}), which is displayed in Emacs as the escape |
| 324 | file, the formfeed character forces a page break: each page of the | 325 | sequence @samp{^L} (@pxref{Text Display}). Traditionally, when such |
| 325 | file goes on a separate page on paper. Most Emacs commands treat the | 326 | text files are printed to hardcopy, each formfeed character forces a |
| 326 | formfeed character just like any other character: you can insert it | 327 | page break. Most Emacs commands treat it just like any other |
| 327 | with @kbd{C-q C-l}, and delete it with @key{DEL}. However, since | 328 | character, so you can insert it with @kbd{C-q C-l}, delete it with |
| 328 | pages are often meaningful divisions of the file, Emacs provides | 329 | @key{DEL}, etc. In addition, Emacs provides commands to move over |
| 329 | commands to move over them and operate on them. | 330 | pages and operate on them. |
| 330 | 331 | ||
| 331 | @table @kbd | 332 | @table @kbd |
| 332 | @item M-x what-page | 333 | @item M-x what-page |
| @@ -358,9 +359,9 @@ command moves forward past the next page delimiter. | |||
| 358 | @kindex C-x C-p | 359 | @kindex C-x C-p |
| 359 | @findex mark-page | 360 | @findex mark-page |
| 360 | The @kbd{C-x C-p} command (@code{mark-page}) puts point at the | 361 | The @kbd{C-x C-p} command (@code{mark-page}) puts point at the |
| 361 | beginning of the current page and the mark at the end. The page | 362 | beginning of the current page (after that page delimiter at the |
| 362 | delimiter at the end is included (the mark follows it). The page | 363 | front), and the mark at the end of the page (after the page delimiter |
| 363 | delimiter at the front is excluded (point follows it). | 364 | at the end). |
| 364 | 365 | ||
| 365 | @kbd{C-x C-p C-w} is a handy way to kill a page to move it | 366 | @kbd{C-x C-p C-w} is a handy way to kill a page to move it |
| 366 | elsewhere. If you move to another page delimiter with @kbd{C-x [} and | 367 | elsewhere. If you move to another page delimiter with @kbd{C-x [} and |
| @@ -402,9 +403,7 @@ beginning of a line. | |||
| 402 | specified width. Emacs does filling in two ways. In Auto Fill mode, | 403 | specified width. Emacs does filling in two ways. In Auto Fill mode, |
| 403 | inserting text with self-inserting characters also automatically fills | 404 | inserting text with self-inserting characters also automatically fills |
| 404 | it. There are also explicit fill commands that you can use when editing | 405 | it. There are also explicit fill commands that you can use when editing |
| 405 | text leaves it unfilled. When you edit formatted text, you can specify | 406 | text leaves it unfilled. |
| 406 | a style of filling for each portion of the text (@pxref{Formatted | ||
| 407 | Text}). | ||
| 408 | 407 | ||
| 409 | @menu | 408 | @menu |
| 410 | * Auto Fill:: Auto Fill mode breaks long lines automatically. | 409 | * Auto Fill:: Auto Fill mode breaks long lines automatically. |
| @@ -418,9 +417,9 @@ Text}). | |||
| 418 | @cindex Auto Fill mode | 417 | @cindex Auto Fill mode |
| 419 | @cindex mode, Auto Fill | 418 | @cindex mode, Auto Fill |
| 420 | 419 | ||
| 421 | @dfn{Auto Fill} mode is a minor mode in which lines are broken | 420 | @dfn{Auto Fill} mode is a buffer-local minor mode (@pxref{Minor |
| 422 | automatically when they become too wide. Breaking happens only when | 421 | Modes}) in which lines are broken automatically when they become too |
| 423 | you type a @key{SPC} or @key{RET}. | 422 | wide. Breaking happens only when you type a @key{SPC} or @key{RET}. |
| 424 | 423 | ||
| 425 | @table @kbd | 424 | @table @kbd |
| 426 | @item M-x auto-fill-mode | 425 | @item M-x auto-fill-mode |
| @@ -431,45 +430,43 @@ In Auto Fill mode, break lines when appropriate. | |||
| 431 | @end table | 430 | @end table |
| 432 | 431 | ||
| 433 | @findex auto-fill-mode | 432 | @findex auto-fill-mode |
| 434 | @kbd{M-x auto-fill-mode} turns Auto Fill mode on if it was off, or off | 433 | The mode command @kbd{M-x auto-fill-mode} toggles Auto Fill mode in |
| 435 | if it was on. With a positive numeric argument it always turns Auto | 434 | the current buffer. With a positive numeric argument, it enables Auto |
| 436 | Fill mode on, and with a negative argument always turns it off. You can | 435 | Fill mode, and with a negative argument it disables it. If |
| 437 | see when Auto Fill mode is in effect by the presence of the word | 436 | @code{auto-fill-mode} is called from Lisp with an omitted or |
| 438 | @samp{Fill} in the mode line, inside the parentheses. Auto Fill mode is | 437 | @code{nil} argument, it enables Auto Fill mode. To enable Auto Fill |
| 439 | a minor mode which is enabled or disabled for each buffer individually. | 438 | mode automatically in certain major modes, add @code{auto-fill-mode} |
| 440 | @xref{Minor Modes}. | 439 | to the mode hooks (@pxref{Major Modes}). When Auto Fill mode is |
| 441 | 440 | enabled, the mode indicator @samp{Fill} appears in the mode line | |
| 442 | In Auto Fill mode, lines are broken automatically at spaces when they | 441 | (@pxref{Mode Line}). |
| 443 | get longer than the desired width. Line breaking and rearrangement | 442 | |
| 444 | takes place only when you type @key{SPC} or @key{RET}. If you wish to | 443 | Auto Fill mode breaks lines automatically at spaces whenever they |
| 445 | insert a space or newline without permitting line-breaking, type | 444 | get longer than the desired width. This line breaking occurs only |
| 446 | @kbd{C-q @key{SPC}} or @kbd{C-q C-j} (recall that a newline is really a | 445 | when you type @key{SPC} or @key{RET}. If you wish to insert a space |
| 447 | control-J). Also, @kbd{C-o} inserts a newline without line breaking. | 446 | or newline without permitting line-breaking, type @kbd{C-q @key{SPC}} |
| 448 | 447 | or @kbd{C-q C-j} respectively. Also, @kbd{C-o} inserts a newline | |
| 449 | Auto Fill mode works well with programming-language modes, because it | 448 | without line breaking. |
| 450 | indents new lines with @key{TAB}. If a line ending in a comment gets | 449 | |
| 451 | too long, the text of the comment is split into two comment lines. | 450 | When Auto Fill mode breaks a line, it tries to obey the |
| 452 | Optionally, new comment delimiters are inserted at the end of the first | 451 | @dfn{adaptive fill prefix}: if a fill prefix can be deduced from the |
| 453 | line and the beginning of the second so that each line is a separate | 452 | first and/or second line of the current paragraph, it is inserted into |
| 454 | comment; the variable @code{comment-multi-line} controls the choice | 453 | the new line (@pxref{Adaptive Fill}). Otherwise the new line is |
| 455 | (@pxref{Comments}). | 454 | indented, as though you had typed @key{TAB} on it |
| 456 | 455 | (@pxref{Indentation}). In a programming language mode, if a line is | |
| 457 | Adaptive filling (@pxref{Adaptive Fill}) works for Auto Filling as | 456 | broken in the middle of a comment, the comment is split by inserting |
| 458 | well as for explicit fill commands. It takes a fill prefix | 457 | new comment delimiters as appropriate. |
| 459 | automatically from the second or first line of a paragraph. | 458 | |
| 460 | 459 | Auto Fill mode does not refill entire paragraphs; it breaks lines | |
| 461 | Auto Fill mode does not refill entire paragraphs; it can break lines but | 460 | but does not merge lines. Therefore, editing in the middle of a |
| 462 | cannot merge lines. So editing in the middle of a paragraph can result in | 461 | paragraph can result in a paragraph that is not correctly filled. To |
| 463 | a paragraph that is not correctly filled. The easiest way to make the | 462 | fill it, call the explicit fill commands |
| 464 | paragraph properly filled again is usually with the explicit fill commands. | 463 | @iftex |
| 464 | described in the next section. | ||
| 465 | @end iftex | ||
| 465 | @ifnottex | 466 | @ifnottex |
| 466 | @xref{Fill Commands}. | 467 | (@pxref{Fill Commands}). |
| 467 | @end ifnottex | 468 | @end ifnottex |
| 468 | 469 | ||
| 469 | Many users like Auto Fill mode and want to use it in all text files. | ||
| 470 | The section on init files says how to arrange this permanently for yourself. | ||
| 471 | @xref{Init File}. | ||
| 472 | |||
| 473 | @node Fill Commands | 470 | @node Fill Commands |
| 474 | @subsection Explicit Fill Commands | 471 | @subsection Explicit Fill Commands |
| 475 | 472 | ||
| @@ -488,21 +485,23 @@ Center a line. | |||
| 488 | 485 | ||
| 489 | @kindex M-q | 486 | @kindex M-q |
| 490 | @findex fill-paragraph | 487 | @findex fill-paragraph |
| 491 | To refill a paragraph, use the command @kbd{M-q} | 488 | The command @kbd{M-q} (@code{fill-paragraph}) @dfn{fills} the |
| 492 | (@code{fill-paragraph}). This operates on the paragraph that point is | 489 | current paragraph. It redistributes the line breaks within the |
| 493 | inside, or the one after point if point is between paragraphs. | 490 | paragraph, and deletes any excess space and tab characters occurring |
| 494 | Refilling works by removing all the line-breaks, then inserting new | 491 | within the paragraph, in such a way that the lines end up fitting |
| 495 | ones where necessary. When there is an active region, this command | 492 | within a certain maximum width. |
| 496 | operates on the text within the region like @code{fill-region}. | ||
| 497 | 493 | ||
| 498 | @findex fill-region | 494 | @findex fill-region |
| 499 | To refill many paragraphs, use @kbd{M-x fill-region}, which | 495 | Normally, @kbd{M-q} acts on the paragraph where point is, but if |
| 500 | finds the paragraphs in the region and fills each of them. | 496 | point is between paragraphs, it acts on the paragraph after point. If |
| 497 | the region is active, it acts instead on the text in the region. You | ||
| 498 | can also call @kbd{M-x fill-region} to specifically fill the text in | ||
| 499 | the region. | ||
| 501 | 500 | ||
| 502 | @findex fill-region-as-paragraph | 501 | @findex fill-region-as-paragraph |
| 503 | @kbd{M-q} and @code{fill-region} use the same criteria as @kbd{M-h} | 502 | @kbd{M-q} and @code{fill-region} use the usual Emacs criteria for |
| 504 | for finding paragraph boundaries (@pxref{Paragraphs}). For more | 503 | finding paragraph boundaries (@pxref{Paragraphs}). For more control, |
| 505 | control, you can use @kbd{M-x fill-region-as-paragraph}, which refills | 504 | you can use @kbd{M-x fill-region-as-paragraph}, which refills |
| 506 | everything between point and mark as a single paragraph. This command | 505 | everything between point and mark as a single paragraph. This command |
| 507 | deletes any blank lines within the region, so separate blocks of text | 506 | deletes any blank lines within the region, so separate blocks of text |
| 508 | end up combined into one block. | 507 | end up combined into one block. |
| @@ -512,9 +511,18 @@ end up combined into one block. | |||
| 512 | as well as filling it. This means that extra spaces are inserted to | 511 | as well as filling it. This means that extra spaces are inserted to |
| 513 | make the right margin line up exactly at the fill column. To remove | 512 | make the right margin line up exactly at the fill column. To remove |
| 514 | the extra spaces, use @kbd{M-q} with no argument. (Likewise for | 513 | the extra spaces, use @kbd{M-q} with no argument. (Likewise for |
| 515 | @code{fill-region}.) Another way to control justification, and choose | 514 | @code{fill-region}.) |
| 516 | other styles of filling, is with the @code{justification} text | 515 | |
| 517 | property; see @ref{Format Justification}. | 516 | @vindex fill-column |
| 517 | @kindex C-x f | ||
| 518 | @findex set-fill-column | ||
| 519 | The maximum line width for filling is specified by the buffer-local | ||
| 520 | variable @code{fill-column}. The default value (@pxref{Locals}) is | ||
| 521 | 70. The easiest way to set @code{fill-column} in the current buffer | ||
| 522 | is to use the command @kbd{C-x f} (@code{set-fill-column}). With a | ||
| 523 | numeric argument, it uses that as the new fill column. With just | ||
| 524 | @kbd{C-u} as argument, it sets @code{fill-column} to the current | ||
| 525 | horizontal position of point. | ||
| 518 | 526 | ||
| 519 | @kindex M-o M-s @r{(Text mode)} | 527 | @kindex M-o M-s @r{(Text mode)} |
| 520 | @cindex centering | 528 | @cindex centering |
| @@ -525,40 +533,27 @@ within the current fill column. With an argument @var{n}, it centers | |||
| 525 | made by Text mode and is available only in that and related modes | 533 | made by Text mode and is available only in that and related modes |
| 526 | (@pxref{Text Mode}). | 534 | (@pxref{Text Mode}). |
| 527 | 535 | ||
| 528 | @vindex fill-column | 536 | By default, Emacs considers a period followed by two spaces or by a |
| 529 | @kindex C-x f | 537 | newline as the end of a sentence; a period followed by just one space |
| 530 | @findex set-fill-column | 538 | indicates an abbreviation, not the end of a sentence. Accordingly, |
| 531 | The maximum line width for filling is in the variable | 539 | the fill commands will not break a line after a period followed by |
| 532 | @code{fill-column}. Altering the value of @code{fill-column} makes it | 540 | just one space. If you change the variable |
| 533 | local to the current buffer; until that time, the default value is in | 541 | @code{sentence-end-double-space} to a non-@code{nil} value, the fill |
| 534 | effect. The default is initially 70. @xref{Locals}. The easiest way | 542 | commands will break a line after a period followed by one space, and |
| 535 | to set @code{fill-column} is to use the command @kbd{C-x f} | 543 | put just one space after each period. @xref{Sentences}, for other |
| 536 | (@code{set-fill-column}). With a numeric argument, it uses that as the | 544 | effects and possible drawbacks of this. |
| 537 | new fill column. With just @kbd{C-u} as argument, it sets | ||
| 538 | @code{fill-column} to the current horizontal position of point. | ||
| 539 | |||
| 540 | Emacs commands normally consider a period followed by two spaces or by | ||
| 541 | a newline as the end of a sentence; a period followed by just one space | ||
| 542 | indicates an abbreviation and not the end of a sentence. To preserve | ||
| 543 | the distinction between these two ways of using a period, the fill | ||
| 544 | commands do not break a line after a period followed by just one space. | ||
| 545 | |||
| 546 | If the variable @code{sentence-end-double-space} is @code{nil}, the | ||
| 547 | fill commands expect and leave just one space at the end of a sentence. | ||
| 548 | Ordinarily this variable is @code{t}, so the fill commands insist on | ||
| 549 | two spaces for the end of a sentence, as explained above. @xref{Sentences}. | ||
| 550 | 545 | ||
| 551 | @vindex colon-double-space | 546 | @vindex colon-double-space |
| 552 | If the variable @code{colon-double-space} is non-@code{nil}, the | 547 | If the variable @code{colon-double-space} is non-@code{nil}, the |
| 553 | fill commands put two spaces after a colon. | 548 | fill commands put two spaces after a colon. |
| 554 | 549 | ||
| 555 | @vindex fill-nobreak-predicate | 550 | @vindex fill-nobreak-predicate |
| 556 | The variable @code{fill-nobreak-predicate} is a hook (an abnormal | 551 | To specify additional conditions where line-breaking is not allowed, |
| 557 | hook, @pxref{Hooks}) specifying additional conditions where | 552 | customize the abnormal hook variable @code{fill-nobreak-predicate} |
| 558 | line-breaking is not allowed. Each function is called with no | 553 | (@pxref{Hooks}). Each function in this hook is called with no |
| 559 | arguments, with point at a place where Emacs is considering breaking | 554 | arguments, with point positioned where Emacs is considering breaking a |
| 560 | the line. If a function returns a non-@code{nil} value, then that's | 555 | line. If a function returns a non-@code{nil} value, Emacs will not |
| 561 | a bad place to break the line. Two standard functions you can use are | 556 | break the line there. Two functions you can use are |
| 562 | @code{fill-single-word-nobreak-p} (don't break after the first word of | 557 | @code{fill-single-word-nobreak-p} (don't break after the first word of |
| 563 | a sentence or before the last) and @code{fill-french-nobreak-p} (don't | 558 | a sentence or before the last) and @code{fill-french-nobreak-p} (don't |
| 564 | break after @samp{(} or before @samp{)}, @samp{:} or @samp{?}). | 559 | break after @samp{(} or before @samp{)}, @samp{:} or @samp{?}). |
| @@ -567,12 +562,11 @@ break after @samp{(} or before @samp{)}, @samp{:} or @samp{?}). | |||
| 567 | @subsection The Fill Prefix | 562 | @subsection The Fill Prefix |
| 568 | 563 | ||
| 569 | @cindex fill prefix | 564 | @cindex fill prefix |
| 570 | To fill a paragraph in which each line starts with a special marker | 565 | The @dfn{fill prefix} feature allows paragraphs to be filled so that |
| 571 | (which might be a few spaces, giving an indented paragraph), you can use | 566 | each line starts with a special string of characters (such as a |
| 572 | the @dfn{fill prefix} feature. The fill prefix is a string that Emacs | 567 | sequence of spaces, giving an indented paragraph). You can specify a |
| 573 | expects every line to start with, and which is not included in filling. | 568 | fill prefix explicitly; otherwise, Emacs tries to deduce one |
| 574 | You can specify a fill prefix explicitly; Emacs can also deduce the | 569 | automatically (@pxref{Adaptive Fill}). |
| 575 | fill prefix automatically (@pxref{Adaptive Fill}). | ||
| 576 | 570 | ||
| 577 | @table @kbd | 571 | @table @kbd |
| 578 | @item C-x . | 572 | @item C-x . |
| @@ -596,15 +590,15 @@ after the @kbd{C-x}.) To turn off the fill prefix, specify an empty | |||
| 596 | prefix: type @w{@kbd{C-x .}}@: with point at the beginning of a line. | 590 | prefix: type @w{@kbd{C-x .}}@: with point at the beginning of a line. |
| 597 | 591 | ||
| 598 | When a fill prefix is in effect, the fill commands remove the fill | 592 | When a fill prefix is in effect, the fill commands remove the fill |
| 599 | prefix from each line of the paragraph before filling and insert it on | 593 | prefix from each line of the paragraph before filling, and insert it |
| 600 | each line after filling. (The beginning of the first line of the | 594 | on each line after filling. (The beginning of the first line of the |
| 601 | paragraph is left unchanged, since often that is intentionally | 595 | paragraph is left unchanged, since often that is intentionally |
| 602 | different.) Auto Fill mode also inserts the fill prefix automatically | 596 | different.) Auto Fill mode also inserts the fill prefix automatically |
| 603 | when it makes a new line. The @kbd{C-o} command inserts the fill | 597 | when it makes a new line (@pxref{Auto Fill}). The @kbd{C-o} command |
| 604 | prefix on new lines it creates, when you use it at the beginning of a | 598 | inserts the fill prefix on new lines it creates, when you use it at |
| 605 | line (@pxref{Blank Lines}). Conversely, the command @kbd{M-^} deletes | 599 | the beginning of a line (@pxref{Blank Lines}). Conversely, the |
| 606 | the prefix (if it occurs) after the newline that it deletes | 600 | command @kbd{M-^} deletes the prefix (if it occurs) after the newline |
| 607 | (@pxref{Indentation}). | 601 | that it deletes (@pxref{Indentation}). |
| 608 | 602 | ||
| 609 | For example, if @code{fill-column} is 40 and you set the fill prefix | 603 | For example, if @code{fill-column} is 40 and you set the fill prefix |
| 610 | to @samp{;; }, then @kbd{M-q} in the following text | 604 | to @samp{;; }, then @kbd{M-q} in the following text |
| @@ -657,7 +651,8 @@ per-buffer variable; altering the variable affects only the current buffer, | |||
| 657 | but there is a default value which you can change as well. @xref{Locals}. | 651 | but there is a default value which you can change as well. @xref{Locals}. |
| 658 | 652 | ||
| 659 | The @code{indentation} text property provides another way to control | 653 | The @code{indentation} text property provides another way to control |
| 660 | the amount of indentation paragraphs receive. @xref{Format Indentation}. | 654 | the amount of indentation paragraphs receive. @xref{Enriched |
| 655 | Indentation}. | ||
| 661 | 656 | ||
| 662 | @node Adaptive Fill | 657 | @node Adaptive Fill |
| 663 | @subsection Adaptive Filling | 658 | @subsection Adaptive Filling |
| @@ -754,17 +749,16 @@ Convert region to upper case (@code{upcase-region}). | |||
| 754 | @findex downcase-word | 749 | @findex downcase-word |
| 755 | @findex upcase-word | 750 | @findex upcase-word |
| 756 | @findex capitalize-word | 751 | @findex capitalize-word |
| 757 | The word conversion commands are the most useful. @kbd{M-l} | 752 | @kbd{M-l} (@code{downcase-word}) converts the word after point to |
| 758 | (@code{downcase-word}) converts the word after point to lower case, moving | 753 | lower case, moving past it. Thus, repeating @kbd{M-l} converts |
| 759 | past it. Thus, repeating @kbd{M-l} converts successive words. | 754 | successive words. @kbd{M-u} (@code{upcase-word}) converts to all |
| 760 | @kbd{M-u} (@code{upcase-word}) converts to all capitals instead, while | 755 | capitals instead, while @kbd{M-c} (@code{capitalize-word}) puts the |
| 761 | @kbd{M-c} (@code{capitalize-word}) puts the first letter of the word | 756 | first letter of the word into upper case and the rest into lower case. |
| 762 | into upper case and the rest into lower case. All these commands convert | 757 | All these commands convert several words at once if given an argument. |
| 763 | several words at once if given an argument. They are especially convenient | 758 | They are especially convenient for converting a large amount of text |
| 764 | for converting a large amount of text from all upper case to mixed case, | 759 | from all upper case to mixed case, because you can move through the |
| 765 | because you can move through the text using @kbd{M-l}, @kbd{M-u} or | 760 | text using @kbd{M-l}, @kbd{M-u} or @kbd{M-c} on each word as |
| 766 | @kbd{M-c} on each word as appropriate, occasionally using @kbd{M-f} instead | 761 | appropriate, occasionally using @kbd{M-f} instead to skip a word. |
| 767 | to skip a word. | ||
| 768 | 762 | ||
| 769 | When given a negative argument, the word case conversion commands apply | 763 | When given a negative argument, the word case conversion commands apply |
| 770 | to the appropriate number of words before point, but do not move point. | 764 | to the appropriate number of words before point, but do not move point. |
| @@ -798,9 +792,10 @@ enable the command, which means it will not ask for confirmation again. | |||
| 798 | @cindex mode, Text | 792 | @cindex mode, Text |
| 799 | @findex text-mode | 793 | @findex text-mode |
| 800 | 794 | ||
| 801 | When you edit files of text in a human language, it's more convenient | 795 | Text mode is a major mode for editing files of text in a human |
| 802 | to use Text mode rather than Fundamental mode. To enter Text mode, type | 796 | language. Files which have names ending in the extension @file{.txt} |
| 803 | @kbd{M-x text-mode}. | 797 | are usually opened in Text mode (@pxref{Choosing Modes}). To |
| 798 | explicitly switch to Text mode, type @kbd{M-x text-mode}. | ||
| 804 | 799 | ||
| 805 | In Text mode, only blank lines and page delimiters separate | 800 | In Text mode, only blank lines and page delimiters separate |
| 806 | paragraphs. As a result, paragraphs can be indented, and adaptive | 801 | paragraphs. As a result, paragraphs can be indented, and adaptive |
| @@ -808,46 +803,49 @@ filling determines what indentation to use when filling a paragraph. | |||
| 808 | @xref{Adaptive Fill}. | 803 | @xref{Adaptive Fill}. |
| 809 | 804 | ||
| 810 | @kindex TAB @r{(Text mode)} | 805 | @kindex TAB @r{(Text mode)} |
| 811 | Text mode defines @key{TAB} to run @code{indent-relative} | 806 | In Text mode, the @key{TAB} (@code{indent-for-tab-command}) command |
| 812 | (@pxref{Indentation}), so that you can conveniently indent a line like | 807 | usually inserts whitespace up to the next tab stop, instead of |
| 813 | the previous line. | 808 | indenting the current line. @xref{Indentation}, for details. |
| 814 | 809 | ||
| 815 | Text mode turns off the features concerned with comments except when | 810 | Text mode turns off the features concerned with comments except when |
| 816 | you explicitly invoke them. It changes the syntax table so that | 811 | you explicitly invoke them. It changes the syntax table so that |
| 817 | single-quotes are considered part of words. However, if a word starts | 812 | single-quotes are considered part of words (e.g.@: @samp{don't} is |
| 818 | with single-quotes, these are treated as a prefix for purposes such as | 813 | considered one word). However, if a word starts with a single-quote, |
| 819 | capitalization. That is, @kbd{M-c} will convert @samp{'hello'} into | 814 | it is treated as a prefix for the purposes of capitalization |
| 820 | @samp{'Hello'}, as expected. | 815 | (e.g.@: @kbd{M-c} converts @samp{'hello'} into @samp{'Hello'}, as |
| 816 | expected). | ||
| 821 | 817 | ||
| 822 | @cindex Paragraph-Indent Text mode | 818 | @cindex Paragraph-Indent Text mode |
| 823 | @cindex mode, Paragraph-Indent Text | 819 | @cindex mode, Paragraph-Indent Text |
| 824 | @findex paragraph-indent-text-mode | 820 | @findex paragraph-indent-text-mode |
| 825 | @findex paragraph-indent-minor-mode | 821 | @findex paragraph-indent-minor-mode |
| 826 | If you indent the first lines of paragraphs, then you should use | 822 | If you indent the first lines of paragraphs, then you should use |
| 827 | Paragraph-Indent Text mode rather than Text mode. In this mode, you | 823 | Paragraph-Indent Text mode (@kbd{M-x paragraph-indent-text-mode}) |
| 828 | do not need to have blank lines between paragraphs, because the | 824 | rather than Text mode. In that mode, you do not need to have blank |
| 829 | first-line indentation is sufficient to start a paragraph; however | 825 | lines between paragraphs, because the first-line indentation is |
| 830 | paragraphs in which every line is indented are not supported. Use | 826 | sufficient to start a paragraph; however paragraphs in which every |
| 831 | @kbd{M-x paragraph-indent-text-mode} to enter this mode. Use @kbd{M-x | 827 | line is indented are not supported. Use @kbd{M-x |
| 832 | paragraph-indent-minor-mode} to enable an equivalent minor mode in | 828 | paragraph-indent-minor-mode} to enable an equivalent minor mode for |
| 833 | situations where you can't change the major mode---in mail | 829 | situations where you shouldn't change the major mode---in mail |
| 834 | composition, for instance. | 830 | composition, for instance. |
| 835 | 831 | ||
| 836 | @kindex M-TAB @r{(Text mode)} | 832 | @kindex M-TAB @r{(Text mode)} |
| 837 | Text mode, and all the modes based on it, define @kbd{M-@key{TAB}} | 833 | Text mode binds @kbd{M-@key{TAB}} to @code{ispell-complete-word}. |
| 838 | as the command @code{ispell-complete-word}, which performs completion | 834 | This command performs completion of the partial word in the buffer |
| 839 | of the partial word in the buffer before point, using the spelling | 835 | before point, using the spelling dictionary as the space of possible |
| 840 | dictionary as the space of possible words. @xref{Spelling}. If your | 836 | words. @xref{Spelling}. If your window manager defines |
| 841 | window manager defines @kbd{M-@key{TAB}} to switch windows, you can | 837 | @kbd{M-@key{TAB}} to switch windows, you can type @kbd{@key{ESC} |
| 842 | type @kbd{@key{ESC} @key{TAB}} or @kbd{C-M-i}. | 838 | @key{TAB}} or @kbd{C-M-i} instead. |
| 843 | 839 | ||
| 844 | @vindex text-mode-hook | 840 | @vindex text-mode-hook |
| 845 | Entering Text mode runs the hook @code{text-mode-hook}. Other major | 841 | Entering Text mode runs the mode hook @code{text-mode-hook} |
| 846 | modes related to Text mode also run this hook, followed by hooks of | 842 | (@pxref{Major Modes}). |
| 847 | their own; this includes Paragraph-Indent Text mode, Nroff mode, | 843 | |
| 848 | @TeX{} mode, Outline mode, and Message mode. Hook functions on | 844 | The following sections describe several major modes that are |
| 849 | @code{text-mode-hook} can look at the value of @code{major-mode} to | 845 | @dfn{derived} from Text mode. These derivatives share most of the |
| 850 | see which of these modes is actually being entered. @xref{Hooks}. | 846 | features of Text mode described above. In particular, derivatives of |
| 847 | Text mode run @code{text-mode-hook} prior to running their own mode | ||
| 848 | hooks. | ||
| 851 | 849 | ||
| 852 | @node Outline Mode | 850 | @node Outline Mode |
| 853 | @section Outline Mode | 851 | @section Outline Mode |
| @@ -858,29 +856,34 @@ see which of these modes is actually being entered. @xref{Hooks}. | |||
| 858 | @findex outline-mode | 856 | @findex outline-mode |
| 859 | @findex outline-minor-mode | 857 | @findex outline-minor-mode |
| 860 | @vindex outline-minor-mode-prefix | 858 | @vindex outline-minor-mode-prefix |
| 861 | Outline mode is a major mode much like Text mode but intended for | 859 | @vindex outline-mode-hook |
| 862 | editing outlines. It allows you to make parts of the text temporarily | 860 | Outline mode is a major mode derived from Text mode, which is |
| 863 | invisible so that you can see the outline structure. Type @kbd{M-x | 861 | specialized for editing outlines. It provides commands to navigate |
| 864 | outline-mode} to switch to Outline mode as the major mode of the current | 862 | between entries in the outline structure, and commands to make parts |
| 865 | buffer. | 863 | of a buffer temporarily invisible, so that the outline structure may |
| 866 | 864 | be more easily viewed. Type @kbd{M-x outline-mode} to switch to | |
| 867 | When Outline mode makes a line invisible, the line does not appear | 865 | Outline mode. Entering Outline mode runs the hook |
| 868 | on the screen. The screen appears exactly as if the invisible line | 866 | @code{text-mode-hook} followed by the hook @code{outline-mode-hook} |
| 869 | were deleted, except that an ellipsis (three periods in a row) appears | 867 | (@pxref{Hooks}). |
| 870 | at the end of the previous visible line. (Multiple consecutive | 868 | |
| 871 | invisible lines produce just one ellipsis.) | 869 | When you use an Outline mode command to make a line invisible |
| 870 | (@pxref{Outline Visibility}), the line disappears from the screen. An | ||
| 871 | ellipsis (three periods in a row) is displayed at the end of the | ||
| 872 | previous visible line, to indicate the hidden text. Multiple | ||
| 873 | consecutive invisible lines produce just one ellipsis. | ||
| 872 | 874 | ||
| 873 | Editing commands that operate on lines, such as @kbd{C-n} and | 875 | Editing commands that operate on lines, such as @kbd{C-n} and |
| 874 | @kbd{C-p}, treat the text of the invisible line as part of the previous | 876 | @kbd{C-p}, treat the text of the invisible line as part of the |
| 875 | visible line. Killing the ellipsis at the end of a visible line | 877 | previous visible line. Killing the ellipsis at the end of a visible |
| 876 | really kills all the following invisible lines. | 878 | line really kills all the following invisible text associated with the |
| 877 | 879 | ellipsis. | |
| 878 | Outline minor mode provides the same commands as the major mode, | 880 | |
| 879 | Outline mode, but you can use it in conjunction with other major modes. | 881 | Outline minor mode is a buffer-local minor mode which provides the |
| 880 | Type @kbd{M-x outline-minor-mode} to enable the Outline minor mode in | 882 | same commands as the major mode, Outline mode, but can be used in |
| 881 | the current buffer. You can also specify this in the text of a file, | 883 | conjunction with other major modes. You can type @kbd{M-x |
| 882 | with a file local variable of the form @samp{mode: outline-minor} | 884 | outline-minor-mode} to toggle Outline minor mode in the current |
| 883 | (@pxref{File Variables}). | 885 | buffer, or use a file-local variable setting to enable it in a |
| 886 | specific file (@pxref{File Variables}). | ||
| 884 | 887 | ||
| 885 | @kindex C-c @@ @r{(Outline minor mode)} | 888 | @kindex C-c @@ @r{(Outline minor mode)} |
| 886 | The major mode, Outline mode, provides special key bindings on the | 889 | The major mode, Outline mode, provides special key bindings on the |
| @@ -889,17 +892,12 @@ with a file local variable of the form @samp{mode: outline-minor} | |||
| 889 | major mode's special commands. (The variable | 892 | major mode's special commands. (The variable |
| 890 | @code{outline-minor-mode-prefix} controls the prefix used.) | 893 | @code{outline-minor-mode-prefix} controls the prefix used.) |
| 891 | 894 | ||
| 892 | @vindex outline-mode-hook | ||
| 893 | Entering Outline mode runs the hook @code{text-mode-hook} followed by | ||
| 894 | the hook @code{outline-mode-hook} (@pxref{Hooks}). | ||
| 895 | |||
| 896 | @menu | 895 | @menu |
| 897 | * Format: Outline Format. What the text of an outline looks like. | 896 | * Outline Format:: What the text of an outline looks like. |
| 898 | * Motion: Outline Motion. Special commands for moving through | 897 | * Outline Motion:: Special commands for moving through outlines. |
| 899 | outlines. | 898 | * Outline Visibility:: Commands to control what is visible. |
| 900 | * Visibility: Outline Visibility. Commands to control what is visible. | 899 | * Outline Views:: Outlines and multiple views. |
| 901 | * Views: Outline Views. Outlines and multiple views. | 900 | * Foldout:: Folding means zooming in on outlines. |
| 902 | * Foldout:: Folding means zooming in on outlines. | ||
| 903 | @end menu | 901 | @end menu |
| 904 | 902 | ||
| 905 | @node Outline Format | 903 | @node Outline Format |
| @@ -909,13 +907,13 @@ the hook @code{outline-mode-hook} (@pxref{Hooks}). | |||
| 909 | @cindex body lines (Outline mode) | 907 | @cindex body lines (Outline mode) |
| 910 | Outline mode assumes that the lines in the buffer are of two types: | 908 | Outline mode assumes that the lines in the buffer are of two types: |
| 911 | @dfn{heading lines} and @dfn{body lines}. A heading line represents a | 909 | @dfn{heading lines} and @dfn{body lines}. A heading line represents a |
| 912 | topic in the outline. Heading lines start with one or more stars; the | 910 | topic in the outline. Heading lines start with one or more asterisk |
| 913 | number of stars determines the depth of the heading in the outline | 911 | (@samp{*}) characters; the number of asterisks determines the depth of |
| 914 | structure. Thus, a heading line with one star is a major topic; all the | 912 | the heading in the outline structure. Thus, a heading line with one |
| 915 | heading lines with two stars between it and the next one-star heading | 913 | @samp{*} is a major topic; all the heading lines with two @samp{*}s |
| 916 | are its subtopics; and so on. Any line that is not a heading line is a | 914 | between it and the next one-@samp{*} heading are its subtopics; and so |
| 917 | body line. Body lines belong with the preceding heading line. Here is | 915 | on. Any line that is not a heading line is a body line. Body lines |
| 918 | an example: | 916 | belong with the preceding heading line. Here is an example: |
| 919 | 917 | ||
| 920 | @example | 918 | @example |
| 921 | * Food | 919 | * Food |
| @@ -997,12 +995,10 @@ Move point up to a lower-level (more inclusive) visible heading line | |||
| 997 | @findex outline-previous-visible-heading | 995 | @findex outline-previous-visible-heading |
| 998 | @kindex C-c C-n @r{(Outline mode)} | 996 | @kindex C-c C-n @r{(Outline mode)} |
| 999 | @kindex C-c C-p @r{(Outline mode)} | 997 | @kindex C-c C-p @r{(Outline mode)} |
| 1000 | @kbd{C-c C-n} (@code{outline-next-visible-heading}) moves down to the next | 998 | @kbd{C-c C-n} (@code{outline-next-visible-heading}) moves down to |
| 1001 | heading line. @kbd{C-c C-p} (@code{outline-previous-visible-heading}) moves | 999 | the next heading line. @kbd{C-c C-p} |
| 1002 | similarly backward. Both accept numeric arguments as repeat counts. The | 1000 | (@code{outline-previous-visible-heading}) moves similarly backward. |
| 1003 | names emphasize that invisible headings are skipped, but this is not really | 1001 | Both accept numeric arguments as repeat counts. |
| 1004 | a special feature. All editing commands that look for lines ignore the | ||
| 1005 | invisible lines automatically. | ||
| 1006 | 1002 | ||
| 1007 | @findex outline-up-heading | 1003 | @findex outline-up-heading |
| 1008 | @findex outline-forward-same-level | 1004 | @findex outline-forward-same-level |
| @@ -1010,21 +1006,19 @@ invisible lines automatically. | |||
| 1010 | @kindex C-c C-f @r{(Outline mode)} | 1006 | @kindex C-c C-f @r{(Outline mode)} |
| 1011 | @kindex C-c C-b @r{(Outline mode)} | 1007 | @kindex C-c C-b @r{(Outline mode)} |
| 1012 | @kindex C-c C-u @r{(Outline mode)} | 1008 | @kindex C-c C-u @r{(Outline mode)} |
| 1013 | More powerful motion commands understand the level structure of headings. | 1009 | The commands @kbd{C-c C-f} (@code{outline-forward-same-level}) and |
| 1014 | @kbd{C-c C-f} (@code{outline-forward-same-level}) and | ||
| 1015 | @kbd{C-c C-b} (@code{outline-backward-same-level}) move from one | 1010 | @kbd{C-c C-b} (@code{outline-backward-same-level}) move from one |
| 1016 | heading line to another visible heading at the same depth in | 1011 | heading line to another visible heading at the same depth in the |
| 1017 | the outline. @kbd{C-c C-u} (@code{outline-up-heading}) moves | 1012 | outline. @kbd{C-c C-u} (@code{outline-up-heading}) moves backward to |
| 1018 | backward to another heading that is less deeply nested. | 1013 | another heading that is less deeply nested. |
| 1019 | 1014 | ||
| 1020 | @node Outline Visibility | 1015 | @node Outline Visibility |
| 1021 | @subsection Outline Visibility Commands | 1016 | @subsection Outline Visibility Commands |
| 1022 | 1017 | ||
| 1023 | The other special commands of outline mode are used to make lines visible | 1018 | Outline mode provides several commands for temporarily hiding or |
| 1024 | or invisible. Their names all start with @code{hide} or @code{show}. | 1019 | revealing parts of the buffer, based on the outline structure. These |
| 1025 | Most of them fall into pairs of opposites. They are not undoable; instead, | 1020 | commands are not undoable; their effects are simply not recorded by |
| 1026 | you can undo right past them. Making lines visible or invisible is simply | 1021 | the undo mechanism, so you can undo right past them (@pxref{Undo}). |
| 1027 | not recorded by the undo mechanism. | ||
| 1028 | 1022 | ||
| 1029 | Many of these commands act on the ``current'' heading line. If | 1023 | Many of these commands act on the ``current'' heading line. If |
| 1030 | point is on a heading line, that is the current heading line; if point | 1024 | point is on a heading line, that is the current heading line; if point |
| @@ -1068,72 +1062,64 @@ the headings leading up from there to the top level of the outline | |||
| 1068 | @findex show-entry | 1062 | @findex show-entry |
| 1069 | @kindex C-c C-c @r{(Outline mode)} | 1063 | @kindex C-c C-c @r{(Outline mode)} |
| 1070 | @kindex C-c C-e @r{(Outline mode)} | 1064 | @kindex C-c C-e @r{(Outline mode)} |
| 1071 | Two commands that are exact opposites are @kbd{C-c C-c} | 1065 | The simplest of these commands are @kbd{C-c C-c} |
| 1072 | (@code{hide-entry}) and @kbd{C-c C-e} (@code{show-entry}). They apply | 1066 | (@code{hide-entry}), which hides the body lines directly following the |
| 1073 | to the body lines directly following the current heading line. | 1067 | current heading line, and @kbd{C-c C-e} (@code{show-entry}), which |
| 1074 | Subheadings and their bodies are not affected. | 1068 | reveals them. Subheadings and their bodies are not affected. |
| 1075 | 1069 | ||
| 1076 | @findex hide-subtree | 1070 | @findex hide-subtree |
| 1077 | @findex show-subtree | 1071 | @findex show-subtree |
| 1078 | @kindex C-c C-s @r{(Outline mode)} | 1072 | @kindex C-c C-s @r{(Outline mode)} |
| 1079 | @kindex C-c C-d @r{(Outline mode)} | 1073 | @kindex C-c C-d @r{(Outline mode)} |
| 1080 | @cindex subtree (Outline mode) | 1074 | @cindex subtree (Outline mode) |
| 1081 | Two more powerful opposites are @kbd{C-c C-d} (@code{hide-subtree}) | 1075 | The commands @kbd{C-c C-d} (@code{hide-subtree}) and @kbd{C-c C-s} |
| 1082 | and @kbd{C-c C-s} (@code{show-subtree}). Both apply to the current | 1076 | (@code{show-subtree}) are more powerful. They apply to the current |
| 1083 | heading line's @dfn{subtree}: its body, all its subheadings, both | 1077 | heading line's @dfn{subtree}: its body, all of its subheadings, both |
| 1084 | direct and indirect, and all of their bodies. In other words, the | 1078 | direct and indirect, and all of their bodies. |
| 1085 | subtree contains everything following the current heading line, up to | ||
| 1086 | and not including the next heading of the same or higher rank. | ||
| 1087 | 1079 | ||
| 1088 | @findex hide-leaves | 1080 | @findex hide-leaves |
| 1089 | @findex show-branches | 1081 | @findex show-branches |
| 1082 | @findex show-children | ||
| 1090 | @kindex C-c C-l @r{(Outline mode)} | 1083 | @kindex C-c C-l @r{(Outline mode)} |
| 1091 | @kindex C-c C-k @r{(Outline mode)} | 1084 | @kindex C-c C-k @r{(Outline mode)} |
| 1092 | Intermediate between a visible subtree and an invisible one is having | ||
| 1093 | all the subheadings visible but none of the body. There are two | ||
| 1094 | commands for doing this, depending on whether you want to hide the | ||
| 1095 | bodies or make the subheadings visible. They are @kbd{C-c C-l} | ||
| 1096 | (@code{hide-leaves}) and @kbd{C-c C-k} (@code{show-branches}). | ||
| 1097 | |||
| 1098 | @kindex C-c C-i @r{(Outline mode)} | 1085 | @kindex C-c C-i @r{(Outline mode)} |
| 1099 | @findex show-children | 1086 | The command @kbd{C-c C-l} (@code{hide-leaves}) hides the body of the |
| 1100 | A little weaker than @code{show-branches} is @kbd{C-c C-i} | 1087 | current heading line as well as all the bodies in its subtree; the |
| 1101 | (@code{show-children}). It makes just the direct subheadings | 1088 | subheadings themselves are left visible. The command @kbd{C-c C-k} |
| 1102 | visible---those one level down. Deeper subheadings remain invisible, if | 1089 | (@code{show-branches}) reveals the subheadings, if they had previously |
| 1103 | they were invisible. | 1090 | been hidden (e.g.@: by @kbd{C-c C-d}). The command @kbd{C-c C-i} |
| 1091 | (@code{show-children}) is a weaker version of this; it reveals just | ||
| 1092 | the direct subheadings, i.e.@: those one level down. | ||
| 1093 | |||
| 1094 | @findex hide-other | ||
| 1095 | @kindex C-c C-o @r{(Outline mode)} | ||
| 1096 | The command @kbd{C-c C-o} (@code{hide-other}) hides everything | ||
| 1097 | except the entry that point is in, plus its parents (the headers | ||
| 1098 | leading up from there to top level in the outline) and the top level | ||
| 1099 | headings. | ||
| 1104 | 1100 | ||
| 1105 | @findex hide-body | 1101 | @findex hide-body |
| 1106 | @findex show-all | 1102 | @findex show-all |
| 1107 | @kindex C-c C-t @r{(Outline mode)} | 1103 | @kindex C-c C-t @r{(Outline mode)} |
| 1108 | @kindex C-c C-a @r{(Outline mode)} | 1104 | @kindex C-c C-a @r{(Outline mode)} |
| 1109 | Two commands have a blanket effect on the whole file. @kbd{C-c C-t} | ||
| 1110 | (@code{hide-body}) makes all body lines invisible, so that you see just | ||
| 1111 | the outline structure (as a special exception, it will not hide lines | ||
| 1112 | at the top of the file, preceding the first header line, even though | ||
| 1113 | these are technically body lines). @kbd{C-c C-a} (@code{show-all}) | ||
| 1114 | makes all lines visible. These commands can be thought of as a pair | ||
| 1115 | of opposites even though @kbd{C-c C-a} applies to more than just body | ||
| 1116 | lines. | ||
| 1117 | |||
| 1118 | @findex hide-sublevels | 1105 | @findex hide-sublevels |
| 1119 | @kindex C-c C-q @r{(Outline mode)} | 1106 | @kindex C-c C-q @r{(Outline mode)} |
| 1120 | The command @kbd{C-c C-q} (@code{hide-sublevels}) hides all but the | 1107 | The remaining commands affect the whole buffer. @kbd{C-c C-t} |
| 1121 | top level headings. With a numeric argument @var{n}, it hides everything | 1108 | (@code{hide-body}) makes all body lines invisible, so that you see |
| 1122 | except the top @var{n} levels of heading lines. | 1109 | just the outline structure (as a special exception, it will not hide |
| 1123 | 1110 | lines at the top of the file, preceding the first header line, even | |
| 1124 | @findex hide-other | 1111 | though these are technically body lines). @kbd{C-c C-a} |
| 1125 | @kindex C-c C-o @r{(Outline mode)} | 1112 | (@code{show-all}) makes all lines visible. @kbd{C-c C-q} |
| 1126 | The command @kbd{C-c C-o} (@code{hide-other}) hides everything except | 1113 | (@code{hide-sublevels}) hides all but the top level headings; with a |
| 1127 | the heading and body text that point is in, plus its parents (the headers | 1114 | numeric argument @var{n}, it hides everything except the top @var{n} |
| 1128 | leading up from there to top level in the outline) and the top level | 1115 | levels of heading lines. |
| 1129 | headings. | ||
| 1130 | 1116 | ||
| 1131 | @findex reveal-mode | 1117 | @findex reveal-mode |
| 1132 | When incremental search finds text that is hidden by Outline mode, | 1118 | When incremental search finds text that is hidden by Outline mode, |
| 1133 | it makes that part of the buffer visible. If you exit the search | 1119 | it makes that part of the buffer visible. If you exit the search at |
| 1134 | at that position, the text remains visible. You can also | 1120 | that position, the text remains visible. You can also automatically |
| 1135 | automatically make text visible as you navigate in it by using | 1121 | make text visible as you navigate in it by using Reveal mode (@kbd{M-x |
| 1136 | @kbd{M-x reveal-mode}. | 1122 | reveal-mode}), a buffer-local minor mode. |
| 1137 | 1123 | ||
| 1138 | @node Outline Views | 1124 | @node Outline Views |
| 1139 | @subsection Viewing One Outline in Multiple Views | 1125 | @subsection Viewing One Outline in Multiple Views |
| @@ -1253,7 +1239,7 @@ it in order for this to take effect. | |||
| 1253 | 1239 | ||
| 1254 | To use the Foldout package, you can type @kbd{M-x load-library | 1240 | To use the Foldout package, you can type @kbd{M-x load-library |
| 1255 | @key{RET} foldout @key{RET}}; or you can arrange for to do that | 1241 | @key{RET} foldout @key{RET}}; or you can arrange for to do that |
| 1256 | automatically by putting this in your @file{.emacs} file: | 1242 | automatically by putting this in your init file (@pxref{Init File}): |
| 1257 | 1243 | ||
| 1258 | @example | 1244 | @example |
| 1259 | (eval-after-load "outline" '(require 'foldout)) | 1245 | (eval-after-load "outline" '(require 'foldout)) |
| @@ -1300,18 +1286,48 @@ Emacs does not guess right, you can select the correct variant of | |||
| 1300 | @TeX{} mode using the command @kbd{M-x plain-tex-mode}, @kbd{M-x | 1286 | @TeX{} mode using the command @kbd{M-x plain-tex-mode}, @kbd{M-x |
| 1301 | latex-mode}, @kbd{M-x slitex-mode}, or @kbd{doctex-mode}. | 1287 | latex-mode}, @kbd{M-x slitex-mode}, or @kbd{doctex-mode}. |
| 1302 | 1288 | ||
| 1303 | Emacs also provides Bib@TeX{} mode, a major mode for editing | 1289 | The following sections document the features of @TeX{} mode and its |
| 1304 | Bib@TeX{} files. Bib@TeX{} is a tool for storing and formatting | 1290 | variants. There are several other @TeX{}-related Emacs packages, |
| 1305 | bibliographic references, which is commonly used together with | 1291 | which are not documented in this manual: |
| 1306 | La@TeX{}. In addition, the Ref@TeX{} package provides a minor mode | 1292 | |
| 1307 | which can be used in conjunction with La@TeX{} mode to manage | 1293 | @itemize @bullet |
| 1308 | bibliographic references. @inforef{Top,, reftex}. | 1294 | @item |
| 1295 | Bib@TeX{} mode is a major mode for Bib@TeX{} files, which are commonly | ||
| 1296 | used for keeping bibliographic references for La@TeX{} documents. For | ||
| 1297 | more information, see the documentation string for the command | ||
| 1298 | @code{bibtex-mode}. | ||
| 1299 | |||
| 1300 | @item | ||
| 1301 | The Ref@TeX{} package provides a minor mode which can be used in | ||
| 1302 | conjunction with La@TeX{} mode to manage bibliographic references. | ||
| 1303 | @ifinfo | ||
| 1304 | @xref{Top,The Ref@TeX{} Manual,,reftex}. | ||
| 1305 | @end ifinfo | ||
| 1306 | @ifnotinfo | ||
| 1307 | For more information, see the Ref@TeX{} Info manual, which is | ||
| 1308 | distributed with Emacs. | ||
| 1309 | @end ifnotinfo | ||
| 1310 | |||
| 1311 | @item | ||
| 1312 | The AUC@TeX{} package provides more advanced features for editing | ||
| 1313 | @TeX{} and its related formats, including the ability to preview | ||
| 1314 | @TeX{} equations within Emacs buffers. Unlike Bib@TeX{} mode and the | ||
| 1315 | Ref@TeX{} package, AUC@TeX{} is not distributed with Emacs by default. | ||
| 1316 | It can be downloaded via the Package Menu (@pxref{Packages}); once | ||
| 1317 | installed, see | ||
| 1318 | @ifinfo | ||
| 1319 | @ref{Top,The AUC@TeX{} Manual,,auctex}. | ||
| 1320 | @end ifinfo | ||
| 1321 | @ifnotinfo | ||
| 1322 | the AUC@TeX{} manual, which is included with the package. | ||
| 1323 | @end ifnotinfo | ||
| 1324 | @end itemize | ||
| 1309 | 1325 | ||
| 1310 | @menu | 1326 | @menu |
| 1311 | * Editing: TeX Editing. Special commands for editing in TeX mode. | 1327 | * TeX Editing:: Special commands for editing in TeX mode. |
| 1312 | * LaTeX: LaTeX Editing. Additional commands for LaTeX input files. | 1328 | * LaTeX Editing:: Additional commands for LaTeX input files. |
| 1313 | * Printing: TeX Print. Commands for printing part of a file with TeX. | 1329 | * TeX Print:: Commands for printing part of a file with TeX. |
| 1314 | * Misc: TeX Misc. Customization of TeX mode, and related features. | 1330 | * TeX Misc:: Customization of TeX mode, and related features. |
| 1315 | @end menu | 1331 | @end menu |
| 1316 | 1332 | ||
| 1317 | @node TeX Editing | 1333 | @node TeX Editing |
| @@ -1336,12 +1352,10 @@ Move forward past the next unmatched close brace (@code{up-list}). | |||
| 1336 | @findex tex-insert-quote | 1352 | @findex tex-insert-quote |
| 1337 | @kindex " @r{(@TeX{} mode)} | 1353 | @kindex " @r{(@TeX{} mode)} |
| 1338 | In @TeX{}, the character @samp{"} is not normally used; instead, | 1354 | In @TeX{}, the character @samp{"} is not normally used; instead, |
| 1339 | quotations begin with @samp{``} and end with @samp{''}. For | 1355 | quotations begin with @samp{``} and end with @samp{''}. @TeX{} mode |
| 1340 | convenience, @TeX{} mode overrides the normal meaning of the key | 1356 | therefore binds the @kbd{"} key to the @code{tex-insert-quote} |
| 1341 | @kbd{"} with a command that inserts a pair of single-quotes or | 1357 | command. This inserts @samp{``} after whitespace or an open brace, |
| 1342 | backquotes (@code{tex-insert-quote}). To be precise, it inserts | 1358 | @samp{"} after a backslash, and @samp{''} after any other character. |
| 1343 | @samp{``} after whitespace or an open brace, @samp{"} after a | ||
| 1344 | backslash, and @samp{''} after any other character. | ||
| 1345 | 1359 | ||
| 1346 | As a special exception, if you type @kbd{"} when the text before | 1360 | As a special exception, if you type @kbd{"} when the text before |
| 1347 | point is either @samp{``} or @samp{''}, Emacs replaces that preceding | 1361 | point is either @samp{``} or @samp{''}, Emacs replaces that preceding |
| @@ -1349,9 +1363,6 @@ text with a single @samp{"} character. You can therefore type | |||
| 1349 | @kbd{""} to insert @samp{"}, should you ever need to do so. (You can | 1363 | @kbd{""} to insert @samp{"}, should you ever need to do so. (You can |
| 1350 | also use @kbd{C-q "} to insert this character.) | 1364 | also use @kbd{C-q "} to insert this character.) |
| 1351 | 1365 | ||
| 1352 | To disable the @kbd{"} expansion feature, eliminate that binding in | ||
| 1353 | the local map (@pxref{Key Bindings}). | ||
| 1354 | |||
| 1355 | In @TeX{} mode, @samp{$} has a special syntax code which attempts to | 1366 | In @TeX{} mode, @samp{$} has a special syntax code which attempts to |
| 1356 | understand the way @TeX{} math mode delimiters match. When you insert a | 1367 | understand the way @TeX{} math mode delimiters match. When you insert a |
| 1357 | @samp{$} that is meant to exit math mode, the position of the matching | 1368 | @samp{$} that is meant to exit math mode, the position of the matching |
| @@ -1376,13 +1387,14 @@ text that belongs inside. Afterward, use the command @kbd{C-c @}} | |||
| 1376 | @findex tex-validate-region | 1387 | @findex tex-validate-region |
| 1377 | @findex tex-terminate-paragraph | 1388 | @findex tex-terminate-paragraph |
| 1378 | @kindex C-j @r{(@TeX{} mode)} | 1389 | @kindex C-j @r{(@TeX{} mode)} |
| 1379 | There are two commands for checking the matching of braces. @kbd{C-j} | 1390 | There are two commands for checking the matching of braces. |
| 1380 | (@code{tex-terminate-paragraph}) checks the paragraph before point, and | 1391 | @kbd{C-j} (@code{tex-terminate-paragraph}) checks the paragraph before |
| 1381 | inserts two newlines to start a new paragraph. It outputs a message in | 1392 | point, and inserts two newlines to start a new paragraph. It outputs |
| 1382 | the echo area if any mismatch is found. @kbd{M-x tex-validate-region} | 1393 | a message in the echo area if any mismatch is found. @kbd{M-x |
| 1383 | checks a region, paragraph by paragraph. The errors are listed in the | 1394 | tex-validate-region} checks a region, paragraph by paragraph. The |
| 1384 | @samp{*Occur*} buffer, and you can use @kbd{C-c C-c} or @kbd{Mouse-2} in | 1395 | errors are listed in an @samp{*Occur*} buffer; you can use the usual |
| 1385 | that buffer to go to a particular mismatch. | 1396 | Occur mode commands in that buffer, such as @kbd{C-c C-c}, to visit a |
| 1397 | particular mismatch (@pxref{Other Repeating Search}). | ||
| 1386 | 1398 | ||
| 1387 | Note that Emacs commands count square brackets and parentheses in | 1399 | Note that Emacs commands count square brackets and parentheses in |
| 1388 | @TeX{} mode, not just braces. This is not strictly correct for the | 1400 | @TeX{} mode, not just braces. This is not strictly correct for the |
| @@ -1394,8 +1406,8 @@ to work with them. | |||
| 1394 | @node LaTeX Editing | 1406 | @node LaTeX Editing |
| 1395 | @subsection La@TeX{} Editing Commands | 1407 | @subsection La@TeX{} Editing Commands |
| 1396 | 1408 | ||
| 1397 | La@TeX{} mode (and its obsolete variant, Sli@TeX{} mode) provide a | 1409 | La@TeX{} mode provides a few extra features not applicable to plain |
| 1398 | few extra features not applicable to plain @TeX{}: | 1410 | @TeX{}: |
| 1399 | 1411 | ||
| 1400 | @table @kbd | 1412 | @table @kbd |
| 1401 | @item C-c C-o | 1413 | @item C-c C-o |
| @@ -1408,60 +1420,59 @@ Close the innermost La@TeX{} block not yet closed | |||
| 1408 | 1420 | ||
| 1409 | @findex tex-latex-block | 1421 | @findex tex-latex-block |
| 1410 | @kindex C-c C-o @r{(La@TeX{} mode)} | 1422 | @kindex C-c C-o @r{(La@TeX{} mode)} |
| 1411 | @vindex latex-block-names | 1423 | In La@TeX{} input, @samp{\begin} and @samp{\end} tags are used to |
| 1412 | In La@TeX{} input, @samp{\begin} and @samp{\end} commands are used to | 1424 | group blocks of text. To insert a block, type @kbd{C-c C-o} |
| 1413 | group blocks of text. To insert a @samp{\begin} and a matching | 1425 | (@code{tex-latex-block}). This prompts for a block type, and inserts |
| 1414 | @samp{\end} (on a new line following the @samp{\begin}), use @kbd{C-c | 1426 | the appropriate matching @samp{\begin} and @samp{\end} tags, leaving a |
| 1415 | C-o} (@code{tex-latex-block}). A blank line is inserted between the | 1427 | blank line between the two and moving point there. |
| 1416 | two, and point is left there. You can use completion when you enter the | ||
| 1417 | block type; to specify additional block type names beyond the standard | ||
| 1418 | list, set the variable @code{latex-block-names}. For example, here's | ||
| 1419 | how to add @samp{theorem}, @samp{corollary}, and @samp{proof}: | ||
| 1420 | 1428 | ||
| 1421 | @example | 1429 | @vindex latex-block-names |
| 1422 | (setq latex-block-names '("theorem" "corollary" "proof")) | 1430 | When entering the block type argument to @kbd{C-c C-o}, you can use |
| 1423 | @end example | 1431 | the usual completion commands (@pxref{Completion}). The default |
| 1432 | completion list contains the standard La@TeX{} block types. If you | ||
| 1433 | want additional block types for completion, customize the list | ||
| 1434 | variable @code{latex-block-names}. | ||
| 1424 | 1435 | ||
| 1425 | @findex tex-close-latex-block | 1436 | @findex tex-close-latex-block |
| 1426 | @kindex C-c C-e @r{(La@TeX{} mode)} | 1437 | @kindex C-c C-e @r{(La@TeX{} mode)} |
| 1427 | In La@TeX{} input, @samp{\begin} and @samp{\end} commands must | 1438 | In La@TeX{} input, @samp{\begin} and @samp{\end} tags must balance. |
| 1428 | balance. You can use @kbd{C-c C-e} (@code{tex-close-latex-block}) to | 1439 | You can use @kbd{C-c C-e} (@code{tex-close-latex-block}) to insert an |
| 1429 | insert automatically a matching @samp{\end} to match the last unmatched | 1440 | @samp{\end} tag which matches the last unmatched @samp{\begin}. It |
| 1430 | @samp{\begin}. It indents the @samp{\end} to match the corresponding | 1441 | also indents the @samp{\end} to match the corresponding @samp{\begin}, |
| 1431 | @samp{\begin}. It inserts a newline after @samp{\end} if point is at | 1442 | and inserts a newline after the @samp{\end} tag if point is at the |
| 1432 | the beginning of a line. | 1443 | beginning of a line. |
| 1433 | 1444 | ||
| 1434 | @node TeX Print | 1445 | @node TeX Print |
| 1435 | @subsection @TeX{} Printing Commands | 1446 | @subsection @TeX{} Printing Commands |
| 1436 | 1447 | ||
| 1437 | You can invoke @TeX{} as an inferior of Emacs on either the entire | 1448 | You can invoke @TeX{} as an subprocess of Emacs, supplying either |
| 1438 | contents of the buffer or just a region at a time. Running @TeX{} in | 1449 | the entire contents of the buffer or just part of it (e.g.@: one |
| 1439 | this way on just one chapter is a good way to see what your changes | 1450 | chapter of a larger document). |
| 1440 | look like without taking the time to format the entire file. | ||
| 1441 | 1451 | ||
| 1442 | @table @kbd | 1452 | @table @kbd |
| 1453 | @item C-c C-b | ||
| 1454 | Invoke @TeX{} on the entire current buffer (@code{tex-buffer}). | ||
| 1443 | @item C-c C-r | 1455 | @item C-c C-r |
| 1444 | Invoke @TeX{} on the current region, together with the buffer's header | 1456 | Invoke @TeX{} on the current region, together with the buffer's header |
| 1445 | (@code{tex-region}). | 1457 | (@code{tex-region}). |
| 1446 | @item C-c C-b | ||
| 1447 | Invoke @TeX{} on the entire current buffer (@code{tex-buffer}). | ||
| 1448 | @item C-c @key{TAB} | ||
| 1449 | Invoke Bib@TeX{} on the current file (@code{tex-bibtex-file}). | ||
| 1450 | @item C-c C-f | 1458 | @item C-c C-f |
| 1451 | Invoke @TeX{} on the current file (@code{tex-file}). | 1459 | Invoke @TeX{} on the current file (@code{tex-file}). |
| 1452 | @item C-c C-l | 1460 | |
| 1453 | Recenter the window showing output from the inferior @TeX{} so that | ||
| 1454 | the last line can be seen (@code{tex-recenter-output-buffer}). | ||
| 1455 | @item C-c C-k | ||
| 1456 | Kill the @TeX{} subprocess (@code{tex-kill-job}). | ||
| 1457 | @item C-c C-p | ||
| 1458 | Print the output from the last @kbd{C-c C-r}, @kbd{C-c C-b}, or @kbd{C-c | ||
| 1459 | C-f} command (@code{tex-print}). | ||
| 1460 | @item C-c C-v | 1461 | @item C-c C-v |
| 1461 | Preview the output from the last @kbd{C-c C-r}, @kbd{C-c C-b}, or @kbd{C-c | 1462 | Preview the output from the last @kbd{C-c C-r}, @kbd{C-c C-b}, or @kbd{C-c |
| 1462 | C-f} command (@code{tex-view}). | 1463 | C-f} command (@code{tex-view}). |
| 1463 | @item C-c C-q | 1464 | |
| 1464 | Show the printer queue (@code{tex-show-print-queue}). | 1465 | @item C-c C-p |
| 1466 | Print the output from the last @kbd{C-c C-b}, @kbd{C-c C-r}, or | ||
| 1467 | @kbd{C-c C-f} command (@code{tex-print}). | ||
| 1468 | |||
| 1469 | @item C-c @key{TAB} | ||
| 1470 | Invoke Bib@TeX{} on the current file (@code{tex-bibtex-file}). | ||
| 1471 | @item C-c C-l | ||
| 1472 | Recenter the window showing output from @TeX{} so that the last line | ||
| 1473 | can be seen (@code{tex-recenter-output-buffer}). | ||
| 1474 | @item C-c C-k | ||
| 1475 | Kill the @TeX{} subprocess (@code{tex-kill-job}). | ||
| 1465 | @item C-c C-c | 1476 | @item C-c C-c |
| 1466 | Invoke some other compilation command on the entire current buffer | 1477 | Invoke some other compilation command on the entire current buffer |
| 1467 | (@code{tex-compile}). | 1478 | (@code{tex-compile}). |
| @@ -1469,49 +1480,51 @@ Invoke some other compilation command on the entire current buffer | |||
| 1469 | 1480 | ||
| 1470 | @findex tex-buffer | 1481 | @findex tex-buffer |
| 1471 | @kindex C-c C-b @r{(@TeX{} mode)} | 1482 | @kindex C-c C-b @r{(@TeX{} mode)} |
| 1472 | @findex tex-print | ||
| 1473 | @kindex C-c C-p @r{(@TeX{} mode)} | ||
| 1474 | @findex tex-view | 1483 | @findex tex-view |
| 1475 | @kindex C-c C-v @r{(@TeX{} mode)} | 1484 | @kindex C-c C-v @r{(@TeX{} mode)} |
| 1476 | @findex tex-show-print-queue | 1485 | @findex tex-print |
| 1477 | @kindex C-c C-q @r{(@TeX{} mode)} | 1486 | @kindex C-c C-p @r{(@TeX{} mode)} |
| 1478 | You can pass the current buffer through an inferior @TeX{} by means of | 1487 | To pass the current buffer through @TeX{}, type @kbd{C-c C-b} |
| 1479 | @kbd{C-c C-b} (@code{tex-buffer}). The formatted output appears in a | 1488 | (@code{tex-buffer}). The formatted output goes in a temporary file, |
| 1480 | temporary file; to print it, type @kbd{C-c C-p} (@code{tex-print}). | 1489 | normally a @file{.dvi} file. Afterwards, you can type @kbd{C-c C-v} |
| 1481 | Afterward, you can use @kbd{C-c C-q} (@code{tex-show-print-queue}) to | 1490 | (@code{tex-view}) to launch an external program, such as |
| 1482 | view the progress of your output towards being printed. If your terminal | 1491 | @command{xdvi}, to view this output file. You can also type @kbd{C-c |
| 1483 | has the ability to display @TeX{} output files, you can preview the | 1492 | C-p} (@code{tex-print}) to print a hardcopy of the output file. |
| 1484 | output on the terminal with @kbd{C-c C-v} (@code{tex-view}). | ||
| 1485 | 1493 | ||
| 1486 | @cindex @env{TEXINPUTS} environment variable | 1494 | @cindex @env{TEXINPUTS} environment variable |
| 1487 | @vindex tex-directory | 1495 | @vindex tex-directory |
| 1488 | You can specify the directory to use for running @TeX{} by setting the | 1496 | By default, @kbd{C-c C-b} runs @TeX{} in the current directory. The |
| 1489 | variable @code{tex-directory}. @code{"."} is the default value. If | 1497 | output of @TeX{} also goes in this directory. To run @TeX{} in a |
| 1490 | your environment variable @env{TEXINPUTS} contains relative directory | 1498 | different directory, change the variable @code{tex-directory} to the |
| 1491 | names, or if your files contains @samp{\input} commands with relative | 1499 | desired directory name. If your environment variable @env{TEXINPUTS} |
| 1492 | file names, then @code{tex-directory} @emph{must} be @code{"."} or you | 1500 | contains relative directory names, or if your files contains |
| 1493 | will get the wrong results. Otherwise, it is safe to specify some other | 1501 | @samp{\input} commands with relative file names, then |
| 1494 | directory, such as @code{"/tmp"}. | 1502 | @code{tex-directory} @emph{must} be @code{"."} or you will get the |
| 1503 | wrong results. Otherwise, it is safe to specify some other directory, | ||
| 1504 | such as @code{"/tmp"}. | ||
| 1495 | 1505 | ||
| 1496 | @vindex tex-run-command | 1506 | @vindex tex-run-command |
| 1497 | @vindex latex-run-command | 1507 | @vindex latex-run-command |
| 1498 | @vindex slitex-run-command | ||
| 1499 | @vindex tex-dvi-print-command | ||
| 1500 | @vindex tex-dvi-view-command | 1508 | @vindex tex-dvi-view-command |
| 1501 | @vindex tex-show-queue-command | 1509 | @vindex tex-dvi-print-command |
| 1502 | If you want to specify which shell commands are used in the inferior @TeX{}, | 1510 | The buffer's @TeX{} variant determines what shell command @kbd{C-c |
| 1503 | you can do so by setting the values of the variables @code{tex-run-command}, | 1511 | C-b} actually runs. In Plain @TeX{} mode, it is specified by the |
| 1504 | @code{latex-run-command}, @code{slitex-run-command}, | 1512 | variable @code{tex-run-command}, which defaults to @code{"tex"}. In |
| 1505 | @code{tex-dvi-print-command}, @code{tex-dvi-view-command}, and | 1513 | La@TeX{} mode, it is specified by @code{latex-run-command}, which |
| 1506 | @code{tex-show-queue-command}. The default values may | 1514 | defaults to @code{"latex"}. The shell command that @kbd{C-c C-v} runs |
| 1507 | (or may not) be appropriate for your system. | 1515 | to view the @file{.dvi} output is determined by the variable |
| 1508 | 1516 | @code{tex-dvi-view-command}, regardless of the @TeX{} variant. The | |
| 1509 | Normally, the file name given to these commands comes at the end of | 1517 | shell command that @kbd{C-c C-p} runs to print the output is |
| 1510 | the command string; for example, @samp{latex @var{filename}}. In some | 1518 | determined by the variable @code{tex-dvi-print-command}. |
| 1511 | cases, however, the file name needs to be embedded in the command; an | 1519 | |
| 1512 | example is when you need to provide the file name as an argument to one | 1520 | Normally, Emacs automatically appends the output file name to the |
| 1513 | command whose output is piped to another. You can specify where to put | 1521 | shell command strings described in the preceding paragraph. For |
| 1514 | the file name with @samp{*} in the command string. For example, | 1522 | example, if @code{tex-dvi-view-command} is @code{"xdvi"}, @kbd{C-c |
| 1523 | C-v} runs @command{xdvi @var{output-file-name}}. In some cases, | ||
| 1524 | however, the file name needs to be embedded in the command, e.g.@: if | ||
| 1525 | you need to provide the file name as an argument to one command whose | ||
| 1526 | output is piped to another. You can specify where to put the file | ||
| 1527 | name with @samp{*} in the command string. For example, | ||
| 1515 | 1528 | ||
| 1516 | @example | 1529 | @example |
| 1517 | (setq tex-dvi-print-command "dvips -f * | lpr") | 1530 | (setq tex-dvi-print-command "dvips -f * | lpr") |
| @@ -1521,12 +1534,12 @@ the file name with @samp{*} in the command string. For example, | |||
| 1521 | @kindex C-c C-k @r{(@TeX{} mode)} | 1534 | @kindex C-c C-k @r{(@TeX{} mode)} |
| 1522 | @findex tex-recenter-output-buffer | 1535 | @findex tex-recenter-output-buffer |
| 1523 | @kindex C-c C-l @r{(@TeX{} mode)} | 1536 | @kindex C-c C-l @r{(@TeX{} mode)} |
| 1524 | The terminal output from @TeX{}, including any error messages, appears | 1537 | The terminal output from @TeX{}, including any error messages, |
| 1525 | in a buffer called @samp{*tex-shell*}. If @TeX{} gets an error, you can | 1538 | appears in a buffer called @samp{*tex-shell*}. If @TeX{} gets an |
| 1526 | switch to this buffer and feed it input (this works as in Shell mode; | 1539 | error, you can switch to this buffer and feed it input (this works as |
| 1527 | @pxref{Interactive Shell}). Without switching to this buffer you can | 1540 | in Shell mode; @pxref{Interactive Shell}). Without switching to this |
| 1528 | scroll it so that its last line is visible by typing @kbd{C-c | 1541 | buffer you can scroll it so that its last line is visible by typing |
| 1529 | C-l}. | 1542 | @kbd{C-c C-l}. |
| 1530 | 1543 | ||
| 1531 | Type @kbd{C-c C-k} (@code{tex-kill-job}) to kill the @TeX{} process if | 1544 | Type @kbd{C-c C-k} (@code{tex-kill-job}) to kill the @TeX{} process if |
| 1532 | you see that its output is no longer useful. Using @kbd{C-c C-b} or | 1545 | you see that its output is no longer useful. Using @kbd{C-c C-b} or |
| @@ -1534,14 +1547,14 @@ you see that its output is no longer useful. Using @kbd{C-c C-b} or | |||
| 1534 | 1547 | ||
| 1535 | @findex tex-region | 1548 | @findex tex-region |
| 1536 | @kindex C-c C-r @r{(@TeX{} mode)} | 1549 | @kindex C-c C-r @r{(@TeX{} mode)} |
| 1537 | You can also pass an arbitrary region through an inferior @TeX{} by typing | 1550 | You can also pass an arbitrary region through @TeX{} by typing |
| 1538 | @kbd{C-c C-r} (@code{tex-region}). This is tricky, however, because most files | 1551 | @kbd{C-c C-r} (@code{tex-region}). This is tricky, however, because |
| 1539 | of @TeX{} input contain commands at the beginning to set parameters and | 1552 | most files of @TeX{} input contain commands at the beginning to set |
| 1540 | define macros, without which no later part of the file will format | 1553 | parameters and define macros, without which no later part of the file |
| 1541 | correctly. To solve this problem, @kbd{C-c C-r} allows you to designate a | 1554 | will format correctly. To solve this problem, @kbd{C-c C-r} allows |
| 1542 | part of the file as containing essential commands; it is included before | 1555 | you to designate a part of the file as containing essential commands; |
| 1543 | the specified region as part of the input to @TeX{}. The designated part | 1556 | it is included before the specified region as part of the input to |
| 1544 | of the file is called the @dfn{header}. | 1557 | @TeX{}. The designated part of the file is called the @dfn{header}. |
| 1545 | 1558 | ||
| 1546 | @cindex header (@TeX{} mode) | 1559 | @cindex header (@TeX{} mode) |
| 1547 | To indicate the bounds of the header in Plain @TeX{} mode, you insert two | 1560 | To indicate the bounds of the header in Plain @TeX{} mode, you insert two |
| @@ -1639,29 +1652,6 @@ keys (@pxref{Completion}). | |||
| 1639 | The commands @kbd{M-x iso-iso2tex}, @kbd{M-x iso-tex2iso}, @kbd{M-x | 1652 | The commands @kbd{M-x iso-iso2tex}, @kbd{M-x iso-tex2iso}, @kbd{M-x |
| 1640 | iso-iso2gtex} and @kbd{M-x iso-gtex2iso} can be used to convert | 1653 | iso-iso2gtex} and @kbd{M-x iso-gtex2iso} can be used to convert |
| 1641 | between Latin-1 encoded files and @TeX{}-encoded equivalents. | 1654 | between Latin-1 encoded files and @TeX{}-encoded equivalents. |
| 1642 | @ignore | ||
| 1643 | @c Too cryptic to be useful, too cryptic for me to make it better -- rms. | ||
| 1644 | They | ||
| 1645 | are included by default in the @code{format-alist} variable, so they | ||
| 1646 | can be used with @kbd{M-x format-find-file}, for instance. | ||
| 1647 | @end ignore | ||
| 1648 | |||
| 1649 | @ignore @c Not worth documenting if it is only for Czech -- rms. | ||
| 1650 | @findex tildify-buffer | ||
| 1651 | @findex tildify-region | ||
| 1652 | @cindex ties, @TeX{}, inserting | ||
| 1653 | @cindex hard spaces, @TeX{}, inserting | ||
| 1654 | The commands @kbd{M-x tildify-buffer} and @kbd{M-x tildify-region} | ||
| 1655 | insert @samp{~} (@dfn{tie}) characters where they are conventionally | ||
| 1656 | required. This is set up for Czech---customize the group | ||
| 1657 | @samp{tildify} for other languages or for other sorts of markup. | ||
| 1658 | @end ignore | ||
| 1659 | |||
| 1660 | @cindex Ref@TeX{} package | ||
| 1661 | @cindex references, La@TeX{} | ||
| 1662 | @cindex La@TeX{} references | ||
| 1663 | For managing all kinds of references for La@TeX{}, you can use | ||
| 1664 | Ref@TeX{}. @inforef{Top,, reftex}. | ||
| 1665 | 1655 | ||
| 1666 | @node HTML Mode | 1656 | @node HTML Mode |
| 1667 | @section SGML and HTML Modes | 1657 | @section SGML and HTML Modes |
| @@ -1764,22 +1754,27 @@ used as a cheap preview (@code{sgml-tags-invisible}). | |||
| 1764 | @cindex mode, nXML | 1754 | @cindex mode, nXML |
| 1765 | @findex nxml-mode | 1755 | @findex nxml-mode |
| 1766 | @cindex XML schema | 1756 | @cindex XML schema |
| 1767 | The default mode for editing XML documents is called nXML mode | 1757 | The major mode for editing XML documents is called nXML mode. This |
| 1768 | (@code{xml-mode} or @code{nxml-mode}). This is a powerful major mode | 1758 | is a powerful major mode that can recognize many existing XML schema |
| 1769 | that can recognize many existing XML schema and use them to provide | 1759 | and use them to provide completion of XML elements via |
| 1770 | completion of XML elements via @kbd{C-@key{RET}} or @kbd{M-@key{TAB}}, | 1760 | @kbd{C-@key{RET}} or @kbd{M-@key{TAB}}, as well as ``on-the-fly'' XML |
| 1771 | as well as ``on-the-fly'' XML validation with error highlighting. It | 1761 | validation with error highlighting. To enable nXML mode in an |
| 1772 | is described in its own manual. @xref{Top, nXML Mode,,nxml-mode, nXML | 1762 | existing buffer, type @kbd{M-x nxml-mode}, or, equivalently, @kbd{M-x |
| 1773 | Mode}. | 1763 | xml-mode}. Emacs uses nXML mode for files which have the extension |
| 1764 | @file{.xml}. For XHTML files, which have the extension @file{.xhtml}, | ||
| 1765 | Emacs uses HTML mode by default; you can make it use nXML mode by | ||
| 1766 | customizing the variable @code{auto-mode-alist} (@pxref{Choosing | ||
| 1767 | Modes}). nXML mode is described in its own manual: @xref{Top, nXML | ||
| 1768 | Mode,,nxml-mode, nXML Mode}. | ||
| 1774 | 1769 | ||
| 1775 | @vindex sgml-xml-mode | 1770 | @vindex sgml-xml-mode |
| 1776 | However, you can also use SGML mode to edit XML, since XML is a | 1771 | You may choose to use the less powerful SGML mode for editing XML, |
| 1777 | strict subset of SGML. In XML, every opening tag must have an | 1772 | since XML is a strict subset of SGML. To enable SGML mode in an |
| 1778 | explicit closing tag. When the variable @code{sgml-xml-mode} is | 1773 | existing buffer, type @kbd{M-x sgml-mode}. On enabling SGML mode, |
| 1779 | non-@code{nil}, the tag insertion commands described above always | 1774 | Emacs examines the buffer to determine whether it is XML; if so, it |
| 1780 | insert explicit closing tags as well. When you visit a file in SGML | 1775 | sets the variable @code{sgml-xml-mode} to a non-@code{nil} value. |
| 1781 | mode, Emacs determines whether it is XML by examining the file | 1776 | This causes SGML mode's tag insertion commands, described above, to |
| 1782 | contents, and sets @code{sgml-xml-mode} accordingly. | 1777 | always insert explicit closing tags as well. |
| 1783 | 1778 | ||
| 1784 | @node Nroff Mode | 1779 | @node Nroff Mode |
| 1785 | @section Nroff Mode | 1780 | @section Nroff Mode |
| @@ -1830,86 +1825,84 @@ header level). | |||
| 1830 | Entering Nroff mode runs the hook @code{text-mode-hook}, followed by | 1825 | Entering Nroff mode runs the hook @code{text-mode-hook}, followed by |
| 1831 | the hook @code{nroff-mode-hook} (@pxref{Hooks}). | 1826 | the hook @code{nroff-mode-hook} (@pxref{Hooks}). |
| 1832 | 1827 | ||
| 1833 | @node Formatted Text | 1828 | @node Enriched Text |
| 1834 | @section Editing Formatted Text | 1829 | @section Enriched Text |
| 1835 | |||
| 1836 | @cindex Enriched mode | 1830 | @cindex Enriched mode |
| 1837 | @cindex mode, Enriched | 1831 | @cindex mode, Enriched |
| 1838 | @cindex formatted text | 1832 | @cindex enriched text |
| 1839 | @cindex WYSIWYG | 1833 | @cindex WYSIWYG |
| 1840 | @cindex word processing | 1834 | @cindex word processing |
| 1841 | @dfn{Enriched mode} is a minor mode for editing files that contain | 1835 | @cindex text/enriched MIME format |
| 1842 | formatted text in WYSIWYG fashion, as in a word processor. Currently, | ||
| 1843 | formatted text in Enriched mode can specify fonts, colors, underlining, | ||
| 1844 | margins, and types of filling and justification. In the future, we plan | ||
| 1845 | to implement other formatting features as well. | ||
| 1846 | 1836 | ||
| 1847 | Enriched mode is a minor mode (@pxref{Minor Modes}). It is | 1837 | Enriched mode is a minor mode for editing formatted text files in a |
| 1848 | typically used in conjunction with Text mode (@pxref{Text Mode}), but | 1838 | WYSIWYG (``what you see is what you get'') fashion. When Enriched |
| 1849 | you can also use it with other major modes such as Outline mode and | 1839 | mode is enabled, you can apply various formatting properties to the |
| 1850 | Paragraph-Indent Text mode. | 1840 | text in the buffer, such as fonts and colors; upon saving the buffer, |
| 1841 | those properties are saved together with the text, using the MIME | ||
| 1842 | @samp{text/enriched} file format. | ||
| 1851 | 1843 | ||
| 1852 | @cindex text/enriched MIME format | 1844 | Enriched mode is typically used with Text mode (@pxref{Text Mode}). |
| 1853 | Potentially, Emacs can store formatted text files in various file | 1845 | It is @emph{not} compatible with Font Lock mode, which is used by many |
| 1854 | formats. Currently, only one format is implemented: @dfn{text/enriched} | 1846 | major modes, including most programming language modes, for syntax |
| 1855 | format, which is defined by the MIME protocol. @xref{Format | 1847 | highlighting (@pxref{Font Lock}). Unlike Enriched mode, Font Lock |
| 1856 | Conversion,, Format Conversion, elisp, the Emacs Lisp Reference Manual}, | 1848 | mode assigns text properties automatically, based on the current |
| 1857 | for details of how Emacs recognizes and converts file formats. | 1849 | buffer contents; those properties are not saved to disk. |
| 1858 | 1850 | ||
| 1859 | The Emacs distribution contains a formatted text file that can serve as | 1851 | The file @file{etc/enriched.doc} in the Emacs distribution serves as |
| 1860 | an example. Its name is @file{etc/enriched.doc}. It contains samples | 1852 | an example of the features of Enriched mode. |
| 1861 | illustrating all the features described in this section. It also | ||
| 1862 | contains a list of ideas for future enhancements. | ||
| 1863 | 1853 | ||
| 1864 | @menu | 1854 | @menu |
| 1865 | * Requesting Formatted Text:: Entering and exiting Enriched mode. | 1855 | * Enriched Mode:: Entering and exiting Enriched mode. |
| 1866 | * Hard and Soft Newlines:: There are two different kinds of newlines. | 1856 | * Hard and Soft Newlines:: There are two different kinds of newlines. |
| 1867 | * Editing Format Info:: How to edit text properties. | 1857 | * Editing Format Info:: How to edit text properties. |
| 1868 | * Faces: Format Faces. Bold, italic, underline, etc. | 1858 | * Enriched Faces:: Bold, italic, underline, etc. |
| 1869 | * Color: Format Colors. Changing the color of text. | 1859 | * Enriched Indentation:: Changing the left and right margins. |
| 1870 | * Indent: Format Indentation. Changing the left and right margins. | 1860 | * Enriched Justification:: Centering, setting text flush with the |
| 1871 | * Justification: Format Justification. | 1861 | left or right margin, etc. |
| 1872 | Centering, setting text flush with the | 1862 | * Enriched Properties:: The "special" text properties submenu. |
| 1873 | left or right margin, etc. | ||
| 1874 | * Special: Format Properties. The "special" text properties submenu. | ||
| 1875 | * Forcing Enriched Mode:: How to force use of Enriched mode. | ||
| 1876 | @end menu | 1863 | @end menu |
| 1877 | 1864 | ||
| 1878 | @node Requesting Formatted Text | 1865 | @node Enriched Mode |
| 1879 | @subsection Requesting to Edit Formatted Text | 1866 | @subsection Enriched Mode |
| 1880 | 1867 | ||
| 1881 | Whenever you visit a file that Emacs saved in the text/enriched | 1868 | Enriched mode is a buffer-local minor mode (@pxref{Minor Modes}). |
| 1882 | format, Emacs automatically converts the formatting information in the | 1869 | When you visit a file that has been saved in the @samp{text/enriched} |
| 1883 | file into Emacs's own internal format (known as @dfn{text | 1870 | format, Emacs automatically enables Enriched mode, and applies the |
| 1884 | properties}), and turns on Enriched mode. | 1871 | formatting information in the file to the buffer text. When you save |
| 1872 | a buffer with Enriched mode enabled, it is saved using the | ||
| 1873 | @samp{text/enriched} format, including the formatting information. | ||
| 1885 | 1874 | ||
| 1886 | @findex enriched-mode | 1875 | @findex enriched-mode |
| 1887 | To create a new file of formatted text, first visit the nonexistent | 1876 | To create a new file of formatted text, visit the nonexistent file |
| 1888 | file, then type @kbd{M-x enriched-mode} before you start inserting text. | 1877 | and type @kbd{M-x enriched-mode}. This command actually toggles |
| 1889 | This command turns on Enriched mode. Do this before you begin inserting | 1878 | Enriched mode. With a prefix argument, it enables Enriched mode if |
| 1890 | text, to ensure that the text you insert is handled properly. | 1879 | the argument is positive, and disables Enriched mode otherwise. If |
| 1891 | 1880 | you disable Enriched mode, Emacs no longer saves the buffer using the | |
| 1892 | More generally, the command @code{enriched-mode} turns Enriched mode | 1881 | @samp{text/enriched} format; any formatting properties that have been |
| 1893 | on if it was off, and off if it was on. With a prefix argument, this | 1882 | added to the buffer remain in the buffer, but they are not saved to |
| 1894 | command turns Enriched mode on if the argument is positive, and turns | 1883 | disk. |
| 1895 | the mode off otherwise. | ||
| 1896 | |||
| 1897 | When you save a buffer while Enriched mode is enabled in it, Emacs | ||
| 1898 | automatically converts the text to text/enriched format while writing it | ||
| 1899 | into the file. When you visit the file again, Emacs will automatically | ||
| 1900 | recognize the format, reconvert the text, and turn on Enriched mode | ||
| 1901 | again. | ||
| 1902 | 1884 | ||
| 1903 | @vindex enriched-translations | 1885 | @vindex enriched-translations |
| 1904 | You can add annotations for saving additional text properties, which | 1886 | Enriched mode does not save all Emacs text properties, only those |
| 1905 | Emacs normally does not save, by adding to @code{enriched-translations}. | 1887 | specified in the variable @code{enriched-translations}. These include |
| 1906 | Note that the text/enriched standard requires any non-standard | 1888 | properties for fonts, colors, indentation, and justification. |
| 1907 | annotations to have names starting with @samp{x-}, as in | 1889 | |
| 1908 | @samp{x-read-only}. This ensures that they will not conflict with | 1890 | @findex format-decode-buffer |
| 1909 | standard annotations that may be added later. | 1891 | If you visit a file and Emacs fails to recognize that it is in the |
| 1910 | 1892 | @samp{text/enriched} format, type @kbd{M-x format-decode-buffer}. | |
| 1911 | @xref{Text Properties,,, elisp, the Emacs Lisp Reference Manual}, | 1893 | This command prompts for a file format, and re-reads the file in that |
| 1912 | for more information about text properties. | 1894 | format. Specifying the @samp{text/enriched} format automatically |
| 1895 | enables Enriched mode. | ||
| 1896 | |||
| 1897 | To view a @samp{text/enriched} file in raw form (as plain text with | ||
| 1898 | markup tags rather than formatted text), use @kbd{M-x | ||
| 1899 | find-file-literally} (@pxref{Visiting}). | ||
| 1900 | |||
| 1901 | @xref{Format Conversion,, Format Conversion, elisp, the Emacs Lisp | ||
| 1902 | Reference Manual}, for details of how Emacs recognizes and converts | ||
| 1903 | file formats like @samp{text/enriched}. @xref{Text Properties,,, | ||
| 1904 | elisp, the Emacs Lisp Reference Manual}, for more information about | ||
| 1905 | text properties. | ||
| 1913 | 1906 | ||
| 1914 | @node Hard and Soft Newlines | 1907 | @node Hard and Soft Newlines |
| 1915 | @subsection Hard and Soft Newlines | 1908 | @subsection Hard and Soft Newlines |
| @@ -1918,56 +1911,44 @@ for more information about text properties. | |||
| 1918 | @cindex newlines, hard and soft | 1911 | @cindex newlines, hard and soft |
| 1919 | 1912 | ||
| 1920 | @cindex use-hard-newlines | 1913 | @cindex use-hard-newlines |
| 1921 | In formatted text, Emacs distinguishes between two different kinds of | 1914 | In Enriched mode, Emacs distinguishes between two different kinds of |
| 1922 | newlines, @dfn{hard} newlines and @dfn{soft} newlines. (You can enable | 1915 | newlines, @dfn{hard} newlines and @dfn{soft} newlines. You can also |
| 1923 | or disable this feature separately in any buffer with the command | 1916 | enable or disable this feature in other buffers, by typing @kbd{M-x |
| 1924 | @code{use-hard-newlines}.) | 1917 | use-hard-newlines}. |
| 1925 | 1918 | ||
| 1926 | Hard newlines are used to separate paragraphs, or items in a list, or | 1919 | Hard newlines are used to separate paragraphs, or anywhere there |
| 1927 | anywhere that there should always be a line break regardless of the | 1920 | needs to be a line break regardless of how the text is filled; soft |
| 1928 | margins. The @key{RET} command (@code{newline}) and @kbd{C-o} | 1921 | newlines are used for filling. The @key{RET} (@code{newline}) and |
| 1929 | (@code{open-line}) insert hard newlines. | 1922 | @kbd{C-o} (@code{open-line}) commands insert hard newlines. The fill |
| 1930 | 1923 | commands, including Auto Fill (@pxref{Auto Fill}), insert only soft | |
| 1931 | Soft newlines are used to make text fit between the margins. All the | 1924 | newlines and delete only soft newlines, leaving hard newlines alone. |
| 1932 | fill commands, including Auto Fill, insert soft newlines---and they | 1925 | |
| 1933 | delete only soft newlines. | 1926 | Thus, when editing with Enriched mode, you should not use @key{RET} |
| 1934 | 1927 | or @kbd{C-o} to break lines in the middle of filled paragraphs. Use | |
| 1935 | Although hard and soft newlines look the same, it is important to bear | 1928 | Auto Fill mode or explicit fill commands (@pxref{Fill Commands}) |
| 1936 | the difference in mind. Do not use @key{RET} to break lines in the | 1929 | instead. Use @key{RET} or @kbd{C-o} where line breaks should always |
| 1937 | middle of filled paragraphs, or else you will get hard newlines that are | 1930 | remain, such as in tables and lists. For such lines, you may also |
| 1938 | barriers to further filling. Instead, let Auto Fill mode break lines, | 1931 | want to set the justification style to @code{unfilled} |
| 1939 | so that if the text or the margins change, Emacs can refill the lines | 1932 | (@pxref{Enriched Justification}). |
| 1940 | properly. @xref{Auto Fill}. | ||
| 1941 | |||
| 1942 | On the other hand, in tables and lists, where the lines should always | ||
| 1943 | remain as you type them, you can use @key{RET} to end lines. For these | ||
| 1944 | lines, you may also want to set the justification style to | ||
| 1945 | @code{unfilled}. @xref{Format Justification}. | ||
| 1946 | 1933 | ||
| 1947 | @node Editing Format Info | 1934 | @node Editing Format Info |
| 1948 | @subsection Editing Format Information | 1935 | @subsection Editing Format Information |
| 1949 | 1936 | ||
| 1950 | There are two ways to alter the formatting information for a formatted | 1937 | The easiest way to alter properties is with the Text Properties |
| 1951 | text file: with keyboard commands, and with the mouse. | 1938 | menu. You can get to this menu from the Edit menu in the menu bar |
| 1952 | 1939 | (@pxref{Menu Bar}), or with @kbd{C-Mouse-2} (@pxref{Menu Mouse | |
| 1953 | The easiest way to add properties to your document is with the Text | 1940 | Clicks}). Some of the commands in the Text Properties menu are listed |
| 1954 | Properties menu. You can get to this menu in two ways: from the Edit | 1941 | below (you can also invoke them with @kbd{M-x}): |
| 1955 | menu in the menu bar (use @kbd{@key{F10} e t} if you have no mouse), | ||
| 1956 | or with @kbd{C-Mouse-2} (hold the @key{CTRL} key and press the middle | ||
| 1957 | mouse button). There are also keyboard commands described in the | ||
| 1958 | following section. | ||
| 1959 | |||
| 1960 | These items in the Text Properties menu run commands directly: | ||
| 1961 | 1942 | ||
| 1962 | @table @code | 1943 | @table @code |
| 1963 | @findex facemenu-remove-face-props | 1944 | @findex facemenu-remove-face-props |
| 1964 | @item Remove Face Properties | 1945 | @item Remove Face Properties |
| 1965 | Delete from the region all face and color text properties | 1946 | Remove face properties from the region |
| 1966 | (@code{facemenu-remove-face-props}). | 1947 | (@code{facemenu-remove-face-props}). |
| 1967 | 1948 | ||
| 1968 | @findex facemenu-remove-all | 1949 | @findex facemenu-remove-all |
| 1969 | @item Remove Text Properties | 1950 | @item Remove Text Properties |
| 1970 | Delete @emph{all} text properties from the region | 1951 | Remove all text properties from the region, including face properties |
| 1971 | (@code{facemenu-remove-all}). | 1952 | (@code{facemenu-remove-all}). |
| 1972 | 1953 | ||
| 1973 | @findex describe-text-properties | 1954 | @findex describe-text-properties |
| @@ -1976,168 +1957,98 @@ Delete @emph{all} text properties from the region | |||
| 1976 | @cindex widgets at buffer position | 1957 | @cindex widgets at buffer position |
| 1977 | @cindex buttons at buffer position | 1958 | @cindex buttons at buffer position |
| 1978 | @item Describe Properties | 1959 | @item Describe Properties |
| 1979 | List all the text properties, widgets, buttons, and overlays of the | 1960 | List all text properties and other information about the character |
| 1980 | character following point (@code{describe-text-properties}). | 1961 | following point (@code{describe-text-properties}). |
| 1981 | 1962 | ||
| 1982 | @item Display Faces | 1963 | @item Display Faces |
| 1983 | Display a list of all the defined faces (@code{list-faces-display}). | 1964 | Display a list of defined faces (@code{list-faces-display}). |
| 1965 | @xref{Faces}. | ||
| 1984 | 1966 | ||
| 1985 | @item Display Colors | 1967 | @item Display Colors |
| 1986 | Display a list of all the defined colors (@code{list-colors-display}). | 1968 | Display a list of defined colors (@code{list-colors-display}). |
| 1969 | @xref{Colors}. | ||
| 1987 | @end table | 1970 | @end table |
| 1988 | 1971 | ||
| 1989 | @ifinfo | 1972 | @noindent |
| 1990 | Other items in the Text Properties menu lead to submenus: | 1973 | The other menu entries are described in the following sections. |
| 1991 | |||
| 1992 | @menu | ||
| 1993 | * Faces: Format Faces. Bold, italic, underline, etc. | ||
| 1994 | * Color: Format Colors. Changing the color of text. | ||
| 1995 | * Indent: Format Indentation. Changing the left and right margins. | ||
| 1996 | * Justification: Format Justification. | ||
| 1997 | Centering, setting text flush with the | ||
| 1998 | left or right margin, etc. | ||
| 1999 | * Special: Format Properties. The "special" text properties submenu. | ||
| 2000 | @end menu | ||
| 2001 | @end ifinfo | ||
| 2002 | @ifnotinfo | ||
| 2003 | The rest lead to submenus which are described in the following sections. | ||
| 2004 | @end ifnotinfo | ||
| 2005 | |||
| 2006 | @node Format Faces | ||
| 2007 | @subsection Faces in Formatted Text | ||
| 2008 | 1974 | ||
| 2009 | The Faces submenu under Text Properties lists various Emacs faces | 1975 | @node Enriched Faces |
| 2010 | including @code{bold}, @code{italic}, and @code{underline} | 1976 | @subsection Faces in Enriched Text |
| 2011 | (@pxref{Faces}). These menu items operate on the region if it is | ||
| 2012 | active and nonempty. Otherwise, they specify to use that face for an | ||
| 2013 | immediately following self-inserting character. There is also an item | ||
| 2014 | @samp{Other} with which you can enter a face name through the | ||
| 2015 | minibuffer (@pxref{Standard Faces}). | ||
| 2016 | 1977 | ||
| 2017 | Instead of the Faces submenu, you can use these keyboard commands: | 1978 | The following commands can be used to add or remove faces |
| 1979 | (@pxref{Faces}). Each applies to the text in the region if the mark | ||
| 1980 | is active, and to the next self-inserting character if the mark is | ||
| 1981 | inactive. With a prefix argument, each command applies to the next | ||
| 1982 | self-inserting character even if the region is active. | ||
| 2018 | 1983 | ||
| 2019 | @table @kbd | 1984 | @table @kbd |
| 2020 | @kindex M-o d @r{(Enriched mode)} | 1985 | @kindex M-o d @r{(Enriched mode)} |
| 2021 | @findex facemenu-set-default | 1986 | @findex facemenu-set-default |
| 2022 | @item M-o d | 1987 | @item M-o d |
| 2023 | Remove all @code{face} properties from the region (which includes | 1988 | Remove all @code{face} properties (@code{facemenu-set-default}). |
| 2024 | specified colors), or force the following inserted character to have no | 1989 | |
| 2025 | @code{face} property (@code{facemenu-set-default}). | ||
| 2026 | @kindex M-o b @r{(Enriched mode)} | 1990 | @kindex M-o b @r{(Enriched mode)} |
| 2027 | @findex facemenu-set-bold | 1991 | @findex facemenu-set-bold |
| 2028 | @item M-o b | 1992 | @item M-o b |
| 2029 | Add the face @code{bold} to the region or to the following inserted | 1993 | Apply the @code{bold} face (@code{facemenu-set-bold}). |
| 2030 | character (@code{facemenu-set-bold}). | 1994 | |
| 2031 | @kindex M-o i @r{(Enriched mode)} | 1995 | @kindex M-o i @r{(Enriched mode)} |
| 2032 | @findex facemenu-set-italic | 1996 | @findex facemenu-set-italic |
| 2033 | @item M-o i | 1997 | @item M-o i |
| 2034 | Add the face @code{italic} to the region or to the following inserted | 1998 | Apply the @code{italic} face (@code{facemenu-set-italic}). |
| 2035 | character (@code{facemenu-set-italic}). | 1999 | |
| 2036 | @kindex M-o l @r{(Enriched mode)} | 2000 | @kindex M-o l @r{(Enriched mode)} |
| 2037 | @findex facemenu-set-bold-italic | 2001 | @findex facemenu-set-bold-italic |
| 2038 | @item M-o l | 2002 | @item M-o l |
| 2039 | Add the face @code{bold-italic} to the region or to the following | 2003 | Apply the @code{bold-italic} face (@code{facemenu-set-bold-italic}). |
| 2040 | inserted character (@code{facemenu-set-bold-italic}). | 2004 | |
| 2041 | @kindex M-o u @r{(Enriched mode)} | 2005 | @kindex M-o u @r{(Enriched mode)} |
| 2042 | @findex facemenu-set-underline | 2006 | @findex facemenu-set-underline |
| 2043 | @item M-o u | 2007 | @item M-o u |
| 2044 | Add the face @code{underline} to the region or to the following inserted | 2008 | Apply the @code{underline} face (@code{facemenu-set-underline}). |
| 2045 | character (@code{facemenu-set-underline}). | 2009 | |
| 2046 | @kindex M-o o @r{(Enriched mode)} | 2010 | @kindex M-o o @r{(Enriched mode)} |
| 2047 | @findex facemenu-set-face | 2011 | @findex facemenu-set-face |
| 2048 | @item M-o o @var{face} @key{RET} | 2012 | @item M-o o @var{face} @key{RET} |
| 2049 | Add the face @var{face} to the region or to the following inserted | 2013 | Apply the face @var{face} (@code{facemenu-set-face}). |
| 2050 | character (@code{facemenu-set-face}). | ||
| 2051 | @end table | ||
| 2052 | 2014 | ||
| 2053 | With a prefix argument, all these commands apply to an immediately | 2015 | @findex facemenu-set-foreground |
| 2054 | following self-inserting character, disregarding the region. | 2016 | @item M-x facemenu-set-foreground |
| 2017 | Prompt for a color (@pxref{Colors}), and apply it as a foreground | ||
| 2018 | color. | ||
| 2055 | 2019 | ||
| 2056 | A self-inserting character normally inherits the @code{face} | 2020 | @findex facemenu-set-background |
| 2057 | property (and most other text properties) from the preceding character | 2021 | @item M-x facemenu-set-background |
| 2058 | in the buffer. If you use the above commands to specify face for the | 2022 | Prompt for a color, and apply it as a background color. |
| 2059 | next self-inserting character, or the next section's commands to | 2023 | @end table |
| 2060 | specify a foreground or background color for it, then it does not | ||
| 2061 | inherit the @code{face} property from the preceding character; instead | ||
| 2062 | it uses whatever you specified. It will still inherit other text | ||
| 2063 | properties, though. | ||
| 2064 | 2024 | ||
| 2065 | Strictly speaking, these commands apply only to the first following | 2025 | @noindent |
| 2066 | self-inserting character that you type. But if you insert additional | 2026 | These command are also available via the Text Properties menu. |
| 2067 | characters after it, they will inherit from the first one. So it | ||
| 2068 | appears that these commands apply to all of them. | ||
| 2069 | 2027 | ||
| 2070 | Enriched mode defines two additional faces: @code{excerpt} and | 2028 | A self-inserting character normally inherits the face properties |
| 2071 | @code{fixed}. These correspond to codes used in the text/enriched file | 2029 | (and most other text properties) from the preceding character in the |
| 2072 | format. | 2030 | buffer. If you use one of the above commands to specify the face for |
| 2073 | 2031 | the next self-inserting character, that character will not inherit the | |
| 2074 | The @code{excerpt} face is intended for quotations. This face is the | 2032 | faces properties from the preceding character, but it will still |
| 2075 | same as @code{italic} unless you customize it (@pxref{Face Customization}). | 2033 | inherit other text properties. |
| 2076 | |||
| 2077 | The @code{fixed} face means, ``Use a fixed-width font for this part | ||
| 2078 | of the text.'' Applying the @code{fixed} face to a part of the text | ||
| 2079 | will cause that part of the text to appear in a fixed-width font, even | ||
| 2080 | if the default font is variable-width. This applies to Emacs and to | ||
| 2081 | other systems that display text/enriched format. So if you | ||
| 2082 | specifically want a certain part of the text to use a fixed-width | ||
| 2083 | font, you should specify the @code{fixed} face for that part. | ||
| 2084 | |||
| 2085 | By default, the @code{fixed} face looks the same as @code{bold}. | ||
| 2086 | This is an attempt to distinguish it from @code{default}. You may | ||
| 2087 | wish to customize @code{fixed} to some other fixed-width medium font. | ||
| 2088 | @xref{Face Customization}. | ||
| 2089 | |||
| 2090 | If your terminal cannot display different faces, you will not be | ||
| 2091 | able to see them, but you can still edit documents containing faces, | ||
| 2092 | and even add faces and colors to documents. The faces you specify | ||
| 2093 | will be visible when the file is viewed on a terminal that can display | ||
| 2094 | them. | ||
| 2095 | |||
| 2096 | @node Format Colors | ||
| 2097 | @subsection Colors in Formatted Text | ||
| 2098 | |||
| 2099 | You can specify foreground and background colors for portions of the | ||
| 2100 | text. Under Text Properties, there is a submenu for specifying the | ||
| 2101 | foreground color, and a submenu for specifying the background color. | ||
| 2102 | Each one lists all the colors that you have used in Enriched mode in | ||
| 2103 | the current Emacs session. | ||
| 2104 | |||
| 2105 | If the region is active, the command applies to the text in the | ||
| 2106 | region; otherwise, it applies to any immediately following | ||
| 2107 | self-inserting input. When Transient Mark mode is off | ||
| 2108 | (@pxref{Disabled Transient Mark}), it always applies to the region | ||
| 2109 | unless a prefix argument is given, in which case it applies to the | ||
| 2110 | following input. | ||
| 2111 | |||
| 2112 | Each of the two color submenus contains one additional item: | ||
| 2113 | @samp{Other}. You can use this item to specify a color that is not | ||
| 2114 | listed in the menu; it reads the color name with the minibuffer. To | ||
| 2115 | display a list of available colors and their names, use the | ||
| 2116 | @samp{Display Colors} menu item in the Text Properties menu | ||
| 2117 | (@pxref{Editing Format Info}). | ||
| 2118 | |||
| 2119 | Any color that you specify in this way, or that is mentioned in a | ||
| 2120 | formatted text file that you read in, is added to the corresponding | ||
| 2121 | color menu for the duration of the Emacs session. | ||
| 2122 | 2034 | ||
| 2123 | @findex facemenu-set-foreground | 2035 | Enriched mode defines two additional faces: @code{excerpt} and |
| 2124 | @findex facemenu-set-background | 2036 | @code{fixed}. These correspond to codes used in the text/enriched |
| 2125 | There are no predefined key bindings for specifying colors, but you can do so | 2037 | file format. The @code{excerpt} face is intended for quotations; by |
| 2126 | with the extended commands @kbd{M-x facemenu-set-foreground} and | 2038 | default, it appears the same as @code{italic}. The @code{fixed} face |
| 2127 | @kbd{M-x facemenu-set-background}. Both of these commands read the name | 2039 | specifies fixed-width text; by default, it appears the same as |
| 2128 | of the color with the minibuffer. | 2040 | @code{bold}. |
| 2129 | 2041 | ||
| 2130 | @node Format Indentation | 2042 | @node Enriched Indentation |
| 2131 | @subsection Indentation in Formatted Text | 2043 | @subsection Indentation in Enriched Text |
| 2132 | 2044 | ||
| 2133 | When editing formatted text, you can specify different amounts of | 2045 | In Enriched mode, you can specify different amounts of indentation |
| 2134 | indentation for the right or left margin of an entire paragraph or a | 2046 | for the right or left margin of a paragraph or a part of a paragraph. |
| 2135 | part of a paragraph. The margins you specify automatically affect the | 2047 | These margins also affect fill commands such as @kbd{M-q} |
| 2136 | Emacs fill commands (@pxref{Filling}) and line-breaking commands. | 2048 | (@pxref{Filling}). |
| 2137 | 2049 | ||
| 2138 | The Indentation submenu of Text Properties provides a convenient | 2050 | The Indentation submenu of Text Properties provides four commands |
| 2139 | interface for specifying these properties. The submenu contains four | 2051 | for specifying indentation: |
| 2140 | items: | ||
| 2141 | 2052 | ||
| 2142 | @table @code | 2053 | @table @code |
| 2143 | @kindex C-x TAB @r{(Enriched mode)} | 2054 | @kindex C-x TAB @r{(Enriched mode)} |
| @@ -2158,44 +2069,20 @@ Make the text narrower by indenting 4 columns at the right margin. | |||
| 2158 | Remove 4 columns of indentation from the right margin. | 2069 | Remove 4 columns of indentation from the right margin. |
| 2159 | @end table | 2070 | @end table |
| 2160 | 2071 | ||
| 2161 | You can use these commands repeatedly to increase or decrease the | ||
| 2162 | indentation. | ||
| 2163 | |||
| 2164 | The most common way to use them is to change the indentation of an | ||
| 2165 | entire paragraph. For other uses, the effects of refilling can be | ||
| 2166 | hard to predict, except in some special cases like the one described | ||
| 2167 | next. | ||
| 2168 | |||
| 2169 | The most common other use is to format paragraphs with @dfn{hanging | ||
| 2170 | indents}, which means that the first line is indented less than | ||
| 2171 | subsequent lines. To set up a hanging indent, increase the | ||
| 2172 | indentation of the region starting after the first word of the | ||
| 2173 | paragraph and running until the end of the paragraph. | ||
| 2174 | |||
| 2175 | Indenting the first line of a paragraph is easier. Set the margin for | ||
| 2176 | the whole paragraph where you want it to be for the body of the | ||
| 2177 | paragraph, then indent the first line by inserting extra spaces or tabs. | ||
| 2178 | |||
| 2179 | @vindex standard-indent | 2072 | @vindex standard-indent |
| 2180 | The variable @code{standard-indent} specifies how many columns these | 2073 | The variable @code{standard-indent} specifies how many columns these |
| 2181 | commands should add to or subtract from the indentation. The default | 2074 | commands should add to or subtract from the indentation. The default |
| 2182 | value is 4. The overall default right margin for Enriched mode is | 2075 | value is 4. The default right margin for Enriched mode is controlled |
| 2183 | controlled by the variable @code{fill-column}, as usual. | 2076 | by the variable @code{fill-column}, as usual. |
| 2184 | 2077 | ||
| 2185 | @kindex C-c [ @r{(Enriched mode)} | 2078 | @kindex C-c [ @r{(Enriched mode)} |
| 2186 | @kindex C-c ] @r{(Enriched mode)} | 2079 | @kindex C-c ] @r{(Enriched mode)} |
| 2187 | @findex set-left-margin | 2080 | @findex set-left-margin |
| 2188 | @findex set-right-margin | 2081 | @findex set-right-margin |
| 2189 | There are also two commands for setting the left or right margin of | 2082 | You can also type @kbd{C-c [} (@code{set-left-margin}) and @kbd{C-c |
| 2190 | the region absolutely: @code{set-left-margin} and | 2083 | ]} (@code{set-right-margin}) to set the left and right margins. You |
| 2191 | @code{set-right-margin}. Enriched mode binds these commands to | 2084 | can specify the margin width with a numeric argument; otherwise these |
| 2192 | @kbd{C-c [} and @kbd{C-c ]}, respectively. You can specify the | 2085 | commands prompt for a value via the minibuffer. |
| 2193 | margin width either with a numeric argument or in the minibuffer. | ||
| 2194 | |||
| 2195 | Sometimes, as a result of editing, the filling of a paragraph becomes | ||
| 2196 | messed up---parts of the paragraph may extend past the left or right | ||
| 2197 | margins. When this happens, use @kbd{M-q} (@code{fill-paragraph}) to | ||
| 2198 | refill the paragraph. | ||
| 2199 | 2086 | ||
| 2200 | The fill prefix, if any, works in addition to the specified paragraph | 2087 | The fill prefix, if any, works in addition to the specified paragraph |
| 2201 | indentation: @kbd{C-x .} does not include the specified indentation's | 2088 | indentation: @kbd{C-x .} does not include the specified indentation's |
| @@ -2203,148 +2090,76 @@ whitespace in the new value for the fill prefix, and the fill commands | |||
| 2203 | look for the fill prefix after the indentation on each line. @xref{Fill | 2090 | look for the fill prefix after the indentation on each line. @xref{Fill |
| 2204 | Prefix}. | 2091 | Prefix}. |
| 2205 | 2092 | ||
| 2206 | @node Format Justification | 2093 | @node Enriched Justification |
| 2207 | @subsection Justification in Formatted Text | 2094 | @subsection Justification in Enriched Text |
| 2208 | |||
| 2209 | When editing formatted text, you can specify various styles of | ||
| 2210 | justification for a paragraph. The style you specify automatically | ||
| 2211 | affects the Emacs fill commands. | ||
| 2212 | 2095 | ||
| 2213 | The Justification submenu of Text Properties provides a convenient | 2096 | In Enriched mode, you can use the following commands to specify |
| 2214 | interface for specifying the style. The submenu contains five items: | 2097 | various @dfn{justification styles} for filling. These commands apply |
| 2215 | 2098 | to the paragraph containing point, or, if the region is active, to all | |
| 2216 | @table @code | 2099 | paragraphs overlapping the region. |
| 2217 | @item Left | ||
| 2218 | This is the most common style of justification (at least for English). | ||
| 2219 | Lines are aligned at the left margin but left uneven at the right. | ||
| 2220 | |||
| 2221 | @item Right | ||
| 2222 | This aligns each line with the right margin. Spaces and tabs are added | ||
| 2223 | on the left, if necessary, to make lines line up on the right. | ||
| 2224 | |||
| 2225 | @item Full | ||
| 2226 | This justifies the text, aligning both edges of each line. Justified | ||
| 2227 | text looks very nice in a printed book, where the spaces can all be | ||
| 2228 | adjusted equally, but it does not look as nice with a fixed-width font | ||
| 2229 | on the screen. Perhaps a future version of Emacs will be able to adjust | ||
| 2230 | the width of spaces in a line to achieve elegant justification. | ||
| 2231 | |||
| 2232 | @item Center | ||
| 2233 | This centers every line between the current margins. | ||
| 2234 | |||
| 2235 | @item Unfilled | ||
| 2236 | This turns off filling entirely. Each line will remain as you wrote it; | ||
| 2237 | the fill and auto-fill functions will have no effect on text which has | ||
| 2238 | this setting. You can, however, still indent the left margin. In | ||
| 2239 | unfilled regions, all newlines are treated as hard newlines (@pxref{Hard | ||
| 2240 | and Soft Newlines}) . | ||
| 2241 | @end table | ||
| 2242 | |||
| 2243 | In Enriched mode, you can also specify justification from the keyboard | ||
| 2244 | using the @kbd{M-j} prefix character: | ||
| 2245 | 2100 | ||
| 2246 | @table @kbd | 2101 | @table @kbd |
| 2247 | @kindex M-j l @r{(Enriched mode)} | 2102 | @kindex M-j l @r{(Enriched mode)} |
| 2248 | @findex set-justification-left | 2103 | @findex set-justification-left |
| 2249 | @item M-j l | 2104 | @item M-j l |
| 2250 | Make the region left-filled (@code{set-justification-left}). | 2105 | Align lines to the left margin (@code{set-justification-left}). |
| 2106 | |||
| 2251 | @kindex M-j r @r{(Enriched mode)} | 2107 | @kindex M-j r @r{(Enriched mode)} |
| 2252 | @findex set-justification-right | 2108 | @findex set-justification-right |
| 2253 | @item M-j r | 2109 | @item M-j r |
| 2254 | Make the region right-filled (@code{set-justification-right}). | 2110 | Align lines to the right margin (@code{set-justification-right}). |
| 2111 | |||
| 2255 | @kindex M-j b @r{(Enriched mode)} | 2112 | @kindex M-j b @r{(Enriched mode)} |
| 2256 | @findex set-justification-full | 2113 | @findex set-justification-full |
| 2257 | @item M-j b | 2114 | @item M-j b |
| 2258 | Make the region fully justified (@code{set-justification-full}). | 2115 | Align lines to both margins, inserting spaces in the middle of the |
| 2116 | line to achieve this (@code{set-justification-full}). | ||
| 2117 | |||
| 2259 | @kindex M-j c @r{(Enriched mode)} | 2118 | @kindex M-j c @r{(Enriched mode)} |
| 2260 | @kindex M-S @r{(Enriched mode)} | 2119 | @kindex M-S @r{(Enriched mode)} |
| 2261 | @findex set-justification-center | 2120 | @findex set-justification-center |
| 2262 | @item M-j c | 2121 | @item M-j c |
| 2263 | @itemx M-S | 2122 | @itemx M-S |
| 2264 | Make the region centered (@code{set-justification-center}). | 2123 | Center lines between the margins (@code{set-justification-center}). |
| 2124 | |||
| 2265 | @kindex M-j u @r{(Enriched mode)} | 2125 | @kindex M-j u @r{(Enriched mode)} |
| 2266 | @findex set-justification-none | 2126 | @findex set-justification-none |
| 2267 | @item M-j u | 2127 | @item M-j u |
| 2268 | Make the region unfilled (@code{set-justification-none}). | 2128 | Turn off filling entirely (@code{set-justification-none}). The fill |
| 2129 | commands do nothing on text with this setting. You can, however, | ||
| 2130 | still indent the left margin. | ||
| 2269 | @end table | 2131 | @end table |
| 2270 | 2132 | ||
| 2271 | Justification styles apply to entire paragraphs. All the | 2133 | You can also specify justification styles using the Justification |
| 2272 | justification-changing commands operate on the paragraph containing | 2134 | submenu in the Text Properties menu. |
| 2273 | point, or, if the region is active, on all paragraphs which overlap the | ||
| 2274 | region. | ||
| 2275 | 2135 | ||
| 2276 | @vindex default-justification | 2136 | @vindex default-justification |
| 2277 | The default justification style is specified by the variable | 2137 | The default justification style is specified by the per-buffer |
| 2278 | @code{default-justification}. Its value should be one of the symbols | 2138 | variable @code{default-justification}. Its value should be one of the |
| 2279 | @code{left}, @code{right}, @code{full}, @code{center}, or @code{none}. | 2139 | symbols @code{left}, @code{right}, @code{full}, @code{center}, or |
| 2280 | This is a per-buffer variable. Setting the variable directly affects | 2140 | @code{none}. |
| 2281 | only the current buffer. However, customizing it in a Custom buffer | ||
| 2282 | sets (as always) the default value for buffers that do not override it. | ||
| 2283 | @xref{Locals}, and @ref{Easy Customization}. | ||
| 2284 | |||
| 2285 | @node Format Properties | ||
| 2286 | @subsection Setting Other Text Properties | ||
| 2287 | |||
| 2288 | The Special Properties submenu of Text Properties can add or remove | ||
| 2289 | three other useful text properties: @code{read-only}, @code{invisible} | ||
| 2290 | and @code{intangible}. The @code{intangible} property disallows | ||
| 2291 | moving point within the text, the @code{invisible} text property hides | ||
| 2292 | text from display, and the @code{read-only} property disallows | ||
| 2293 | alteration of the text. | ||
| 2294 | 2141 | ||
| 2295 | Each of these special properties has a menu item to add it to the | 2142 | @node Enriched Properties |
| 2296 | region. The last menu item, @samp{Remove Special}, removes all of these | 2143 | @subsection Setting Other Text Properties |
| 2297 | special properties from the text in the region. | ||
| 2298 | |||
| 2299 | Currently, the @code{invisible} and @code{intangible} properties are | ||
| 2300 | @emph{not} saved in the text/enriched format. The @code{read-only} | ||
| 2301 | property is saved, but it is not a standard part of the text/enriched | ||
| 2302 | format, so other editors may not respect it. | ||
| 2303 | |||
| 2304 | @node Forcing Enriched Mode | ||
| 2305 | @subsection Forcing Enriched Mode | ||
| 2306 | |||
| 2307 | Normally, Emacs knows when you are editing formatted text because it | ||
| 2308 | recognizes the special annotations used in the file that you visited. | ||
| 2309 | However, sometimes you must take special actions to convert file | ||
| 2310 | contents or turn on Enriched mode: | ||
| 2311 | |||
| 2312 | @itemize @bullet | ||
| 2313 | @item | ||
| 2314 | When you visit a file that was created with some other editor, Emacs may | ||
| 2315 | not recognize the file as being in the text/enriched format. In this | ||
| 2316 | case, when you visit the file you will see the formatting commands | ||
| 2317 | rather than the formatted text. Type @kbd{M-x format-decode-buffer} to | ||
| 2318 | translate it. This also automatically turns on Enriched mode. | ||
| 2319 | 2144 | ||
| 2320 | @item | 2145 | The Special Properties submenu of Text Properties has entries for |
| 2321 | When you @emph{insert} a file into a buffer, rather than visiting it, | 2146 | adding or removing three other text properties: @code{read-only}, |
| 2322 | Emacs does the necessary conversions on the text which you insert, but | 2147 | (which disallows alteration of the text), @code{invisible} (which |
| 2323 | it does not enable Enriched mode. If you wish to do that, type @kbd{M-x | 2148 | hides text), and @code{intangible} (which disallows moving point |
| 2324 | enriched-mode}. | 2149 | within the text). The @samp{Remove Special} menu item removes all of |
| 2325 | @end itemize | 2150 | these special properties from the text in the region. |
| 2326 | 2151 | ||
| 2327 | The command @code{format-decode-buffer} translates text in various | 2152 | The @code{invisible} and @code{intangible} properties are @emph{not} |
| 2328 | formats into Emacs's internal format. It asks you to specify the format | 2153 | saved in the text/enriched format. The @code{read-only} property is |
| 2329 | to translate from; however, normally you can type just @key{RET}, which | 2154 | saved, but it is not a standard part of the text/enriched format, so |
| 2330 | tells Emacs to guess the format. | 2155 | other editors may not respect it. |
| 2331 | |||
| 2332 | @findex format-find-file | ||
| 2333 | If you wish to look at a text/enriched file in its raw form, as a | ||
| 2334 | sequence of characters rather than as formatted text, use the @kbd{M-x | ||
| 2335 | find-file-literally} command. This visits a file, like | ||
| 2336 | @code{find-file}, but does not do format conversion. It also inhibits | ||
| 2337 | character code conversion (@pxref{Coding Systems}) and automatic | ||
| 2338 | uncompression (@pxref{Compressed Files}). To disable format conversion | ||
| 2339 | but allow character code conversion and/or automatic uncompression if | ||
| 2340 | appropriate, use @code{format-find-file} with suitable arguments. | ||
| 2341 | 2156 | ||
| 2342 | @node Text Based Tables | 2157 | @node Text Based Tables |
| 2343 | @section Editing Text-based Tables | 2158 | @section Editing Text-based Tables |
| 2344 | @cindex table mode | 2159 | @cindex table mode |
| 2345 | @cindex text-based tables | 2160 | @cindex text-based tables |
| 2346 | 2161 | ||
| 2347 | Table mode provides an easy and intuitive way to create and edit WYSIWYG | 2162 | Table mode provides an easy and intuitive way to create and edit |
| 2348 | text-based tables. Here is an example of such a table: | 2163 | text-based tables. Here is an example of such a table: |
| 2349 | 2164 | ||
| 2350 | @smallexample | 2165 | @smallexample |
diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi index c44b67454a2..6a6f7b1a4d7 100644 --- a/doc/emacs/windows.texi +++ b/doc/emacs/windows.texi | |||
| @@ -193,6 +193,7 @@ Select buffer @var{bufname} in another window | |||
| 193 | 193 | ||
| 194 | @findex display-buffer | 194 | @findex display-buffer |
| 195 | @item C-x 4 C-o @var{bufname} @key{RET} | 195 | @item C-x 4 C-o @var{bufname} @key{RET} |
| 196 | @kindex C-x 4 C-o | ||
| 196 | Display buffer @var{bufname} in some window, without trying to select | 197 | Display buffer @var{bufname} in some window, without trying to select |
| 197 | it (@code{display-buffer}). @xref{Displaying Buffers}, for details | 198 | it (@code{display-buffer}). @xref{Displaying Buffers}, for details |
| 198 | about how the window is chosen. | 199 | about how the window is chosen. |
| @@ -385,7 +386,8 @@ change @code{pop-up-frames} (see below) to @code{t}. | |||
| 385 | @item | 386 | @item |
| 386 | Otherwise, if you specified that the buffer should be displayed in a | 387 | Otherwise, if you specified that the buffer should be displayed in a |
| 387 | special frame by customizing @code{special-display-buffer-names} or | 388 | special frame by customizing @code{special-display-buffer-names} or |
| 388 | @code{special-display-regexps}, do so. @xref{Special Buffer Frames}. | 389 | @code{special-display-regexps}, do so. @xref{Choosing Window |
| 390 | Options,,, elisp, The Emacs Lisp Reference Manual}. | ||
| 389 | 391 | ||
| 390 | @vindex pop-up-frames | 392 | @vindex pop-up-frames |
| 391 | @item | 393 | @item |
| @@ -420,7 +422,7 @@ and display the buffer there. | |||
| 420 | @end itemize | 422 | @end itemize |
| 421 | 423 | ||
| 422 | @node Window Convenience | 424 | @node Window Convenience |
| 423 | @section Window Handling Convenience Features and Customization | 425 | @section Convenience Features for Window Handling |
| 424 | 426 | ||
| 425 | @findex winner-mode | 427 | @findex winner-mode |
| 426 | @cindex Winner mode | 428 | @cindex Winner mode |
diff --git a/doc/emacs/xresources.texi b/doc/emacs/xresources.texi index c2e65268d1b..b32b3d905e4 100644 --- a/doc/emacs/xresources.texi +++ b/doc/emacs/xresources.texi | |||
| @@ -306,14 +306,14 @@ Name to display in the title bar of the initial Emacs frame. | |||
| 306 | @item @code{toolBar} (class @code{ToolBar}) | 306 | @item @code{toolBar} (class @code{ToolBar}) |
| 307 | @cindex tool bar | 307 | @cindex tool bar |
| 308 | Number of lines to reserve for the tool bar. A zero value suppresses | 308 | Number of lines to reserve for the tool bar. A zero value suppresses |
| 309 | the tool bar. For the Emacs tool bar (i.e. not Gtk+), if the value is | 309 | the tool bar. For the Emacs tool bar (i.e.@: not Gtk+), if the value |
| 310 | non-zero and @code{auto-resize-tool-bars} is non-@code{nil}, the tool bar's | 310 | is non-zero and @code{auto-resize-tool-bars} is non-@code{nil}, the |
| 311 | size will be changed automatically so that all tool bar items are visible. | 311 | tool bar's size will be changed automatically so that all tool bar |
| 312 | If the value of @code{auto-resize-tool-bars} is @code{grow-only}, | 312 | items are visible. If the value of @code{auto-resize-tool-bars} is |
| 313 | the tool bar expands automatically, but does not contract automatically. | 313 | @code{grow-only}, the tool bar expands automatically, but does not |
| 314 | To contract the tool bar, you must redraw the frame by entering @kbd{C-l}. | 314 | contract automatically. To contract the tool bar, you must redraw the |
| 315 | For the Gtk+ tool bar, any non-zero value means on and | 315 | frame by entering @kbd{C-l}. For the Gtk+ tool bar, any non-zero |
| 316 | @code{auto-resize-tool-bars} has no effect. | 316 | value means on and @code{auto-resize-tool-bars} has no effect. |
| 317 | 317 | ||
| 318 | @item @code{useXIM} (class @code{UseXIM}) | 318 | @item @code{useXIM} (class @code{UseXIM}) |
| 319 | @cindex XIM | 319 | @cindex XIM |
| @@ -641,17 +641,18 @@ The color for the border shadow, on the top and the left. | |||
| 641 | @node GTK resources | 641 | @node GTK resources |
| 642 | @appendixsec GTK resources | 642 | @appendixsec GTK resources |
| 643 | @iftex | 643 | @iftex |
| 644 | The most common way to customize the GTK widgets Emacs uses (menus, dialogs | 644 | The most common way to customize the GTK widgets Emacs uses (menus, |
| 645 | tool bars and scroll bars) is by choosing an appropriate theme, for example | 645 | dialogs tool bars and scroll bars) is by choosing an appropriate |
| 646 | with the GNOME theme selector. | 646 | theme, for example with the GNOME theme selector. |
| 647 | 647 | ||
| 648 | You can also do Emacs specific customization | 648 | You can also do Emacs specific customization by inserting GTK style |
| 649 | by inserting GTK style directives in the file @file{~/.emacs.d/gtkrc}, | 649 | directives in the file @file{~/.emacs.d/gtkrc}, but only if you have a |
| 650 | but only if you have a Gtk+ version earlier than 3 (i.e. 2). Some GTK | 650 | Gtk+ version earlier than 3 (i.e.@: 2). Some GTK themes ignore |
| 651 | themes ignore customizations in @file{~/.emacs.d/gtkrc} so not everything | 651 | customizations in @file{~/.emacs.d/gtkrc} so not everything works with |
| 652 | works with all themes. To customize Emacs font, background, faces, etc., use | 652 | all themes. To customize Emacs font, background, faces, etc., use the |
| 653 | the normal X resources (@pxref{Resources}). We will present some examples of | 653 | normal X resources (@pxref{Resources}). We will present some examples |
| 654 | customizations here, but for a more detailed description, see the online manual | 654 | of customizations here, but for a more detailed description, see the |
| 655 | online manual | ||
| 655 | 656 | ||
| 656 | The first example is just one line. It changes the font on all GTK widgets | 657 | The first example is just one line. It changes the font on all GTK widgets |
| 657 | to courier with size 12: | 658 | to courier with size 12: |
| @@ -1065,7 +1066,7 @@ possible states are: | |||
| 1065 | This is the default state for widgets. | 1066 | This is the default state for widgets. |
| 1066 | @item ACTIVE | 1067 | @item ACTIVE |
| 1067 | This is the state for a widget that is ready to do something. It is | 1068 | This is the state for a widget that is ready to do something. It is |
| 1068 | also for the trough of a scroll bar, i.e. @code{bg[ACTIVE] = "red"} | 1069 | also for the trough of a scroll bar, i.e.@: @code{bg[ACTIVE] = "red"} |
| 1069 | sets the scroll bar trough to red. Buttons that have been pressed but | 1070 | sets the scroll bar trough to red. Buttons that have been pressed but |
| 1070 | not released yet (``armed'') are in this state. | 1071 | not released yet (``armed'') are in this state. |
| 1071 | @item PRELIGHT | 1072 | @item PRELIGHT |
| @@ -1109,7 +1110,7 @@ You can't specify the file by its absolute file name. GTK looks for | |||
| 1109 | the pixmap file in directories specified in @code{pixmap_path}. | 1110 | the pixmap file in directories specified in @code{pixmap_path}. |
| 1110 | @code{pixmap_path} is a colon-separated list of directories within | 1111 | @code{pixmap_path} is a colon-separated list of directories within |
| 1111 | double quotes, specified at the top level in a @file{gtkrc} file | 1112 | double quotes, specified at the top level in a @file{gtkrc} file |
| 1112 | (i.e. not inside a style definition; see example above): | 1113 | (i.e.@: not inside a style definition; see example above): |
| 1113 | 1114 | ||
| 1114 | @smallexample | 1115 | @smallexample |
| 1115 | pixmap_path "/usr/share/pixmaps:/usr/include/X11/pixmaps" | 1116 | pixmap_path "/usr/share/pixmaps:/usr/include/X11/pixmaps" |
| @@ -1131,19 +1132,18 @@ Bold 12}, @samp{Courier 14}, @samp{Times 18}. See below for exact | |||
| 1131 | syntax. The names are case insensitive. | 1132 | syntax. The names are case insensitive. |
| 1132 | @end table | 1133 | @end table |
| 1133 | 1134 | ||
| 1134 | There are three ways to specify a color: by name, in hexadecimal | 1135 | There are three ways to specify a color: a color name, an RGB |
| 1135 | form, and with an RGB triplet. | 1136 | triplet, or a GTK-style RGB triplet. @xref{Colors}, for a description |
| 1137 | of color names and RGB triplets. Color names should be enclosed with | ||
| 1138 | double quotes, e.g.@: @samp{"red"}. RGB triplets should be written | ||
| 1139 | without double quotes, e.g.@: @samp{#ff0000}. GTK-style RGB triplets | ||
| 1140 | have the form | ||
| 1136 | 1141 | ||
| 1137 | @noindent | 1142 | @smallexample |
| 1138 | A color name is written within double quotes, for example @code{"red"}. | 1143 | @code{@{ @var{r}, @var{g}, @var{b} @}} |
| 1139 | 1144 | @end smallexample | |
| 1140 | @noindent | ||
| 1141 | Hexadecimal form is the same as in X: | ||
| 1142 | @code{#@var{rrrr}@var{gggg}@var{bbbb}}, where all three color specs | ||
| 1143 | must have the same number of hex digits (1, 2, 3 or 4). | ||
| 1144 | 1145 | ||
| 1145 | @noindent | 1146 | @noindent |
| 1146 | An RGB triplet looks like @code{@{ @var{r}, @var{g}, @var{b} @}}, | ||
| 1147 | where @var{r}, @var{g} and @var{b} are either integers in the range | 1147 | where @var{r}, @var{g} and @var{b} are either integers in the range |
| 1148 | 0-65535 or floats in the range 0.0-1.0. | 1148 | 0-65535 or floats in the range 0.0-1.0. |
| 1149 | 1149 | ||
diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog index bdcd9e9aea8..6cede6375f2 100644 --- a/doc/lispintro/ChangeLog +++ b/doc/lispintro/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2011-11-24 Juanma Barranquero <lekktu@gmail.com> | ||
| 2 | |||
| 3 | * makefile.w32-in: Update dependencies. | ||
| 4 | |||
| 1 | 2011-11-16 Juanma Barranquero <lekktu@gmail.com> | 5 | 2011-11-16 Juanma Barranquero <lekktu@gmail.com> |
| 2 | 6 | ||
| 3 | * emacs-lisp-intro.texi (etags): Fix typo. | 7 | * emacs-lisp-intro.texi (etags): Fix typo. |
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi index 244d95d6937..23d0d5a8f34 100644 --- a/doc/lispintro/emacs-lisp-intro.texi +++ b/doc/lispintro/emacs-lisp-intro.texi | |||
| @@ -1401,7 +1401,7 @@ This is a harmless activity; and indeed, we will often try to generate | |||
| 1401 | error messages intentionally. Once you understand the jargon, error | 1401 | error messages intentionally. Once you understand the jargon, error |
| 1402 | messages can be informative. Instead of being called ``error'' | 1402 | messages can be informative. Instead of being called ``error'' |
| 1403 | messages, they should be called ``help'' messages. They are like | 1403 | messages, they should be called ``help'' messages. They are like |
| 1404 | signposts to a traveller in a strange country; deciphering them can be | 1404 | signposts to a traveler in a strange country; deciphering them can be |
| 1405 | hard, but once understood, they can point the way. | 1405 | hard, but once understood, they can point the way. |
| 1406 | 1406 | ||
| 1407 | The error message is generated by a built-in GNU Emacs debugger. We | 1407 | The error message is generated by a built-in GNU Emacs debugger. We |
| @@ -2040,7 +2040,7 @@ the first argument. This function takes three arguments. Its first | |||
| 2040 | argument is the string of characters, the second and third arguments are | 2040 | argument is the string of characters, the second and third arguments are |
| 2041 | numbers that indicate the beginning and end of the substring. The | 2041 | numbers that indicate the beginning and end of the substring. The |
| 2042 | numbers are a count of the number of characters (including spaces and | 2042 | numbers are a count of the number of characters (including spaces and |
| 2043 | punctuations) from the beginning of the string. | 2043 | punctuation) from the beginning of the string. |
| 2044 | 2044 | ||
| 2045 | @need 800 | 2045 | @need 800 |
| 2046 | For example, if you evaluate the following: | 2046 | For example, if you evaluate the following: |
diff --git a/doc/lispintro/makefile.w32-in b/doc/lispintro/makefile.w32-in index 7294d46b693..06641cc2222 100644 --- a/doc/lispintro/makefile.w32-in +++ b/doc/lispintro/makefile.w32-in | |||
| @@ -24,7 +24,7 @@ infodir = $(srcdir)/../../info | |||
| 24 | # Directory with the (customized) texinfo.tex file. | 24 | # Directory with the (customized) texinfo.tex file. |
| 25 | texinfodir = $(srcdir)/../misc | 25 | texinfodir = $(srcdir)/../misc |
| 26 | 26 | ||
| 27 | INFO_SOURCES = $(srcdir)/emacs-lisp-intro.texi | 27 | INFO_SOURCES = $(srcdir)/emacs-lisp-intro.texi $(srcdir)/doclicense.texi |
| 28 | # The file name eintr must fit within 5 characters, to allow for | 28 | # The file name eintr must fit within 5 characters, to allow for |
| 29 | # -NN extensions to fit into DOS 8+3 limits without clashing | 29 | # -NN extensions to fit into DOS 8+3 limits without clashing |
| 30 | INFO_TARGETS = $(infodir)/eintr | 30 | INFO_TARGETS = $(infodir)/eintr |
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 293f253c545..37de62be976 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog | |||
| @@ -1,3 +1,26 @@ | |||
| 1 | 2011-11-26 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * display.texi (Truncation): | ||
| 4 | * text.texi (Special Properties): Describe what a stretch-glyph is | ||
| 5 | instead of using that term without explanation. Make the | ||
| 6 | cross-references more accurate. | ||
| 7 | |||
| 8 | * display.texi (Usual Display): Update the description, | ||
| 9 | cross-references, and indexing related to display of control | ||
| 10 | characters and raw bytes. | ||
| 11 | |||
| 12 | 2011-11-25 Martin Rudalics <rudalics@gmx.at> | ||
| 13 | |||
| 14 | * windows.texi (Splitting Windows): Fix description of | ||
| 15 | window-combination-limit. Suggested by Eli Zaretskii. | ||
| 16 | |||
| 17 | 2011-11-23 Chong Yidong <cyd@gnu.org> | ||
| 18 | |||
| 19 | * windows.texi (Window Sizes): Move window-top-line, | ||
| 20 | window-left-column, and window-*-pixel-edges to Coordinates and | ||
| 21 | Windows node. | ||
| 22 | (Coordinates and Windows): Restore window-edges doc. | ||
| 23 | |||
| 1 | 2011-11-21 Martin Rudalics <rudalics@gmx.at> | 24 | 2011-11-21 Martin Rudalics <rudalics@gmx.at> |
| 2 | 25 | ||
| 3 | * windows.texi (Windows and Frames, Splitting Windows): Fix | 26 | * windows.texi (Windows and Frames, Splitting Windows): Fix |
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 9849420b1f5..a9921d7443d 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi | |||
| @@ -193,10 +193,12 @@ a window, that forces truncation. | |||
| 193 | @defvar wrap-prefix | 193 | @defvar wrap-prefix |
| 194 | If this buffer-local variable is non-@code{nil}, it defines a | 194 | If this buffer-local variable is non-@code{nil}, it defines a |
| 195 | ``prefix'' that is prepended to every continuation line at | 195 | ``prefix'' that is prepended to every continuation line at |
| 196 | display-time. (If lines are truncated, the wrap-prefix is never | 196 | display time. (If lines are truncated, the wrap-prefix is never |
| 197 | used.) It may be a string, an image, or a stretch-glyph; the value is | 197 | used.) It may be a string or an image (@pxref{Other Display Specs}), |
| 198 | interpreted in the same way as a @code{display} text property. | 198 | or a stretch of whitespace such as specified by the @code{:width} or |
| 199 | @xref{Display Property}. | 199 | @code{:align-to} display properties (@pxref{Specified Space}). The |
| 200 | value is interpreted in the same way as a @code{display} text | ||
| 201 | property. @xref{Display Property}. | ||
| 200 | 202 | ||
| 201 | A wrap-prefix may also be specified for regions of text, using the | 203 | A wrap-prefix may also be specified for regions of text, using the |
| 202 | @code{wrap-prefix} text or overlay property. This takes precedence | 204 | @code{wrap-prefix} text or overlay property. This takes precedence |
| @@ -206,9 +208,11 @@ over the @code{wrap-prefix} variable. @xref{Special Properties}. | |||
| 206 | @defvar line-prefix | 208 | @defvar line-prefix |
| 207 | If this buffer-local variable is non-@code{nil}, it defines a | 209 | If this buffer-local variable is non-@code{nil}, it defines a |
| 208 | ``prefix'' that is prepended to every non-continuation line at | 210 | ``prefix'' that is prepended to every non-continuation line at |
| 209 | display-time. It may be a string, an image, or a stretch-glyph; the | 211 | display time. It may be a string or an image (@pxref{Other Display |
| 210 | value is interpreted in the same way as a @code{display} text | 212 | Specs}), or a stretch of whitespace such as specified by the |
| 211 | property. @xref{Display Property}. | 213 | @code{:width} or @code{:align-to} display properties (@pxref{Specified |
| 214 | Space}). The value is interpreted in the same way as a @code{display} | ||
| 215 | text property. @xref{Display Property}. | ||
| 212 | 216 | ||
| 213 | A line-prefix may also be specified for regions of text using the | 217 | A line-prefix may also be specified for regions of text using the |
| 214 | @code{line-prefix} text or overlay property. This takes precedence | 218 | @code{line-prefix} text or overlay property. This takes precedence |
| @@ -5638,39 +5642,45 @@ code. You can override these conventions by setting up a display table | |||
| 5638 | @itemize @bullet | 5642 | @itemize @bullet |
| 5639 | @item | 5643 | @item |
| 5640 | Character codes 32 through 126 map to glyph codes 32 through 126. | 5644 | Character codes 32 through 126 map to glyph codes 32 through 126. |
| 5641 | Normally this means they display as themselves. | 5645 | Normally this means they display as themselves, but a display table |
| 5646 | can change that. | ||
| 5642 | 5647 | ||
| 5643 | @item | 5648 | @item |
| 5644 | Character code 9 is a horizontal tab. It displays as whitespace | 5649 | Character code 9 is a horizontal tab. It displays as whitespace |
| 5645 | up to a position determined by @code{tab-width}. | 5650 | up to a position determined by @code{tab-width}. |
| 5646 | 5651 | ||
| 5647 | @item | 5652 | @item |
| 5648 | Character code 10 is a newline. | 5653 | Character code 10 is a newline. It is normally invisible on display, |
| 5654 | and has the effect of ending the preceding line and starting a new | ||
| 5655 | line. | ||
| 5649 | 5656 | ||
| 5650 | @item | 5657 | @item |
| 5651 | All other codes in the range 0 through 31, and code 127, display in one | 5658 | All other codes in the range 0 through 31 display in one of two ways |
| 5652 | of two ways according to the value of @code{ctl-arrow}. If it is | 5659 | according to the value of @code{ctl-arrow}. If it is non-@code{nil}, |
| 5653 | non-@code{nil}, these codes map to sequences of two glyphs, where the | 5660 | these codes map to sequences of two glyphs, where the first glyph is |
| 5654 | first glyph is the @acronym{ASCII} code for @samp{^}. (A display table can | 5661 | the @acronym{ASCII} code for @samp{^}. (A display table can specify a |
| 5655 | specify a glyph to use instead of @samp{^}.) Otherwise, these codes map | 5662 | glyph to use instead of @samp{^}.) Otherwise, these codes map just |
| 5656 | just like the codes in the range 128 to 255. | 5663 | like the raw bytes in the range 128 to 255 (described below). |
| 5657 | 5664 | ||
| 5658 | On MS-DOS terminals, Emacs arranges by default for the character code | 5665 | @cindex octal escapes |
| 5659 | 127 to be mapped to the glyph code 127, which normally displays as an | ||
| 5660 | empty polygon. This glyph is used to display non-@acronym{ASCII} characters | ||
| 5661 | that the MS-DOS terminal doesn't support. @xref{MS-DOS and MULE,,, | ||
| 5662 | emacs, The GNU Emacs Manual}. | ||
| 5663 | |||
| 5664 | @item | 5666 | @item |
| 5665 | Character codes 128 through 255 map to sequences of four glyphs, where | 5667 | Raw bytes (@pxref{Text Representations}) with codes 128 through 255, |
| 5666 | the first glyph is the @acronym{ASCII} code for @samp{\}, and the others are | 5668 | and the @acronym{ASCII} control character with code 127, display as |
| 5667 | digit characters representing the character code in octal. (A display | 5669 | sequences of four glyphs, where the first glyph is the @acronym{ASCII} |
| 5668 | table can specify a glyph to use instead of @samp{\}.) | 5670 | code for @samp{\}, and the others are digit characters representing |
| 5671 | the character code in octal. (A display table can specify a glyph to | ||
| 5672 | use instead of @samp{\}.) This is known as the @dfn{octal escape} | ||
| 5673 | display. | ||
| 5669 | 5674 | ||
| 5670 | @item | 5675 | @item |
| 5671 | Multibyte character codes above 256 are displayed as themselves, or as | 5676 | Non-@acronym{ASCII} character codes above 127 are displayed as |
| 5672 | a question mark or a hex code or an empty box if the terminal cannot | 5677 | themselves, if the terminal and the available fonts support them. |
| 5673 | display that character. | 5678 | Characters that are not supported by the terminal, or (on window |
| 5679 | systems) have no fonts available for them, are displayed as a question | ||
| 5680 | mark or a hex code or an empty box. @xref{Glyphless Chars}, for how | ||
| 5681 | to control display of the characters not supported by the terminal or | ||
| 5682 | fonts. Display tables can change how a character is displayed, even | ||
| 5683 | if it is supported. | ||
| 5674 | @end itemize | 5684 | @end itemize |
| 5675 | 5685 | ||
| 5676 | The usual display conventions apply even when there is a display | 5686 | The usual display conventions apply even when there is a display |
| @@ -5695,7 +5705,8 @@ mode line using the new values, call the function | |||
| 5695 | This buffer-local variable controls how control characters are | 5705 | This buffer-local variable controls how control characters are |
| 5696 | displayed. If it is non-@code{nil}, they are displayed as a caret | 5706 | displayed. If it is non-@code{nil}, they are displayed as a caret |
| 5697 | followed by the character: @samp{^A}. If it is @code{nil}, they are | 5707 | followed by the character: @samp{^A}. If it is @code{nil}, they are |
| 5698 | displayed as a backslash followed by three octal digits: @samp{\001}. | 5708 | displayed as octal escapes: a backslash followed by three octal |
| 5709 | digits, as in @samp{\001}. | ||
| 5699 | @end defopt | 5710 | @end defopt |
| 5700 | 5711 | ||
| 5701 | @defopt tab-width | 5712 | @defopt tab-width |
diff --git a/doc/lispref/spellfile b/doc/lispref/spellfile index 5c0a6d0f5ea..e0d77ee0541 100644 --- a/doc/lispref/spellfile +++ b/doc/lispref/spellfile | |||
| @@ -253,7 +253,6 @@ deletable | |||
| 253 | deletion' | 253 | deletion' |
| 254 | delq | 254 | delq |
| 255 | depiction | 255 | depiction |
| 256 | descendents | ||
| 257 | deselecting | 256 | deselecting |
| 258 | destructive' | 257 | destructive' |
| 259 | destructively' | 258 | destructively' |
| @@ -299,7 +298,6 @@ excess' | |||
| 299 | exec | 298 | exec |
| 300 | exitcode | 299 | exitcode |
| 301 | expression' | 300 | expression' |
| 302 | extendible | ||
| 303 | extra' | 301 | extra' |
| 304 | fails' | 302 | fails' |
| 305 | fascist | 303 | fascist |
| @@ -660,7 +658,7 @@ the' | |||
| 660 | tildes | 658 | tildes |
| 661 | time's | 659 | time's |
| 662 | to' | 660 | to' |
| 663 | towars | 661 | towards |
| 664 | transportable | 662 | transportable |
| 665 | txt | 663 | txt |
| 666 | types' | 664 | types' |
| @@ -674,7 +672,6 @@ undefine | |||
| 674 | undefines | 672 | undefines |
| 675 | underfull | 673 | underfull |
| 676 | undo's | 674 | undo's |
| 677 | undodata | ||
| 678 | unevaluated' | 675 | unevaluated' |
| 679 | unexec | 676 | unexec |
| 680 | unexpand | 677 | unexpand |
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index 3a081dddc61..fc12939bec5 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi | |||
| @@ -3191,10 +3191,12 @@ controls the total height of the display line ending in that newline. | |||
| 3191 | 3191 | ||
| 3192 | @item wrap-prefix | 3192 | @item wrap-prefix |
| 3193 | If text has a @code{wrap-prefix} property, the prefix it defines will | 3193 | If text has a @code{wrap-prefix} property, the prefix it defines will |
| 3194 | be added at display-time to the beginning of every continuation line | 3194 | be added at display time to the beginning of every continuation line |
| 3195 | due to text wrapping (so if lines are truncated, the wrap-prefix is | 3195 | due to text wrapping (so if lines are truncated, the wrap-prefix is |
| 3196 | never used). It may be a string, an image, or a stretch-glyph such as | 3196 | never used). It may be a string or an image (@pxref{Other Display |
| 3197 | used by the @code{display} text-property. @xref{Display Property}. | 3197 | Specs}), or a stretch of whitespace such as specified by the |
| 3198 | @code{:width} or @code{:align-to} display properties (@pxref{Specified | ||
| 3199 | Space}). | ||
| 3198 | 3200 | ||
| 3199 | A wrap-prefix may also be specified for an entire buffer using the | 3201 | A wrap-prefix may also be specified for an entire buffer using the |
| 3200 | @code{wrap-prefix} buffer-local variable (however, a | 3202 | @code{wrap-prefix} buffer-local variable (however, a |
| @@ -3203,9 +3205,11 @@ the @code{wrap-prefix} variable). @xref{Truncation}. | |||
| 3203 | 3205 | ||
| 3204 | @item line-prefix | 3206 | @item line-prefix |
| 3205 | If text has a @code{line-prefix} property, the prefix it defines will | 3207 | If text has a @code{line-prefix} property, the prefix it defines will |
| 3206 | be added at display-time to the beginning of every non-continuation | 3208 | be added at display time to the beginning of every non-continuation |
| 3207 | line. It may be a string, an image, or a stretch-glyph such as used | 3209 | line. It may be a string or an image (@pxref{Other Display |
| 3208 | by the @code{display} text-property. @xref{Display Property}. | 3210 | Specs}), or a stretch of whitespace such as specified by the |
| 3211 | @code{:width} or @code{:align-to} display properties (@pxref{Specified | ||
| 3212 | Space}). | ||
| 3209 | 3213 | ||
| 3210 | A line-prefix may also be specified for an entire buffer using the | 3214 | A line-prefix may also be specified for an entire buffer using the |
| 3211 | @code{line-prefix} buffer-local variable (however, a | 3215 | @code{line-prefix} buffer-local variable (however, a |
| @@ -3762,7 +3766,7 @@ Additionally, if two fields are separated by another field with the | |||
| 3762 | special value @code{boundary}, then any point within this special | 3766 | special value @code{boundary}, then any point within this special |
| 3763 | field is also considered to be ``on the boundary.'' | 3767 | field is also considered to be ``on the boundary.'' |
| 3764 | 3768 | ||
| 3765 | Commands like @kbd{C-a} with no argumemt, that normally move backward | 3769 | Commands like @kbd{C-a} with no argument, that normally move backward |
| 3766 | to a specific kind of location and stay there once there, probably | 3770 | to a specific kind of location and stay there once there, probably |
| 3767 | should specify @code{nil} for @var{escape-from-edge}. Other motion | 3771 | should specify @code{nil} for @var{escape-from-edge}. Other motion |
| 3768 | commands that check fields should probably pass @code{t}. | 3772 | commands that check fields should probably pass @code{t}. |
| @@ -4322,5 +4326,3 @@ If you do want modification hooks to be run in a particular piece of | |||
| 4322 | code that is itself run from a modification hook, then rebind locally | 4326 | code that is itself run from a modification hook, then rebind locally |
| 4323 | @code{inhibit-modification-hooks} to @code{nil}. | 4327 | @code{inhibit-modification-hooks} to @code{nil}. |
| 4324 | @end defvar | 4328 | @end defvar |
| 4325 | |||
| 4326 | |||
diff --git a/doc/lispref/two-volume-cross-refs.txt b/doc/lispref/two-volume-cross-refs.txt index 53a9f58cd01..6eb11a92f47 100644 --- a/doc/lispref/two-volume-cross-refs.txt +++ b/doc/lispref/two-volume-cross-refs.txt | |||
| @@ -34,7 +34,7 @@ where each volume starts with a higher page number since I find it | |||
| 34 | harder to go to the right place in the volume.) | 34 | harder to go to the right place in the volume.) |
| 35 | 35 | ||
| 36 | References to the same volume are just the page number; references to | 36 | References to the same volume are just the page number; references to |
| 37 | the other volume are a volumne number (in Roman numerals) preceding | 37 | the other volume are a volume number (in Roman numerals) preceding |
| 38 | the page number. | 38 | the page number. |
| 39 | 39 | ||
| 40 | For example, in Volume I: | 40 | For example, in Volume I: |
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index bb1b0524689..437b6db8d58 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi | |||
| @@ -376,7 +376,7 @@ Bars}). At the top of the window is an optional header line | |||
| 376 | line (@pxref{Mode Line Format}). | 376 | line (@pxref{Mode Line Format}). |
| 377 | 377 | ||
| 378 | Emacs provides several functions for finding the height and width of | 378 | Emacs provides several functions for finding the height and width of |
| 379 | a window. Except where noted, these heights and widths are reported | 379 | a window. Except where noted, Emacs reports window heights and widths |
| 380 | as integer numbers of lines and columns respectively. On a graphical | 380 | as integer numbers of lines and columns respectively. On a graphical |
| 381 | display, each ``line'' and ``column'' actually corresponds to the | 381 | display, each ``line'' and ``column'' actually corresponds to the |
| 382 | height and width of a ``default'' character specified by the frame's | 382 | height and width of a ``default'' character specified by the frame's |
| @@ -439,26 +439,6 @@ that of the root window on that frame. If @var{window} is omitted or | |||
| 439 | @code{nil}, it defaults to the selected window. | 439 | @code{nil}, it defaults to the selected window. |
| 440 | @end defun | 440 | @end defun |
| 441 | 441 | ||
| 442 | @cindex window position | ||
| 443 | The following functions can be used to determine the position of a | ||
| 444 | window relative to the window area of its frame: | ||
| 445 | |||
| 446 | @defun window-top-line &optional window | ||
| 447 | This function returns the distance, in lines, between the top of | ||
| 448 | @var{window} and the top of the frame's window area. For instance, | ||
| 449 | the return value is 0 if there is no window above @var{window}. If | ||
| 450 | @var{window} is omitted or @code{nil}, it defaults to the selected | ||
| 451 | window. | ||
| 452 | @end defun | ||
| 453 | |||
| 454 | @defun window-left-column &optional window | ||
| 455 | This function returns the distance, in columns, between the left edge | ||
| 456 | of @var{window} and the left edge of the frame's window area. For | ||
| 457 | instance, the return value is 0 if there is no window to the left of | ||
| 458 | @var{window}. If @var{window} is omitted or @code{nil}, it defaults | ||
| 459 | to the selected window. | ||
| 460 | @end defun | ||
| 461 | |||
| 462 | @cindex window body height | 442 | @cindex window body height |
| 463 | @cindex body height of a window | 443 | @cindex body height of a window |
| 464 | @cindex window body width | 444 | @cindex window body width |
| @@ -535,45 +515,12 @@ can be resized in the desired direction. To determine that, use the | |||
| 535 | function @code{window-resizable}. @xref{Resizing Windows}. | 515 | function @code{window-resizable}. @xref{Resizing Windows}. |
| 536 | @end defun | 516 | @end defun |
| 537 | 517 | ||
| 538 | The following functions can be used to find a window's size and | 518 | @xref{Coordinates and Windows}, for more functions that report the |
| 539 | position in pixels. Though mostly useful on graphical displays, they | 519 | positions of various parts of a window relative to the frame, from |
| 540 | can also be called on text-only terminals, where the screen area of | 520 | which you can calculate its size. In particular, you can use the |
| 541 | each text character is taken to be ``one pixel''. | 521 | functions @code{window-pixel-edges} and |
| 542 | 522 | @code{window-inside-pixel-edges} to find the size in pixels, for | |
| 543 | @defun window-pixel-edges &optional window | 523 | graphical displays. |
| 544 | This function return a list of pixel coordinates for the edges of | ||
| 545 | @var{window}. If @var{window} is omitted or @code{nil}, it defaults | ||
| 546 | to the selected window. | ||
| 547 | |||
| 548 | The return value has the form @code{(@var{left} @var{top} @var{right} | ||
| 549 | @var{bottom})}. The list elements are, respectively, the X coordinate | ||
| 550 | of the left window edge, the Y coordinate of the top edge, one more | ||
| 551 | than the X coordinate of the right edge, and one more than the Y | ||
| 552 | coordinate of the bottom edge. The origin coordinate @samp{(0,0)} is | ||
| 553 | taken to be the top left corner of the frame's window area. | ||
| 554 | |||
| 555 | These edge values include the space used by the window's scroll bar, | ||
| 556 | margins, fringes, header line, and mode line, if any. | ||
| 557 | @end defun | ||
| 558 | |||
| 559 | @defun window-inside-pixel-edges &optional window | ||
| 560 | This function is like @code{window-pixel-edges}, except that it | ||
| 561 | returns the edge coordinates for the window's text area, rather than | ||
| 562 | the edge coordinates for the window itself. @var{window} must specify | ||
| 563 | a live window. | ||
| 564 | @end defun | ||
| 565 | |||
| 566 | @defun window-absolute-pixel-edges &optional window | ||
| 567 | This function is like @code{window-pixel-edges}, except that it | ||
| 568 | returns the edge coordinates relative to the top left corner of the | ||
| 569 | display screen. | ||
| 570 | @end defun | ||
| 571 | |||
| 572 | @defun window-inside-absolute-pixel-edges &optional window | ||
| 573 | This function is like @code{window-inside-pixel-edges}, except that it | ||
| 574 | returns the edge coordinates relative to the top left corner of the | ||
| 575 | display screen. @var{window} must specify a live window. | ||
| 576 | @end defun | ||
| 577 | 524 | ||
| 578 | @node Resizing Windows | 525 | @node Resizing Windows |
| 579 | @section Resizing Windows | 526 | @section Resizing Windows |
| @@ -943,8 +890,9 @@ direction as the existing window combination (otherwise, a new | |||
| 943 | internal window is created anyway). The default is @code{nil}. Other | 890 | internal window is created anyway). The default is @code{nil}. Other |
| 944 | values are reserved for future use. | 891 | values are reserved for future use. |
| 945 | 892 | ||
| 946 | Thus, if the value is always @code{t}, each window tree is a binary | 893 | Thus, if the value of this variable is at all times @code{t}, then at |
| 947 | tree: each window except the root window has exactly one sibling. | 894 | all times every window tree is a binary tree (a tree where each window |
| 895 | except the root window has exactly one sibling). | ||
| 948 | 896 | ||
| 949 | Furthermore, @code{split-window} calls | 897 | Furthermore, @code{split-window} calls |
| 950 | @code{set-window-combination-limit} on the newly-created internal | 898 | @code{set-window-combination-limit} on the newly-created internal |
| @@ -2976,32 +2924,90 @@ is off the screen due to horizontal scrolling: | |||
| 2976 | @end group | 2924 | @end group |
| 2977 | @end example | 2925 | @end example |
| 2978 | 2926 | ||
| 2979 | |||
| 2980 | @node Coordinates and Windows | 2927 | @node Coordinates and Windows |
| 2981 | @section Coordinates and Windows | 2928 | @section Coordinates and Windows |
| 2929 | @cindex frame-relative coordinate | ||
| 2930 | @cindex coordinate, relative to frame | ||
| 2931 | @cindex window position | ||
| 2932 | |||
| 2933 | This section describes functions that report the position of a | ||
| 2934 | window. Most of these functions report positions relative to the | ||
| 2935 | window's frame. In this case, the coordinate origin @samp{(0,0)} lies | ||
| 2936 | near the upper left corner of the frame. For technical reasons, on | ||
| 2937 | graphical displays the origin is not located at the exact corner of | ||
| 2938 | the graphical window as it appears on the screen. If Emacs is built | ||
| 2939 | with the GTK+ toolkit, the origin is at the upper left corner of the | ||
| 2940 | frame area used for displaying Emacs windows, below the title-bar, | ||
| 2941 | GTK+ menu bar, and tool bar (since these are drawn by the window | ||
| 2942 | manager and/or GTK+, not by Emacs). But if Emacs is not built with | ||
| 2943 | GTK+, the origin is at the upper left corner of the tool bar (since in | ||
| 2944 | this case Emacs itself draws the tool bar). In both cases, the X and | ||
| 2945 | Y coordinates increase rightward and downward respectively. | ||
| 2946 | |||
| 2947 | Except where noted, X and Y coordinates are reported in integer | ||
| 2948 | character units, i.e. numbers of lines and columns respectively. On a | ||
| 2949 | graphical display, each ``line'' and ``column'' corresponds to the | ||
| 2950 | height and width of a default character specified by the frame's | ||
| 2951 | default font. | ||
| 2952 | |||
| 2953 | @defun window-edges &optional window | ||
| 2954 | This function returns a list of the edge coordinates of @var{window}. | ||
| 2955 | If @var{window} is omitted or @code{nil}, it defaults to the selected | ||
| 2956 | window. | ||
| 2982 | 2957 | ||
| 2983 | This section describes how to relate screen coordinates to windows. | 2958 | The return value has the form @code{(@var{left} @var{top} @var{right} |
| 2959 | @var{bottom})}. These list elements are, respectively, the X | ||
| 2960 | coordinate of the leftmost column occupied by the window, the Y | ||
| 2961 | coordinate of the topmost row, the X coordinate one column to the | ||
| 2962 | right of the rightmost column, and the Y coordinate one row down from | ||
| 2963 | the bottommost row. | ||
| 2984 | 2964 | ||
| 2985 | @defun window-at x y &optional frame | 2965 | Note that these are the actual outer edges of the window, including |
| 2986 | This function returns the window containing the specified cursor | 2966 | any header line, mode line, scroll bar, fringes, and display margins. |
| 2987 | position in the frame @var{frame}. The coordinates @var{x} and @var{y} | 2967 | On a text-only terminal, if the window has a neighbor on its right, |
| 2988 | are measured in characters and count from the top left corner of the | 2968 | its right edge includes the separator line between the window and its |
| 2989 | frame. If they are out of range, @code{window-at} returns @code{nil}. | 2969 | neighbor. |
| 2970 | @end defun | ||
| 2990 | 2971 | ||
| 2991 | If you omit @var{frame}, the selected frame is used. | 2972 | @defun window-inside-edges &optional window |
| 2973 | This function is similar to @code{window-edges}, but the returned edge | ||
| 2974 | values are for the text area of the window. They exclude any header | ||
| 2975 | line, mode line, scroll bar, fringes, display margins, and vertical | ||
| 2976 | separator. | ||
| 2992 | @end defun | 2977 | @end defun |
| 2993 | 2978 | ||
| 2994 | @defun coordinates-in-window-p coordinates window | 2979 | @defun window-top-line &optional window |
| 2995 | This function checks whether a particular frame position falls within | 2980 | This function returns the Y coordinate of the topmost row of |
| 2996 | the window @var{window}. | 2981 | @var{window}, equivalent to the @var{top} entry in the list returned |
| 2982 | by @code{window-edges}. | ||
| 2983 | @end defun | ||
| 2984 | |||
| 2985 | @defun window-left-column &optional window | ||
| 2986 | This function returns the X coordinate of the leftmost column of | ||
| 2987 | @var{window}, equivalent to the @var{left} entry in the list returned | ||
| 2988 | by @code{window-edges}. | ||
| 2989 | @end defun | ||
| 2997 | 2990 | ||
| 2998 | The argument @var{coordinates} is a cons cell of the form @code{(@var{x} | 2991 | The following functions can be used to relate a set of |
| 2999 | . @var{y})}. The coordinates @var{x} and @var{y} are measured in | 2992 | frame-relative coordinates to a window: |
| 3000 | characters, and count from the top left corner of the screen or frame. | ||
| 3001 | 2993 | ||
| 3002 | The value returned by @code{coordinates-in-window-p} is non-@code{nil} | 2994 | @defun window-at x y &optional frame |
| 3003 | if the coordinates are inside @var{window}. The value also indicates | 2995 | This function returns the live window at the frame-relative |
| 3004 | what part of the window the position is in, as follows: | 2996 | coordinates @var{x} and @var{y}, on frame @var{frame}. If there is no |
| 2997 | window at that position, the return value is @code{nil}. If | ||
| 2998 | @var{frame} is omitted or @code{nil}, it defaults to the selected | ||
| 2999 | frame. | ||
| 3000 | @end defun | ||
| 3001 | |||
| 3002 | @defun coordinates-in-window-p coordinates window | ||
| 3003 | This function checks whether a window @var{window} occupies the | ||
| 3004 | frame-relative coordinates @var{coordinates}, and if so which part of | ||
| 3005 | the window that is. @var{window} should be a live window. | ||
| 3006 | @var{coordinates} should be a cons cell of the form @code{(@var{x} | ||
| 3007 | . @var{y})}, where @var{x} and @var{y} are frame-relative coordinates. | ||
| 3008 | |||
| 3009 | If there is no window at the specified position, the return value is | ||
| 3010 | @code{nil} . Otherwise, the return value is one of the following: | ||
| 3005 | 3011 | ||
| 3006 | @table @code | 3012 | @table @code |
| 3007 | @item (@var{relx} . @var{rely}) | 3013 | @item (@var{relx} . @var{rely}) |
| @@ -3038,6 +3044,44 @@ The function @code{coordinates-in-window-p} does not require a frame as | |||
| 3038 | argument because it always uses the frame that @var{window} is on. | 3044 | argument because it always uses the frame that @var{window} is on. |
| 3039 | @end defun | 3045 | @end defun |
| 3040 | 3046 | ||
| 3047 | The following functions return window positions in pixels, rather | ||
| 3048 | than character units. Though mostly useful on graphical displays, | ||
| 3049 | they can also be called on text-only terminals, where the screen area | ||
| 3050 | of each text character is taken to be ``one pixel''. | ||
| 3051 | |||
| 3052 | @defun window-pixel-edges &optional window | ||
| 3053 | This function returns a list of pixel coordinates for the edges of | ||
| 3054 | @var{window}. If @var{window} is omitted or @code{nil}, it defaults | ||
| 3055 | to the selected window. | ||
| 3056 | |||
| 3057 | The return value has the form @code{(@var{left} @var{top} @var{right} | ||
| 3058 | @var{bottom})}. The list elements are, respectively, the X pixel | ||
| 3059 | coordinate of the left window edge, the Y pixel coordinate of the top | ||
| 3060 | edge, one more than the X pixel coordinate of the right edge, and one | ||
| 3061 | more than the Y pixel coordinate of the bottom edge. | ||
| 3062 | @end defun | ||
| 3063 | |||
| 3064 | @defun window-inside-pixel-edges &optional window | ||
| 3065 | This function is like @code{window-pixel-edges}, except that it | ||
| 3066 | returns the pixel coordinates for the edges of the window's text area, | ||
| 3067 | rather than the pixel coordinates for the edges of the window itself. | ||
| 3068 | @var{window} must specify a live window. | ||
| 3069 | @end defun | ||
| 3070 | |||
| 3071 | The following functions return window positions in pixels, relative | ||
| 3072 | to the display screen rather than the frame: | ||
| 3073 | |||
| 3074 | @defun window-absolute-pixel-edges &optional window | ||
| 3075 | This function is like @code{window-pixel-edges}, except that it | ||
| 3076 | returns the edge pixel coordinates relative to the top left corner of | ||
| 3077 | the display screen. | ||
| 3078 | @end defun | ||
| 3079 | |||
| 3080 | @defun window-inside-absolute-pixel-edges &optional window | ||
| 3081 | This function is like @code{window-inside-pixel-edges}, except that it | ||
| 3082 | returns the edge pixel coordinates relative to the top left corner of | ||
| 3083 | the display screen. @var{window} must specify a live window. | ||
| 3084 | @end defun | ||
| 3041 | 3085 | ||
| 3042 | @node Window Configurations | 3086 | @node Window Configurations |
| 3043 | @section Window Configurations | 3087 | @section Window Configurations |
diff --git a/doc/man/emacs.1 b/doc/man/emacs.1 index 91ef4189b79..1acdcf5ebd2 100644 --- a/doc/man/emacs.1 +++ b/doc/man/emacs.1 | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | .\" See section COPYING for copyright and redistribution information. | 1 | .\" See section COPYING for copyright and redistribution information. |
| 2 | .TH EMACS 1 "2007 April 13" "GNU Emacs 24.0.91" | 2 | .TH EMACS 1 "2007 April 13" "GNU Emacs 24.0.92" |
| 3 | . | 3 | . |
| 4 | . | 4 | . |
| 5 | .SH NAME | 5 | .SH NAME |
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 43d9ba1b1e6..f94153479a8 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2011-11-24 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * gnus.texi, smtpmail.texi: Fix case of "GnuTLS". | ||
| 4 | |||
| 5 | 2011-11-24 Juanma Barranquero <lekktu@gmail.com> | ||
| 6 | |||
| 7 | * makefile.w32-in: Update dependencies. | ||
| 8 | |||
| 1 | 2011-11-20 Glenn Morris <rgm@gnu.org> | 9 | 2011-11-20 Glenn Morris <rgm@gnu.org> |
| 2 | 10 | ||
| 3 | * gnus.texi (Group Information): | 11 | * gnus.texi (Group Information): |
| @@ -2987,7 +2995,7 @@ | |||
| 2987 | * org.texi (Activation, Exporting, ASCII export, HTML export) | 2995 | * org.texi (Activation, Exporting, ASCII export, HTML export) |
| 2988 | (HTML Export commands, LaTeX/PDF export commands): | 2996 | (HTML Export commands, LaTeX/PDF export commands): |
| 2989 | Improve documentation about transient-mark-mode. | 2997 | Improve documentation about transient-mark-mode. |
| 2990 | (References): DOcuemtn the use of special names like $LR1 to reference | 2998 | (References): Document the use of special names like $LR1 to reference |
| 2991 | to fields in the last table row. | 2999 | to fields in the last table row. |
| 2992 | 3000 | ||
| 2993 | 2008-12-19 Juri Linkov <juri@jurta.org> | 3001 | 2008-12-19 Juri Linkov <juri@jurta.org> |
| @@ -7974,7 +7982,7 @@ | |||
| 7974 | 2003-02-01 Michael Albinus <Michael.Albinus@alcatel.de> | 7982 | 2003-02-01 Michael Albinus <Michael.Albinus@alcatel.de> |
| 7975 | 7983 | ||
| 7976 | * tramp.texi (Frequently Asked Questions): Explain a workaround if | 7984 | * tramp.texi (Frequently Asked Questions): Explain a workaround if |
| 7977 | another package loads accidently Ange-FTP. | 7985 | another package loads accidentally Ange-FTP. |
| 7978 | 7986 | ||
| 7979 | 2003-01-24 Michael Albinus <Michael.Albinus@alcatel.de> | 7987 | 2003-01-24 Michael Albinus <Michael.Albinus@alcatel.de> |
| 7980 | 7988 | ||
diff --git a/doc/misc/autotype.texi b/doc/misc/autotype.texi index ecf4c7e47b2..289c08eb00e 100644 --- a/doc/misc/autotype.texi +++ b/doc/misc/autotype.texi | |||
| @@ -419,7 +419,7 @@ inserting something. When this is @code{nil}, inserting is only done with | |||
| 419 | @kbd{M-x auto-insert}. When this is @code{function}, you are queried | 419 | @kbd{M-x auto-insert}. When this is @code{function}, you are queried |
| 420 | whenever @code{auto-insert} is called as a function, such as when Emacs | 420 | whenever @code{auto-insert} is called as a function, such as when Emacs |
| 421 | visits an empty file and you have set the above-mentioned hook. Otherwise | 421 | visits an empty file and you have set the above-mentioned hook. Otherwise |
| 422 | you are alway queried. | 422 | you are always queried. |
| 423 | 423 | ||
| 424 | @vindex auto-insert-prompt | 424 | @vindex auto-insert-prompt |
| 425 | When querying, the variable @code{auto-insert-prompt}'s value is used as a | 425 | When querying, the variable @code{auto-insert-prompt}'s value is used as a |
| @@ -510,7 +510,7 @@ inserting or updating the magic number. When this is @code{nil} updating | |||
| 510 | is only done with @kbd{M-x executable-set-magic}. When this is | 510 | is only done with @kbd{M-x executable-set-magic}. When this is |
| 511 | @code{function} you are queried whenever @code{executable-set-magic} is | 511 | @code{function} you are queried whenever @code{executable-set-magic} is |
| 512 | called as a function, such as when Emacs puts a buffer in Shell script | 512 | called as a function, such as when Emacs puts a buffer in Shell script |
| 513 | mode. Otherwise you are alway queried. | 513 | mode. Otherwise you are always queried. |
| 514 | 514 | ||
| 515 | @findex executable-self-display | 515 | @findex executable-self-display |
| 516 | @kbd{M-x executable-self-display} adds a magic number to the buffer, which | 516 | @kbd{M-x executable-self-display} adds a magic number to the buffer, which |
diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi index 290b120ea80..32311ff5c3e 100644 --- a/doc/misc/calc.texi +++ b/doc/misc/calc.texi | |||
| @@ -25644,7 +25644,7 @@ equivalent expression involving intervals: @samp{b in [a .. c)}. | |||
| 25644 | of @samp{<} and @samp{<=} are allowed, or any of the four combinations | 25644 | of @samp{<} and @samp{<=} are allowed, or any of the four combinations |
| 25645 | of @samp{>} and @samp{>=}. Four-argument constructions like | 25645 | of @samp{>} and @samp{>=}. Four-argument constructions like |
| 25646 | @samp{a < b < c < d}, and mixtures like @w{@samp{a < b = c}} that | 25646 | @samp{a < b < c < d}, and mixtures like @w{@samp{a < b = c}} that |
| 25647 | involve both equalities and inequalities, are not allowed. | 25647 | involve both equations and inequalities, are not allowed. |
| 25648 | 25648 | ||
| 25649 | @kindex a . | 25649 | @kindex a . |
| 25650 | @pindex calc-remove-equal | 25650 | @pindex calc-remove-equal |
| @@ -34631,7 +34631,7 @@ the derivative is evaluated at the value of @var{var}; otherwise, the | |||
| 34631 | derivative is left in terms of @var{var}. If the expression contains | 34631 | derivative is left in terms of @var{var}. If the expression contains |
| 34632 | functions for which no derivative formula is known, new derivative | 34632 | functions for which no derivative formula is known, new derivative |
| 34633 | functions are invented by adding primes to the names; @pxref{Calculus}. | 34633 | functions are invented by adding primes to the names; @pxref{Calculus}. |
| 34634 | However, if @var{symb} is non-@code{nil}, the presence of undifferentiable | 34634 | However, if @var{symb} is non-@code{nil}, the presence of nondifferentiable |
| 34635 | functions in @var{expr} instead cancels the whole differentiation, and | 34635 | functions in @var{expr} instead cancels the whole differentiation, and |
| 34636 | @code{deriv} returns @code{nil} instead. | 34636 | @code{deriv} returns @code{nil} instead. |
| 34637 | 34637 | ||
diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi index f8d757c2d87..cc566086f44 100644 --- a/doc/misc/ede.texi +++ b/doc/misc/ede.texi | |||
| @@ -268,7 +268,7 @@ projects. | |||
| 268 | 268 | ||
| 269 | Some project modes do not have a project file, but directly read a | 269 | Some project modes do not have a project file, but directly read a |
| 270 | Makefile or other existing file. Instead of directly editing the | 270 | Makefile or other existing file. Instead of directly editing the |
| 271 | object, you can edit the file by typine @kbd{C-c . e} | 271 | object, you can edit the file by typing @kbd{C-c . e} |
| 272 | (@code{ede-edit-file-target}). You should ``rescan'' the project | 272 | (@code{ede-edit-file-target}). You should ``rescan'' the project |
| 273 | afterwards (@pxref{Miscellaneous commands}). | 273 | afterwards (@pxref{Miscellaneous commands}). |
| 274 | 274 | ||
diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi index 7b4945027d3..d65c7a15f7b 100644 --- a/doc/misc/eieio.texi +++ b/doc/misc/eieio.texi | |||
| @@ -1458,7 +1458,7 @@ Useful methods to define for your new class include: | |||
| 1458 | 1458 | ||
| 1459 | @defmethod eieio-speedbar eieio-speedbar-derive-line-path obj depth | 1459 | @defmethod eieio-speedbar eieio-speedbar-derive-line-path obj depth |
| 1460 | Return a string representing a directory associated with an instance | 1460 | Return a string representing a directory associated with an instance |
| 1461 | of @var{obj}. @var{depth} can be used to indice how many levels of | 1461 | of @var{obj}. @var{depth} can be used to index how many levels of |
| 1462 | indentation have been opened by the user where @var{obj} is shown. | 1462 | indentation have been opened by the user where @var{obj} is shown. |
| 1463 | @end defmethod | 1463 | @end defmethod |
| 1464 | 1464 | ||
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi index f099dfd36d0..69b17a94d68 100644 --- a/doc/misc/gnus.texi +++ b/doc/misc/gnus.texi | |||
| @@ -13761,7 +13761,7 @@ The same as the above, but don't do automatic @acronym{STARTTLS} upgrades. | |||
| 13761 | @findex nntp-open-tls-stream | 13761 | @findex nntp-open-tls-stream |
| 13762 | @item nntp-open-tls-stream | 13762 | @item nntp-open-tls-stream |
| 13763 | Opens a connection to a server over a @dfn{secure} channel. To use | 13763 | Opens a connection to a server over a @dfn{secure} channel. To use |
| 13764 | this you must have @uref{http://www.gnu.org/software/gnutls/, GNUTLS} | 13764 | this you must have @uref{http://www.gnu.org/software/gnutls/, GnuTLS} |
| 13765 | installed. You then define a server as follows: | 13765 | installed. You then define a server as follows: |
| 13766 | 13766 | ||
| 13767 | @lisp | 13767 | @lisp |
| @@ -21279,7 +21279,7 @@ name (or part of a name) to match. | |||
| 21279 | @node The swish++ Engine | 21279 | @node The swish++ Engine |
| 21280 | @subsubsection The swish++ Engine | 21280 | @subsubsection The swish++ Engine |
| 21281 | 21281 | ||
| 21282 | FIXEM: Say something more here. | 21282 | FIXME: Say something more here. |
| 21283 | 21283 | ||
| 21284 | Documentation for swish++ may be found at the swish++ sourceforge page: | 21284 | Documentation for swish++ may be found at the swish++ sourceforge page: |
| 21285 | @uref{http://swishplusplus.sourceforge.net} | 21285 | @uref{http://swishplusplus.sourceforge.net} |
| @@ -21302,7 +21302,7 @@ to get a group name. By default this is @code{$HOME/Mail}. | |||
| 21302 | @node The swish-e Engine | 21302 | @node The swish-e Engine |
| 21303 | @subsubsection The swish-e Engine | 21303 | @subsubsection The swish-e Engine |
| 21304 | 21304 | ||
| 21305 | FIXEM: Say something more here. | 21305 | FIXME: Say something more here. |
| 21306 | 21306 | ||
| 21307 | Documentation for swish-e may be found at the swish-e homepage | 21307 | Documentation for swish-e may be found at the swish-e homepage |
| 21308 | @uref{http://swish-e.org} | 21308 | @uref{http://swish-e.org} |
| @@ -21895,7 +21895,7 @@ Clearly, the easiest way would be if marks could somehow be | |||
| 21895 | automatically set for the original article. This is exactly what | 21895 | automatically set for the original article. This is exactly what |
| 21896 | @emph{marks propagation} is about. | 21896 | @emph{marks propagation} is about. |
| 21897 | 21897 | ||
| 21898 | Marks propagation is deactivated by default. You can activate it for a | 21898 | Marks propagation is inactive by default. You can activate it for a |
| 21899 | certain @code{nnmairix} group with | 21899 | certain @code{nnmairix} group with |
| 21900 | @code{nnmairix-group-toggle-propmarks-this-group} (bound to @kbd{G b | 21900 | @code{nnmairix-group-toggle-propmarks-this-group} (bound to @kbd{G b |
| 21901 | p}). This function will warn you if you try to use it with your default | 21901 | p}). This function will warn you if you try to use it with your default |
| @@ -22047,7 +22047,7 @@ an example server definition: | |||
| 22047 | (nnml "mairix" (nnml-directory "mairix") (nnml-get-new-mail nil)) | 22047 | (nnml "mairix" (nnml-directory "mairix") (nnml-get-new-mail nil)) |
| 22048 | @end lisp | 22048 | @end lisp |
| 22049 | 22049 | ||
| 22050 | (The @code{nnmaildir} back end also has a server variabe | 22050 | (The @code{nnmaildir} back end also has a server variable |
| 22051 | @code{get-new-mail}, but its default value is @code{nil}, so you don't | 22051 | @code{get-new-mail}, but its default value is @code{nil}, so you don't |
| 22052 | have to explicitly set it if you use a @code{nnmaildir} server just for | 22052 | have to explicitly set it if you use a @code{nnmaildir} server just for |
| 22053 | mairix.) | 22053 | mairix.) |
| @@ -27408,7 +27408,7 @@ considered home score and adapt files (@pxref{Home Score File}) have | |||
| 27408 | been added. | 27408 | been added. |
| 27409 | 27409 | ||
| 27410 | @item | 27410 | @item |
| 27411 | @code{nndoc} was rewritten to be easily extendable (@pxref{Document | 27411 | @code{nndoc} was rewritten to be easily extensible (@pxref{Document |
| 27412 | Server Internals}). | 27412 | Server Internals}). |
| 27413 | 27413 | ||
| 27414 | @item | 27414 | @item |
| @@ -27801,7 +27801,7 @@ The revised Gnus @acronym{FAQ} is included in the manual, | |||
| 27801 | @acronym{TLS} wrapper shipped with Gnus | 27801 | @acronym{TLS} wrapper shipped with Gnus |
| 27802 | 27802 | ||
| 27803 | @acronym{TLS}/@acronym{SSL} is now supported in @acronym{IMAP} and | 27803 | @acronym{TLS}/@acronym{SSL} is now supported in @acronym{IMAP} and |
| 27804 | @acronym{NNTP} via @file{tls.el} and GNUTLS. | 27804 | @acronym{NNTP} via @file{tls.el} and GnuTLS. |
| 27805 | 27805 | ||
| 27806 | @item | 27806 | @item |
| 27807 | Improved anti-spam features. | 27807 | Improved anti-spam features. |
diff --git a/doc/misc/idlwave.texi b/doc/misc/idlwave.texi index 8e172301915..3e13dbb0f23 100644 --- a/doc/misc/idlwave.texi +++ b/doc/misc/idlwave.texi | |||
| @@ -62,7 +62,7 @@ developing GNU and promoting software freedom.'' | |||
| 62 | IDLWAVE is a package which supports editing source code written in the | 62 | IDLWAVE is a package which supports editing source code written in the |
| 63 | Interactive Data Language (IDL), and running IDL as an inferior shell. | 63 | Interactive Data Language (IDL), and running IDL as an inferior shell. |
| 64 | 64 | ||
| 65 | @insertcopying | 65 | @insertcopying |
| 66 | @end ifnottex | 66 | @end ifnottex |
| 67 | 67 | ||
| 68 | @menu | 68 | @menu |
| @@ -72,8 +72,8 @@ Interactive Data Language (IDL), and running IDL as an inferior shell. | |||
| 72 | * The IDLWAVE Major Mode:: The mode for editing IDL programs | 72 | * The IDLWAVE Major Mode:: The mode for editing IDL programs |
| 73 | * The IDLWAVE Shell:: The mode for running IDL as an inferior program | 73 | * The IDLWAVE Shell:: The mode for running IDL as an inferior program |
| 74 | * Acknowledgements:: Who did what | 74 | * Acknowledgements:: Who did what |
| 75 | * Sources of Routine Info:: How does IDLWAVE know about routine XYZ | 75 | * Sources of Routine Info:: How does IDLWAVE know about routine XYZ |
| 76 | * HTML Help Browser Tips:: | 76 | * HTML Help Browser Tips:: |
| 77 | * Configuration Examples:: The user is king | 77 | * Configuration Examples:: The user is king |
| 78 | * Windows and MacOS:: What still works, and how | 78 | * Windows and MacOS:: What still works, and how |
| 79 | * Troubleshooting:: When good computers turn bad | 79 | * Troubleshooting:: When good computers turn bad |
| @@ -85,9 +85,9 @@ Interactive Data Language (IDL), and running IDL as an inferior shell. | |||
| 85 | 85 | ||
| 86 | Getting Started (Tutorial) | 86 | Getting Started (Tutorial) |
| 87 | 87 | ||
| 88 | * Lesson I -- Development Cycle:: | 88 | * Lesson I -- Development Cycle:: |
| 89 | * Lesson II -- Customization:: | 89 | * Lesson II -- Customization:: |
| 90 | * Lesson III -- User Catalog:: | 90 | * Lesson III -- User Catalog:: |
| 91 | 91 | ||
| 92 | The IDLWAVE Major Mode | 92 | The IDLWAVE Major Mode |
| 93 | 93 | ||
| @@ -107,7 +107,7 @@ The IDLWAVE Major Mode | |||
| 107 | Code Formatting | 107 | Code Formatting |
| 108 | 108 | ||
| 109 | * Code Indentation:: Reflecting the logical structure | 109 | * Code Indentation:: Reflecting the logical structure |
| 110 | * Continued Statement Indentation:: | 110 | * Continued Statement Indentation:: |
| 111 | * Comment Indentation:: Special indentation for comment lines | 111 | * Comment Indentation:: Special indentation for comment lines |
| 112 | * Continuation Lines:: Splitting statements over lines | 112 | * Continuation Lines:: Splitting statements over lines |
| 113 | * Syntax Highlighting:: Font-lock support | 113 | * Syntax Highlighting:: Font-lock support |
| @@ -115,14 +115,14 @@ Code Formatting | |||
| 115 | 115 | ||
| 116 | Online Help | 116 | Online Help |
| 117 | 117 | ||
| 118 | * Help with HTML Documentation:: | 118 | * Help with HTML Documentation:: |
| 119 | * Help with Source:: | 119 | * Help with Source:: |
| 120 | 120 | ||
| 121 | Completion | 121 | Completion |
| 122 | 122 | ||
| 123 | * Case of Completed Words:: CaseOFcomPletedWords | 123 | * Case of Completed Words:: CaseOFcomPletedWords |
| 124 | * Object Method Completion and Class Ambiguity:: obj->Method, what? | 124 | * Object Method Completion and Class Ambiguity:: obj->Method, what? |
| 125 | * Object Method Completion in the Shell:: | 125 | * Object Method Completion in the Shell:: |
| 126 | * Class and Keyword Inheritance:: obj->Method, _EXTRA=e | 126 | * Class and Keyword Inheritance:: obj->Method, _EXTRA=e |
| 127 | * Structure Tag Completion:: Completing state.Tag | 127 | * Structure Tag Completion:: Completing state.Tag |
| 128 | 128 | ||
| @@ -136,32 +136,32 @@ The IDLWAVE Shell | |||
| 136 | 136 | ||
| 137 | * Starting the Shell:: How to launch IDL as a subprocess | 137 | * Starting the Shell:: How to launch IDL as a subprocess |
| 138 | * Using the Shell:: Interactively working with the Shell | 138 | * Using the Shell:: Interactively working with the Shell |
| 139 | * Commands Sent to the Shell:: | 139 | * Commands Sent to the Shell:: |
| 140 | * Debugging IDL Programs:: | 140 | * Debugging IDL Programs:: |
| 141 | * Examining Variables:: | 141 | * Examining Variables:: |
| 142 | * Custom Expression Examination:: | 142 | * Custom Expression Examination:: |
| 143 | 143 | ||
| 144 | Debugging IDL Programs | 144 | Debugging IDL Programs |
| 145 | 145 | ||
| 146 | * A Tale of Two Modes:: | 146 | * A Tale of Two Modes:: |
| 147 | * Debug Key Bindings:: | 147 | * Debug Key Bindings:: |
| 148 | * Breakpoints and Stepping:: | 148 | * Breakpoints and Stepping:: |
| 149 | * Compiling Programs:: | 149 | * Compiling Programs:: |
| 150 | * Walking the Calling Stack:: | 150 | * Walking the Calling Stack:: |
| 151 | * Electric Debug Mode:: | 151 | * Electric Debug Mode:: |
| 152 | 152 | ||
| 153 | Sources of Routine Info | 153 | Sources of Routine Info |
| 154 | 154 | ||
| 155 | * Routine Definitions:: Where IDL Routines are defined. | 155 | * Routine Definitions:: Where IDL Routines are defined. |
| 156 | * Routine Information Sources:: So how does IDLWAVE know about... | 156 | * Routine Information Sources:: So how does IDLWAVE know about... |
| 157 | * Catalogs:: | 157 | * Catalogs:: |
| 158 | * Load-Path Shadows:: Routines defined in several places | 158 | * Load-Path Shadows:: Routines defined in several places |
| 159 | * Documentation Scan:: Scanning the IDL Manuals | 159 | * Documentation Scan:: Scanning the IDL Manuals |
| 160 | 160 | ||
| 161 | Catalogs | 161 | Catalogs |
| 162 | 162 | ||
| 163 | * Library Catalogs:: | 163 | * Library Catalogs:: |
| 164 | * User Catalog:: | 164 | * User Catalog:: |
| 165 | 165 | ||
| 166 | @end detailmenu | 166 | @end detailmenu |
| 167 | @end menu | 167 | @end menu |
| @@ -193,13 +193,13 @@ form a complete development environment. Here is a brief summary of | |||
| 193 | what IDLWAVE does: | 193 | what IDLWAVE does: |
| 194 | 194 | ||
| 195 | @itemize @bullet | 195 | @itemize @bullet |
| 196 | @item | 196 | @item |
| 197 | Smart code indentation and automatic-formatting. | 197 | Smart code indentation and automatic-formatting. |
| 198 | @item | 198 | @item |
| 199 | Three level syntax highlighting support. | 199 | Three level syntax highlighting support. |
| 200 | @item | 200 | @item |
| 201 | Context-sensitive display of calling sequences and keywords for more | 201 | Context-sensitive display of calling sequences and keywords for more |
| 202 | than 1000 native IDL routines, extendible to any additional number of | 202 | than 1000 native IDL routines, extensible to any additional number of |
| 203 | local routines, and already available with many pre-scanned libraries. | 203 | local routines, and already available with many pre-scanned libraries. |
| 204 | @item | 204 | @item |
| 205 | Fast, context-sensitive online HTML help, or source-header help for | 205 | Fast, context-sensitive online HTML help, or source-header help for |
| @@ -373,9 +373,9 @@ at point. | |||
| 373 | @cindex Getting Started | 373 | @cindex Getting Started |
| 374 | 374 | ||
| 375 | @menu | 375 | @menu |
| 376 | * Lesson I -- Development Cycle:: | 376 | * Lesson I -- Development Cycle:: |
| 377 | * Lesson II -- Customization:: | 377 | * Lesson II -- Customization:: |
| 378 | * Lesson III -- User Catalog:: | 378 | * Lesson III -- User Catalog:: |
| 379 | @end menu | 379 | @end menu |
| 380 | 380 | ||
| 381 | @node Lesson I -- Development Cycle, Lesson II -- Customization, Getting Started, Getting Started | 381 | @node Lesson I -- Development Cycle, Lesson II -- Customization, Getting Started, Getting Started |
| @@ -418,13 +418,13 @@ function daynr,d,m,y | |||
| 418 | y1 = y * delta | 418 | y1 = y * delta |
| 419 | return, d + floor(m1*30.6)+floor(y1*365.25)+5 | 419 | return, d + floor(m1*30.6)+floor(y1*365.25)+5 |
| 420 | end | 420 | end |
| 421 | 421 | ||
| 422 | function weekday,day,month,year | 422 | function weekday,day,month,year |
| 423 | ;; compute weekday number for date | 423 | ;; compute weekday number for date |
| 424 | nr = daynr(day,month,year) | 424 | nr = daynr(day,month,year) |
| 425 | return, nr mod 7 | 425 | return, nr mod 7 |
| 426 | end | 426 | end |
| 427 | 427 | ||
| 428 | pro plot_wday,day,month | 428 | pro plot_wday,day,month |
| 429 | ;; Plot the weekday of a date in the first 10 years of this century. | 429 | ;; Plot the weekday of a date in the first 10 years of this century. |
| 430 | years = 2000,+indgen(10) | 430 | years = 2000,+indgen(10) |
| @@ -753,7 +753,7 @@ them. | |||
| 753 | 753 | ||
| 754 | @menu | 754 | @menu |
| 755 | * Code Indentation:: Reflecting the logical structure | 755 | * Code Indentation:: Reflecting the logical structure |
| 756 | * Continued Statement Indentation:: | 756 | * Continued Statement Indentation:: |
| 757 | * Comment Indentation:: Special indentation for comment lines | 757 | * Comment Indentation:: Special indentation for comment lines |
| 758 | * Continuation Lines:: Splitting statements over lines | 758 | * Continuation Lines:: Splitting statements over lines |
| 759 | * Syntax Highlighting:: Font-lock support | 759 | * Syntax Highlighting:: Font-lock support |
| @@ -797,7 +797,7 @@ subprogram). The command @kbd{C-M-q} reindents the entire current | |||
| 797 | routine. @xref{Actions}, for information how to impose additional | 797 | routine. @xref{Actions}, for information how to impose additional |
| 798 | formatting conventions on foreign code. | 798 | formatting conventions on foreign code. |
| 799 | 799 | ||
| 800 | @defopt idlwave-main-block-indent (@code{2}) | 800 | @defopt idlwave-main-block-indent (@code{2}) |
| 801 | Extra indentation for the main block of code. That is the block between | 801 | Extra indentation for the main block of code. That is the block between |
| 802 | the FUNCTION/PRO statement and the END statement for that program | 802 | the FUNCTION/PRO statement and the END statement for that program |
| 803 | unit. | 803 | unit. |
| @@ -998,7 +998,7 @@ in the first line of a comment paragraph. | |||
| 998 | 998 | ||
| 999 | @defopt idlwave-use-last-hang-indent (@code{nil}) | 999 | @defopt idlwave-use-last-hang-indent (@code{nil}) |
| 1000 | Non-@code{nil} means use last match on line for | 1000 | Non-@code{nil} means use last match on line for |
| 1001 | @code{idlwave-indent-regexp}. | 1001 | @code{idlwave-indent-regexp}. |
| 1002 | @end defopt | 1002 | @end defopt |
| 1003 | 1003 | ||
| 1004 | @node Syntax Highlighting, Octals and Highlighting, Continuation Lines, Code Formatting | 1004 | @node Syntax Highlighting, Octals and Highlighting, Continuation Lines, Code Formatting |
| @@ -1026,7 +1026,7 @@ for highlighting using the variable | |||
| 1026 | 1026 | ||
| 1027 | @defopt idlwave-default-font-lock-items | 1027 | @defopt idlwave-default-font-lock-items |
| 1028 | Items which should be fontified on the default fontification level | 1028 | Items which should be fontified on the default fontification level |
| 1029 | 2. | 1029 | 2. |
| 1030 | @end defopt | 1030 | @end defopt |
| 1031 | 1031 | ||
| 1032 | @node Octals and Highlighting, , Syntax Highlighting, Code Formatting | 1032 | @node Octals and Highlighting, , Syntax Highlighting, Code Formatting |
| @@ -1104,7 +1104,7 @@ plot,x,alog(x+5*sin(x) + 2), | |||
| 1104 | On positions 1,2 and 8, information about the @samp{plot} procedure will | 1104 | On positions 1,2 and 8, information about the @samp{plot} procedure will |
| 1105 | be shown. On positions 3,4, and 7, the @samp{alog} function will be | 1105 | be shown. On positions 3,4, and 7, the @samp{alog} function will be |
| 1106 | described, while positions 5 and 6 will investigate the @samp{sin} | 1106 | described, while positions 5 and 6 will investigate the @samp{sin} |
| 1107 | function. | 1107 | function. |
| 1108 | 1108 | ||
| 1109 | When you ask for routine information about an object method, and the | 1109 | When you ask for routine information about an object method, and the |
| 1110 | method exists in several classes, IDLWAVE queries for the class of the | 1110 | method exists in several classes, IDLWAVE queries for the class of the |
| @@ -1162,7 +1162,7 @@ will automatically split into the next two. | |||
| 1162 | @item @i{Other} | 1162 | @item @i{Other} |
| 1163 | @tab Any other routine with a file not known to be on the search path. | 1163 | @tab Any other routine with a file not known to be on the search path. |
| 1164 | @item @i{Unresolved} | 1164 | @item @i{Unresolved} |
| 1165 | @tab An otherwise unknown routine the shell lists as unresolved | 1165 | @tab An otherwise unknown routine the shell lists as unresolved |
| 1166 | (referenced, but not compiled). | 1166 | (referenced, but not compiled). |
| 1167 | @end multitable | 1167 | @end multitable |
| 1168 | 1168 | ||
| @@ -1198,7 +1198,7 @@ with the middle mouse button inserts keywords or visits files: | |||
| 1198 | @item @i{Usage} | 1198 | @item @i{Usage} |
| 1199 | @tab If online help is installed, a click with the @emph{right} mouse | 1199 | @tab If online help is installed, a click with the @emph{right} mouse |
| 1200 | button on the @i{Usage:} line will access the help for the | 1200 | button on the @i{Usage:} line will access the help for the |
| 1201 | routine (@pxref{Online Help}). | 1201 | routine (@pxref{Online Help}). |
| 1202 | @item @i{Keyword} | 1202 | @item @i{Keyword} |
| 1203 | @tab Online help about keywords is also available with the | 1203 | @tab Online help about keywords is also available with the |
| 1204 | @emph{right} mouse button. Clicking on a keyword with the @emph{middle} | 1204 | @emph{right} mouse button. Clicking on a keyword with the @emph{middle} |
| @@ -1340,8 +1340,8 @@ directly in the originating source file. | |||
| 1340 | 1340 | ||
| 1341 | 1341 | ||
| 1342 | @menu | 1342 | @menu |
| 1343 | * Help with HTML Documentation:: | 1343 | * Help with HTML Documentation:: |
| 1344 | * Help with Source:: | 1344 | * Help with Source:: |
| 1345 | @end menu | 1345 | @end menu |
| 1346 | 1346 | ||
| 1347 | @node Help with HTML Documentation, Help with Source, Online Help, Online Help | 1347 | @node Help with HTML Documentation, Help with Source, Online Help, Online Help |
| @@ -1393,7 +1393,7 @@ configuring a browser for use with IDL's HTML help system. | |||
| 1393 | Relative directory of the system-supplied HTML help directory, | 1393 | Relative directory of the system-supplied HTML help directory, |
| 1394 | considered with respect to @code{idlwave-system-directory}. Relevant | 1394 | considered with respect to @code{idlwave-system-directory}. Relevant |
| 1395 | for IDL 6.2 and greater. Should not change. | 1395 | for IDL 6.2 and greater. Should not change. |
| 1396 | @end defopt | 1396 | @end defopt |
| 1397 | 1397 | ||
| 1398 | @defopt idlwave-html-help-location @file{/usr/local/etc/} | 1398 | @defopt idlwave-html-help-location @file{/usr/local/etc/} |
| 1399 | The directory where the @file{idl_html_help} HTML directory live. | 1399 | The directory where the @file{idl_html_help} HTML directory live. |
| @@ -1613,7 +1613,7 @@ available. | |||
| 1613 | @menu | 1613 | @menu |
| 1614 | * Case of Completed Words:: CaseOFcomPletedWords | 1614 | * Case of Completed Words:: CaseOFcomPletedWords |
| 1615 | * Object Method Completion and Class Ambiguity:: obj->Method, what? | 1615 | * Object Method Completion and Class Ambiguity:: obj->Method, what? |
| 1616 | * Object Method Completion in the Shell:: | 1616 | * Object Method Completion in the Shell:: |
| 1617 | * Class and Keyword Inheritance:: obj->Method, _EXTRA=e | 1617 | * Class and Keyword Inheritance:: obj->Method, _EXTRA=e |
| 1618 | * Structure Tag Completion:: Completing state.Tag | 1618 | * Structure Tag Completion:: Completing state.Tag |
| 1619 | @end menu | 1619 | @end menu |
| @@ -1681,7 +1681,7 @@ narrow down the number of possible completions. The variable | |||
| 1681 | @code{idlwave-query-class} can be configured to make such prompting the | 1681 | @code{idlwave-query-class} can be configured to make such prompting the |
| 1682 | default for all methods (not recommended), or selectively for very | 1682 | default for all methods (not recommended), or selectively for very |
| 1683 | common methods for which the number of completing keywords would be too | 1683 | common methods for which the number of completing keywords would be too |
| 1684 | large (e.g. @code{Init,SetProperty,GetProperty}). | 1684 | large (e.g. @code{Init,SetProperty,GetProperty}). |
| 1685 | 1685 | ||
| 1686 | @cindex Saving object class on @code{->} | 1686 | @cindex Saving object class on @code{->} |
| 1687 | @cindex @code{->} | 1687 | @cindex @code{->} |
| @@ -1729,7 +1729,7 @@ routine info, or online help within a method routine, a query is sent to | |||
| 1729 | determine the class of the object. If this query is successful, the | 1729 | determine the class of the object. If this query is successful, the |
| 1730 | class found will be used to select appropriate completions, routine | 1730 | class found will be used to select appropriate completions, routine |
| 1731 | info, or help. If unsuccessful, information from all known classes will | 1731 | info, or help. If unsuccessful, information from all known classes will |
| 1732 | be used (as in the buffer). | 1732 | be used (as in the buffer). |
| 1733 | 1733 | ||
| 1734 | @node Class and Keyword Inheritance, Structure Tag Completion, Object Method Completion in the Shell, Completion | 1734 | @node Class and Keyword Inheritance, Structure Tag Completion, Object Method Completion in the Shell, Completion |
| 1735 | @subsection Class and Keyword Inheritance | 1735 | @subsection Class and Keyword Inheritance |
| @@ -1772,7 +1772,7 @@ keywords based on their originating class. | |||
| 1772 | Non-@code{nil} means consider inheritance during completion, online help etc. | 1772 | Non-@code{nil} means consider inheritance during completion, online help etc. |
| 1773 | @end defopt | 1773 | @end defopt |
| 1774 | 1774 | ||
| 1775 | @defopt idlwave-keyword-class-inheritance | 1775 | @defopt idlwave-keyword-class-inheritance |
| 1776 | A list of regular expressions to match methods for which simple | 1776 | A list of regular expressions to match methods for which simple |
| 1777 | class-driven keyword inheritance will be used for Completion. | 1777 | class-driven keyword inheritance will be used for Completion. |
| 1778 | @end defopt | 1778 | @end defopt |
| @@ -1802,7 +1802,7 @@ Structure tag completion is not enabled by default. To enable it, | |||
| 1802 | simply add the following to your @file{.emacs}: | 1802 | simply add the following to your @file{.emacs}: |
| 1803 | 1803 | ||
| 1804 | @lisp | 1804 | @lisp |
| 1805 | (add-hook 'idlwave-load-hook | 1805 | (add-hook 'idlwave-load-hook |
| 1806 | (lambda () (require 'idlw-complete-structtag))) | 1806 | (lambda () (require 'idlw-complete-structtag))) |
| 1807 | @end lisp | 1807 | @end lisp |
| 1808 | 1808 | ||
| @@ -2226,7 +2226,7 @@ your @file{.emacs} file: | |||
| 2226 | (idlwave-action-and-binding "\\<\\(pro\\|function\\)\\>[ \t]*\\<" | 2226 | (idlwave-action-and-binding "\\<\\(pro\\|function\\)\\>[ \t]*\\<" |
| 2227 | '(capitalize-word 1) t) | 2227 | '(capitalize-word 1) t) |
| 2228 | ;; Capitalize common block name | 2228 | ;; Capitalize common block name |
| 2229 | (idlwave-action-and-binding "\\<common\\>[ \t]+\\<" | 2229 | (idlwave-action-and-binding "\\<common\\>[ \t]+\\<" |
| 2230 | '(capitalize-word 1) t))) | 2230 | '(capitalize-word 1) t))) |
| 2231 | @end lisp | 2231 | @end lisp |
| 2232 | 2232 | ||
| @@ -2384,10 +2384,10 @@ currently only works under Unix and MacOSX. | |||
| 2384 | @menu | 2384 | @menu |
| 2385 | * Starting the Shell:: How to launch IDL as a subprocess | 2385 | * Starting the Shell:: How to launch IDL as a subprocess |
| 2386 | * Using the Shell:: Interactively working with the Shell | 2386 | * Using the Shell:: Interactively working with the Shell |
| 2387 | * Commands Sent to the Shell:: | 2387 | * Commands Sent to the Shell:: |
| 2388 | * Debugging IDL Programs:: | 2388 | * Debugging IDL Programs:: |
| 2389 | * Examining Variables:: | 2389 | * Examining Variables:: |
| 2390 | * Custom Expression Examination:: | 2390 | * Custom Expression Examination:: |
| 2391 | @end menu | 2391 | @end menu |
| 2392 | 2392 | ||
| 2393 | @node Starting the Shell, Using the Shell, The IDLWAVE Shell, The IDLWAVE Shell | 2393 | @node Starting the Shell, Using the Shell, The IDLWAVE Shell, The IDLWAVE Shell |
| @@ -2414,7 +2414,7 @@ In order to create a separate frame for the IDLWAVE shell buffer, call | |||
| 2414 | @code{idlwave-shell} with a prefix argument: @kbd{C-u C-c C-s} or | 2414 | @code{idlwave-shell} with a prefix argument: @kbd{C-u C-c C-s} or |
| 2415 | @kbd{C-u C-c C-l}. If you always want a dedicated frame for the shell | 2415 | @kbd{C-u C-c C-l}. If you always want a dedicated frame for the shell |
| 2416 | window, configure the variable | 2416 | window, configure the variable |
| 2417 | @code{idlwave-shell-use-dedicated-frame}. | 2417 | @code{idlwave-shell-use-dedicated-frame}. |
| 2418 | 2418 | ||
| 2419 | To launch a quick IDLWAVE shell directly from a shell prompt without | 2419 | To launch a quick IDLWAVE shell directly from a shell prompt without |
| 2420 | an IDLWAVE buffer (e.g., as a replacement for running inside an | 2420 | an IDLWAVE buffer (e.g., as a replacement for running inside an |
| @@ -2471,7 +2471,7 @@ The file in which the command history of the idlwave shell is saved. | |||
| 2471 | Unless it's an absolute path, it goes in | 2471 | Unless it's an absolute path, it goes in |
| 2472 | @code{idlwave-config-directory}. | 2472 | @code{idlwave-config-directory}. |
| 2473 | @end defopt | 2473 | @end defopt |
| 2474 | 2474 | ||
| 2475 | @defopt idlwave-shell-use-dedicated-frame (@code{nil}) | 2475 | @defopt idlwave-shell-use-dedicated-frame (@code{nil}) |
| 2476 | Non-@code{nil} means IDLWAVE should use a special frame to display the | 2476 | Non-@code{nil} means IDLWAVE should use a special frame to display the |
| 2477 | shell buffer. | 2477 | shell buffer. |
| @@ -2574,7 +2574,7 @@ keywords, system variables, system variable tags etc. | |||
| 2574 | @item @kbd{C-c C-v} | 2574 | @item @kbd{C-c C-v} |
| 2575 | @tab Find the source file of a routine (@code{idlwave-find-module}) | 2575 | @tab Find the source file of a routine (@code{idlwave-find-module}) |
| 2576 | @item @kbd{C-c C-t} | 2576 | @item @kbd{C-c C-t} |
| 2577 | @tab Find the source file of a routine in the currently visited file | 2577 | @tab Find the source file of a routine in the currently visited file |
| 2578 | (@code{idlwave-find-module-this-file}). | 2578 | (@code{idlwave-find-module-this-file}). |
| 2579 | @item @kbd{C-c =} | 2579 | @item @kbd{C-c =} |
| 2580 | @tab Compile a library routine (@code{idlwave-resolve}) | 2580 | @tab Compile a library routine (@code{idlwave-resolve}) |
| @@ -2697,12 +2697,12 @@ buffers. | |||
| 2697 | @end defopt | 2697 | @end defopt |
| 2698 | 2698 | ||
| 2699 | @menu | 2699 | @menu |
| 2700 | * A Tale of Two Modes:: | 2700 | * A Tale of Two Modes:: |
| 2701 | * Debug Key Bindings:: | 2701 | * Debug Key Bindings:: |
| 2702 | * Breakpoints and Stepping:: | 2702 | * Breakpoints and Stepping:: |
| 2703 | * Compiling Programs:: | 2703 | * Compiling Programs:: |
| 2704 | * Walking the Calling Stack:: | 2704 | * Walking the Calling Stack:: |
| 2705 | * Electric Debug Mode:: | 2705 | * Electric Debug Mode:: |
| 2706 | @end menu | 2706 | @end menu |
| 2707 | 2707 | ||
| 2708 | 2708 | ||
| @@ -2795,7 +2795,7 @@ executed from the shell window, the breakpoint where IDL is currently | |||
| 2795 | stopped will be deleted. To clear all breakpoints, use @kbd{C-c C-d | 2795 | stopped will be deleted. To clear all breakpoints, use @kbd{C-c C-d |
| 2796 | C-a} (@code{idlwave-clear-all-bp}). Breakpoints can also be disabled | 2796 | C-a} (@code{idlwave-clear-all-bp}). Breakpoints can also be disabled |
| 2797 | and re-enabled: @kbd{C-c C-d C-\} | 2797 | and re-enabled: @kbd{C-c C-d C-\} |
| 2798 | (@code{idlwave-shell-toggle-enable-current-bp}). | 2798 | (@code{idlwave-shell-toggle-enable-current-bp}). |
| 2799 | 2799 | ||
| 2800 | Breakpoint lines are highlighted or indicated with an icon in the source | 2800 | Breakpoint lines are highlighted or indicated with an icon in the source |
| 2801 | code (different icons for conditional, after, and other break types). | 2801 | code (different icons for conditional, after, and other break types). |
| @@ -2804,7 +2804,7 @@ places breakpoints as close as possible on or after the line you | |||
| 2804 | specify. IDLWAVE queries the shell for the actual breakpoint location | 2804 | specify. IDLWAVE queries the shell for the actual breakpoint location |
| 2805 | which was set, so the exact line you specify may not be marked. You can | 2805 | which was set, so the exact line you specify may not be marked. You can |
| 2806 | re-sync the breakpoint list and update the display at any time (e.g., if | 2806 | re-sync the breakpoint list and update the display at any time (e.g., if |
| 2807 | you add or remove some on the command line) using @kbd{C-c C-d C-l}. | 2807 | you add or remove some on the command line) using @kbd{C-c C-d C-l}. |
| 2808 | 2808 | ||
| 2809 | In recent IDLWAVE versions, the breakpoint line is highlighted when the | 2809 | In recent IDLWAVE versions, the breakpoint line is highlighted when the |
| 2810 | mouse is moved over it, and a tooltip pops up describing the break | 2810 | mouse is moved over it, and a tooltip pops up describing the break |
| @@ -2914,8 +2914,8 @@ configured in @code{idlwave-shell-mark-stop-line}. | |||
| 2914 | @kindex C-c C-d C-c | 2914 | @kindex C-c C-d C-c |
| 2915 | In order to compile the current buffer under the IDLWAVE shell, press | 2915 | In order to compile the current buffer under the IDLWAVE shell, press |
| 2916 | @kbd{C-c C-d C-c} (@code{idlwave-save-and-run}). This first saves the | 2916 | @kbd{C-c C-d C-c} (@code{idlwave-save-and-run}). This first saves the |
| 2917 | current buffer and then sends the command @samp{.run path/to/file} to the | 2917 | current buffer and then sends the command @samp{.run path/to/file} to the |
| 2918 | shell. You can also execute @kbd{C-c C-d C-c} from the shell buffer, in | 2918 | shell. You can also execute @kbd{C-c C-d C-c} from the shell buffer, in |
| 2919 | which case the most recently compiled buffer will be saved and | 2919 | which case the most recently compiled buffer will be saved and |
| 2920 | re-compiled. | 2920 | re-compiled. |
| 2921 | 2921 | ||
| @@ -3080,9 +3080,9 @@ halts. | |||
| 3080 | 3080 | ||
| 3081 | @defopt idlwave-shell-electric-stop-color (Violet) | 3081 | @defopt idlwave-shell-electric-stop-color (Violet) |
| 3082 | Default color of the stopped line overlay when in electric debug mode. | 3082 | Default color of the stopped line overlay when in electric debug mode. |
| 3083 | @end defopt | 3083 | @end defopt |
| 3084 | 3084 | ||
| 3085 | @defopt idlwave-shell-electric-stop-line-face | 3085 | @defopt idlwave-shell-electric-stop-line-face |
| 3086 | The face to use for the stopped line. Defaults to a face similar to the | 3086 | The face to use for the stopped line. Defaults to a face similar to the |
| 3087 | modeline, with color @code{idlwave-shell-electric-stop-color}. | 3087 | modeline, with color @code{idlwave-shell-electric-stop-color}. |
| 3088 | @end defopt | 3088 | @end defopt |
| @@ -3188,14 +3188,14 @@ the expression printed by IDL. | |||
| 3188 | @end defopt | 3188 | @end defopt |
| 3189 | 3189 | ||
| 3190 | @defopt idlwave-shell-output-face | 3190 | @defopt idlwave-shell-output-face |
| 3191 | The face for @code{idlwave-shell-output-overlay}. | 3191 | The face for @code{idlwave-shell-output-overlay}. |
| 3192 | Allows to choose the font, color and other properties for the most | 3192 | Allows to choose the font, color and other properties for the most |
| 3193 | recent output of IDL when examining an expression." | 3193 | recent output of IDL when examining an expression." |
| 3194 | @end defopt | 3194 | @end defopt |
| 3195 | 3195 | ||
| 3196 | @defopt idlwave-shell-separate-examine-output (@code{t}) | 3196 | @defopt idlwave-shell-separate-examine-output (@code{t}) |
| 3197 | If non-@code{nil}, re-direct the output of examine commands to a special | 3197 | If non-@code{nil}, re-direct the output of examine commands to a special |
| 3198 | @file{*Examine*} buffer, instead of in the shell itself. | 3198 | @file{*Examine*} buffer, instead of in the shell itself. |
| 3199 | @end defopt | 3199 | @end defopt |
| 3200 | 3200 | ||
| 3201 | @defopt idlwave-shell-max-print-length (200) | 3201 | @defopt idlwave-shell-max-print-length (200) |
| @@ -3249,17 +3249,17 @@ Both functions take a single string argument sharing the syntax of the | |||
| 3249 | @lisp | 3249 | @lisp |
| 3250 | (add-hook 'idlwave-shell-mode-hook | 3250 | (add-hook 'idlwave-shell-mode-hook |
| 3251 | (lambda () | 3251 | (lambda () |
| 3252 | (idlwave-shell-define-key-both [s-down-mouse-2] | 3252 | (idlwave-shell-define-key-both [s-down-mouse-2] |
| 3253 | (idlwave-shell-mouse-examine | 3253 | (idlwave-shell-mouse-examine |
| 3254 | "print, size(___,/DIMENSIONS)")) | 3254 | "print, size(___,/DIMENSIONS)")) |
| 3255 | (idlwave-shell-define-key-both [f9] (idlwave-shell-examine | 3255 | (idlwave-shell-define-key-both [f9] (idlwave-shell-examine |
| 3256 | "print, size(___,/DIMENSIONS)")) | 3256 | "print, size(___,/DIMENSIONS)")) |
| 3257 | (idlwave-shell-define-key-both [f10] (idlwave-shell-examine | 3257 | (idlwave-shell-define-key-both [f10] (idlwave-shell-examine |
| 3258 | "print,size(___,/TNAME)")) | 3258 | "print,size(___,/TNAME)")) |
| 3259 | (idlwave-shell-define-key-both [f11] (idlwave-shell-examine | 3259 | (idlwave-shell-define-key-both [f11] (idlwave-shell-examine |
| 3260 | "help,___,/STRUCTURE")))) | 3260 | "help,___,/STRUCTURE")))) |
| 3261 | @end lisp | 3261 | @end lisp |
| 3262 | 3262 | ||
| 3263 | @noindent Now pressing @key{f9}, or middle-mouse dragging with the | 3263 | @noindent Now pressing @key{f9}, or middle-mouse dragging with the |
| 3264 | @key{SUPER} key depressed, will print the dimensions of the nearby or | 3264 | @key{SUPER} key depressed, will print the dimensions of the nearby or |
| 3265 | highlighted expression. Pressing @key{f10} will give the type string, | 3265 | highlighted expression. Pressing @key{f10} will give the type string, |
| @@ -3297,7 +3297,7 @@ of the package from version 3.0, during which time he overhauled almost | |||
| 3297 | everything, modernized IDLWAVE with many new features, and developed the | 3297 | everything, modernized IDLWAVE with many new features, and developed the |
| 3298 | manual. | 3298 | manual. |
| 3299 | 3299 | ||
| 3300 | @item | 3300 | @item |
| 3301 | @uref{mailto:jdsmith@@as.arizona.edu, @b{J.D. Smith}}, the current | 3301 | @uref{mailto:jdsmith@@as.arizona.edu, @b{J.D. Smith}}, the current |
| 3302 | maintainer, as of version 4.10, helped shape object method completion | 3302 | maintainer, as of version 4.10, helped shape object method completion |
| 3303 | and most new features introduced in versions 4.x, and introduced many | 3303 | and most new features introduced in versions 4.x, and introduced many |
| @@ -3364,7 +3364,7 @@ know about the accessible routines. | |||
| 3364 | @menu | 3364 | @menu |
| 3365 | * Routine Definitions:: Where IDL Routines are defined. | 3365 | * Routine Definitions:: Where IDL Routines are defined. |
| 3366 | * Routine Information Sources:: So how does IDLWAVE know about... | 3366 | * Routine Information Sources:: So how does IDLWAVE know about... |
| 3367 | * Catalogs:: | 3367 | * Catalogs:: |
| 3368 | * Load-Path Shadows:: Routines defined in several places | 3368 | * Load-Path Shadows:: Routines defined in several places |
| 3369 | * Documentation Scan:: Scanning the IDL Manuals | 3369 | * Documentation Scan:: Scanning the IDL Manuals |
| 3370 | @end menu | 3370 | @end menu |
| @@ -3382,7 +3382,7 @@ know about the accessible routines. | |||
| 3382 | several places: | 3382 | several places: |
| 3383 | 3383 | ||
| 3384 | @enumerate | 3384 | @enumerate |
| 3385 | @item | 3385 | @item |
| 3386 | @emph{Builtin routines} are defined inside IDL itself. The source code | 3386 | @emph{Builtin routines} are defined inside IDL itself. The source code |
| 3387 | of such routines is not available, but instead are learned about through | 3387 | of such routines is not available, but instead are learned about through |
| 3388 | the IDL documentation. | 3388 | the IDL documentation. |
| @@ -3390,7 +3390,7 @@ the IDL documentation. | |||
| 3390 | Routines which are @emph{part of the current program}, are defined in a | 3390 | Routines which are @emph{part of the current program}, are defined in a |
| 3391 | file explicitly compiled by the user. This file may or may not be | 3391 | file explicitly compiled by the user. This file may or may not be |
| 3392 | located on the IDL search path. | 3392 | located on the IDL search path. |
| 3393 | @item | 3393 | @item |
| 3394 | @emph{Library routines} are defined in files located on IDL's search | 3394 | @emph{Library routines} are defined in files located on IDL's search |
| 3395 | path. When a library routine is called for the first time, IDL will | 3395 | path. When a library routine is called for the first time, IDL will |
| 3396 | find the source file and compile it dynamically. A special sub-category | 3396 | find the source file and compile it dynamically. A special sub-category |
| @@ -3428,7 +3428,7 @@ directly with IDL in the form of an XML catalog which IDLWAVE scans. | |||
| 3428 | Formerly, this list was created by scanning the IDL manuals to produce | 3428 | Formerly, this list was created by scanning the IDL manuals to produce |
| 3429 | the file @file{idlw-rinfo.el}. | 3429 | the file @file{idlw-rinfo.el}. |
| 3430 | 3430 | ||
| 3431 | @item | 3431 | @item |
| 3432 | IDLWAVE @emph{scans} all its @emph{buffers} in the current Emacs session | 3432 | IDLWAVE @emph{scans} all its @emph{buffers} in the current Emacs session |
| 3433 | for routine definitions. This is done automatically when routine | 3433 | for routine definitions. This is done automatically when routine |
| 3434 | information or completion is first requested by the user. Each new | 3434 | information or completion is first requested by the user. Each new |
| @@ -3547,8 +3547,8 @@ later). | |||
| 3547 | @end defopt | 3547 | @end defopt |
| 3548 | 3548 | ||
| 3549 | @menu | 3549 | @menu |
| 3550 | * Library Catalogs:: | 3550 | * Library Catalogs:: |
| 3551 | * User Catalog:: | 3551 | * User Catalog:: |
| 3552 | @end menu | 3552 | @end menu |
| 3553 | 3553 | ||
| 3554 | @html | 3554 | @html |
| @@ -3636,7 +3636,7 @@ instead, including: | |||
| 3636 | @itemize @bullet | 3636 | @itemize @bullet |
| 3637 | @item The scan is internal to Emacs, so you don't need a working Perl | 3637 | @item The scan is internal to Emacs, so you don't need a working Perl |
| 3638 | installation, as you do for library catalogs. | 3638 | installation, as you do for library catalogs. |
| 3639 | @item Can be used to scan directories for which the user has no write | 3639 | @item Can be used to scan directories for which the user has no write |
| 3640 | privileges. | 3640 | privileges. |
| 3641 | @item Easy widget-based path selection. | 3641 | @item Easy widget-based path selection. |
| 3642 | @end itemize | 3642 | @end itemize |
| @@ -3752,7 +3752,7 @@ Another way to find out if a specific routine has multiple definitions | |||
| 3752 | on the load path is routine info display (@pxref{Routine Info}). | 3752 | on the load path is routine info display (@pxref{Routine Info}). |
| 3753 | 3753 | ||
| 3754 | @node Documentation Scan, , Load-Path Shadows, Sources of Routine Info | 3754 | @node Documentation Scan, , Load-Path Shadows, Sources of Routine Info |
| 3755 | @appendixsec Documentation Scan | 3755 | @appendixsec Documentation Scan |
| 3756 | @cindex @file{get_html_rinfo} | 3756 | @cindex @file{get_html_rinfo} |
| 3757 | @cindex @file{idlw-rinfo.el} | 3757 | @cindex @file{idlw-rinfo.el} |
| 3758 | @cindex Scanning the documentation | 3758 | @cindex Scanning the documentation |
| @@ -3920,7 +3920,7 @@ user is King! | |||
| 3920 | (setq idlwave-main-block-indent 3) | 3920 | (setq idlwave-main-block-indent 3) |
| 3921 | (setq idlwave-end-offset -3) | 3921 | (setq idlwave-end-offset -3) |
| 3922 | (setq idlwave-continuation-indent 1) | 3922 | (setq idlwave-continuation-indent 1) |
| 3923 | (setq idlwave-begin-line-comment "^;[^;]") ; Leave ";" but not ";;" | 3923 | (setq idlwave-begin-line-comment "^;[^;]") ; Leave ";" but not ";;" |
| 3924 | ; anchored at start of line. | 3924 | ; anchored at start of line. |
| 3925 | (setq idlwave-surround-by-blank t) ; Turn on padding ops =,<,> | 3925 | (setq idlwave-surround-by-blank t) ; Turn on padding ops =,<,> |
| 3926 | (setq idlwave-pad-keyword nil) ; Remove spaces for keyword '=' | 3926 | (setq idlwave-pad-keyword nil) ; Remove spaces for keyword '=' |
| @@ -3987,10 +3987,10 @@ user is King! | |||
| 3987 | ;; (local-set-key "\C-j" 'idlwave-newline) ; My preference. | 3987 | ;; (local-set-key "\C-j" 'idlwave-newline) ; My preference. |
| 3988 | 3988 | ||
| 3989 | ;; Some personal abbreviations | 3989 | ;; Some personal abbreviations |
| 3990 | (define-abbrev idlwave-mode-abbrev-table | 3990 | (define-abbrev idlwave-mode-abbrev-table |
| 3991 | (concat idlwave-abbrev-start-char "wb") "widget_base()" | 3991 | (concat idlwave-abbrev-start-char "wb") "widget_base()" |
| 3992 | (idlwave-keyword-abbrev 1)) | 3992 | (idlwave-keyword-abbrev 1)) |
| 3993 | (define-abbrev idlwave-mode-abbrev-table | 3993 | (define-abbrev idlwave-mode-abbrev-table |
| 3994 | (concat idlwave-abbrev-start-char "on") "obj_new()" | 3994 | (concat idlwave-abbrev-start-char "on") "obj_new()" |
| 3995 | (idlwave-keyword-abbrev 1)) | 3995 | (idlwave-keyword-abbrev 1)) |
| 3996 | )) | 3996 | )) |
| @@ -4008,12 +4008,12 @@ user is King! | |||
| 4008 | (add-hook 'idlwave-shell-mode-hook | 4008 | (add-hook 'idlwave-shell-mode-hook |
| 4009 | (lambda () | 4009 | (lambda () |
| 4010 | ;; Set up some custom key and mouse examine commands | 4010 | ;; Set up some custom key and mouse examine commands |
| 4011 | (idlwave-shell-define-key-both [s-down-mouse-2] | 4011 | (idlwave-shell-define-key-both [s-down-mouse-2] |
| 4012 | (idlwave-shell-mouse-examine | 4012 | (idlwave-shell-mouse-examine |
| 4013 | "print, size(___,/DIMENSIONS)")) | 4013 | "print, size(___,/DIMENSIONS)")) |
| 4014 | (idlwave-shell-define-key-both [f9] (idlwave-shell-examine | 4014 | (idlwave-shell-define-key-both [f9] (idlwave-shell-examine |
| 4015 | "print, size(___,/DIMENSIONS)")) | 4015 | "print, size(___,/DIMENSIONS)")) |
| 4016 | (idlwave-shell-define-key-both [f10] (idlwave-shell-examine | 4016 | (idlwave-shell-define-key-both [f10] (idlwave-shell-examine |
| 4017 | "print,size(___,/TNAME)")) | 4017 | "print,size(___,/TNAME)")) |
| 4018 | (idlwave-shell-define-key-both [f11] (idlwave-shell-examine | 4018 | (idlwave-shell-define-key-both [f11] (idlwave-shell-examine |
| 4019 | "help,___,/STRUCTURE")))) | 4019 | "help,___,/STRUCTURE")))) |
| @@ -4066,7 +4066,7 @@ system. I am assuming that IDLWAVE has been installed in | |||
| 4066 | sure you check the following things: | 4066 | sure you check the following things: |
| 4067 | 4067 | ||
| 4068 | @itemize @bullet | 4068 | @itemize @bullet |
| 4069 | @item When you download the IDLWAVE distribution, make sure you save the | 4069 | @item When you download the IDLWAVE distribution, make sure you save the |
| 4070 | file under the names @file{idlwave.tar.gz}. | 4070 | file under the names @file{idlwave.tar.gz}. |
| 4071 | @item M-TAB switches among running programs --- use Esc-TAB | 4071 | @item M-TAB switches among running programs --- use Esc-TAB |
| 4072 | instead. | 4072 | instead. |
| @@ -4102,7 +4102,7 @@ customize the variable @code{idlwave-shell-automatic-electric-debug} | |||
| 4102 | if you prefer not to enter electric debug on breakpoints@dots{} but | 4102 | if you prefer not to enter electric debug on breakpoints@dots{} but |
| 4103 | you really should try it before you disable it! You can also | 4103 | you really should try it before you disable it! You can also |
| 4104 | customize this variable to enter debug mode when errors are | 4104 | customize this variable to enter debug mode when errors are |
| 4105 | encountered. | 4105 | encountered. |
| 4106 | 4106 | ||
| 4107 | @item @strong{I get errors like @samp{Searching for program: no such | 4107 | @item @strong{I get errors like @samp{Searching for program: no such |
| 4108 | file or directory, idl} when attempting to start the IDL shell.} | 4108 | file or directory, idl} when attempting to start the IDL shell.} |
| @@ -4141,7 +4141,7 @@ in compiled lisp files. Presumably, you kept the original .elc files in | |||
| 4141 | place, and this is the source of the error. If you recompile (or just | 4141 | place, and this is the source of the error. If you recompile (or just |
| 4142 | "make; make install") from source, it should resolve this problem. | 4142 | "make; make install") from source, it should resolve this problem. |
| 4143 | Another option is to recompile the @file{idlw*.el} files by hand using | 4143 | Another option is to recompile the @file{idlw*.el} files by hand using |
| 4144 | @kbd{M-x byte-compile-file}. | 4144 | @kbd{M-x byte-compile-file}. |
| 4145 | 4145 | ||
| 4146 | @item @strong{@kbd{M-@key{TAB}} doesn't complete words, it switches | 4146 | @item @strong{@kbd{M-@key{TAB}} doesn't complete words, it switches |
| 4147 | windows on my desktop.} | 4147 | windows on my desktop.} |
| @@ -4266,7 +4266,7 @@ You have a mismatch between your help index and the HTML help package | |||
| 4266 | you downloaded. You need to ensure you download a ``downgrade kit'' if | 4266 | you downloaded. You need to ensure you download a ``downgrade kit'' if |
| 4267 | you are using anything older than the latest HTML help package. A new | 4267 | you are using anything older than the latest HTML help package. A new |
| 4268 | help package appears with each IDL release (assuming the documentation | 4268 | help package appears with each IDL release (assuming the documentation |
| 4269 | is updated). | 4269 | is updated). |
| 4270 | Starting with IDL 6.2, the HTML help and its catalog are | 4270 | Starting with IDL 6.2, the HTML help and its catalog are |
| 4271 | distributed with IDL, and so should never be inconsistent. | 4271 | distributed with IDL, and so should never be inconsistent. |
| 4272 | 4272 | ||
diff --git a/doc/misc/makefile.w32-in b/doc/misc/makefile.w32-in index 1e497fe309f..0edaf3db3d6 100644 --- a/doc/misc/makefile.w32-in +++ b/doc/misc/makefile.w32-in | |||
| @@ -100,123 +100,127 @@ info.dvi: $(INFOSOURCES) | |||
| 100 | $(ENVADD) $(TEXI2DVI) $(srcdir)/info.texi | 100 | $(ENVADD) $(TEXI2DVI) $(srcdir)/info.texi |
| 101 | 101 | ||
| 102 | 102 | ||
| 103 | $(infodir)/ccmode: cc-mode.texi | 103 | $(infodir)/ccmode: cc-mode.texi doclicense.texi |
| 104 | $(MAKEINFO) $(MAKEINFO_OPTS) cc-mode.texi | 104 | $(MAKEINFO) $(MAKEINFO_OPTS) cc-mode.texi |
| 105 | cc-mode.dvi: cc-mode.texi | 105 | cc-mode.dvi: cc-mode.texi doclicense.texi |
| 106 | $(ENVADD) $(TEXI2DVI) $(srcdir)/cc-mode.texi | 106 | $(ENVADD) $(TEXI2DVI) $(srcdir)/cc-mode.texi |
| 107 | 107 | ||
| 108 | $(infodir)/ada-mode: ada-mode.texi | 108 | $(infodir)/ada-mode: ada-mode.texi doclicense.texi |
| 109 | $(MAKEINFO) $(MAKEINFO_OPTS) ada-mode.texi | 109 | $(MAKEINFO) $(MAKEINFO_OPTS) ada-mode.texi |
| 110 | ada-mode.dvi: ada-mode.texi | 110 | ada-mode.dvi: ada-mode.texi doclicense.texi |
| 111 | $(ENVADD) $(TEXI2DVI) $(srcdir)/ada-mode.texi | 111 | $(ENVADD) $(TEXI2DVI) $(srcdir)/ada-mode.texi |
| 112 | 112 | ||
| 113 | $(infodir)/pcl-cvs: pcl-cvs.texi | 113 | $(infodir)/pcl-cvs: pcl-cvs.texi doclicense.texi |
| 114 | $(MAKEINFO) $(MAKEINFO_OPTS) pcl-cvs.texi | 114 | $(MAKEINFO) $(MAKEINFO_OPTS) pcl-cvs.texi |
| 115 | pcl-cvs.dvi: pcl-cvs.texi | 115 | pcl-cvs.dvi: pcl-cvs.texi doclicense.texi |
| 116 | $(ENVADD) $(TEXI2DVI) $(srcdir)/pcl-cvs.texi | 116 | $(ENVADD) $(TEXI2DVI) $(srcdir)/pcl-cvs.texi |
| 117 | 117 | ||
| 118 | $(infodir)/eshell: eshell.texi | 118 | $(infodir)/eshell: eshell.texi doclicense.texi |
| 119 | $(MAKEINFO) $(MAKEINFO_OPTS) eshell.texi | 119 | $(MAKEINFO) $(MAKEINFO_OPTS) eshell.texi |
| 120 | eshell.dvi: eshell.texi | 120 | eshell.dvi: eshell.texi doclicense.texi |
| 121 | $(ENVADD) $(TEXI2DVI) $(srcdir)/eshell.texi | 121 | $(ENVADD) $(TEXI2DVI) $(srcdir)/eshell.texi |
| 122 | 122 | ||
| 123 | $(infodir)/cl: cl.texi | 123 | $(infodir)/cl: cl.texi doclicense.texi |
| 124 | $(MAKEINFO) $(MAKEINFO_OPTS) cl.texi | 124 | $(MAKEINFO) $(MAKEINFO_OPTS) cl.texi |
| 125 | cl.dvi: cl.texi | 125 | cl.dvi: cl.texi doclicense.texi |
| 126 | $(ENVADD) $(TEXI2DVI) $(srcdir)/cl.texi | 126 | $(ENVADD) $(TEXI2DVI) $(srcdir)/cl.texi |
| 127 | 127 | ||
| 128 | $(infodir)/dbus: dbus.texi | 128 | $(infodir)/dbus: dbus.texi doclicense.texi |
| 129 | $(MAKEINFO) $(MAKEINFO_OPTS) dbus.texi | 129 | $(MAKEINFO) $(MAKEINFO_OPTS) dbus.texi |
| 130 | dbus.dvi: dbus.texi | 130 | dbus.dvi: dbus.texi doclicense.texi |
| 131 | $(ENVADD) $(TEXI2DVI) $(srcdir)/dbus.texi | 131 | $(ENVADD) $(TEXI2DVI) $(srcdir)/dbus.texi |
| 132 | 132 | ||
| 133 | $(infodir)/dired-x: dired-x.texi | 133 | $(infodir)/dired-x: dired-x.texi $(emacsdir)/emacsver.texi doclicense.texi |
| 134 | $(MAKEINFO) $(MAKEINFO_OPTS) dired-x.texi | 134 | $(MAKEINFO) $(MAKEINFO_OPTS) dired-x.texi |
| 135 | dired-x.dvi: dired-x.texi | 135 | dired-x.dvi: dired-x.texi $(emacsdir)/emacsver.texi doclicense.texi |
| 136 | $(ENVADD) $(TEXI2DVI) $(srcdir)/dired-x.texi | 136 | $(ENVADD) $(TEXI2DVI) $(srcdir)/dired-x.texi |
| 137 | 137 | ||
| 138 | $(infodir)/ediff: ediff.texi | 138 | $(infodir)/ediff: ediff.texi doclicense.texi |
| 139 | $(MAKEINFO) $(MAKEINFO_OPTS) ediff.texi | 139 | $(MAKEINFO) $(MAKEINFO_OPTS) ediff.texi |
| 140 | ediff.dvi: ediff.texi | 140 | ediff.dvi: ediff.texi doclicense.texi |
| 141 | $(ENVADD) $(TEXI2DVI) $(srcdir)/ediff.texi | 141 | $(ENVADD) $(TEXI2DVI) $(srcdir)/ediff.texi |
| 142 | 142 | ||
| 143 | $(infodir)/flymake: flymake.texi | 143 | $(infodir)/flymake: flymake.texi doclicense.texi |
| 144 | $(MAKEINFO) $(MAKEINFO_OPTS) flymake.texi | 144 | $(MAKEINFO) $(MAKEINFO_OPTS) flymake.texi |
| 145 | flymake.dvi: flymake.texi | 145 | flymake.dvi: flymake.texi doclicense.texi |
| 146 | $(ENVADD) $(TEXI2DVI) $(srcdir)/flymake.texi | 146 | $(ENVADD) $(TEXI2DVI) $(srcdir)/flymake.texi |
| 147 | 147 | ||
| 148 | $(infodir)/forms: forms.texi | 148 | $(infodir)/forms: forms.texi doclicense.texi |
| 149 | $(MAKEINFO) $(MAKEINFO_OPTS) forms.texi | 149 | $(MAKEINFO) $(MAKEINFO_OPTS) forms.texi |
| 150 | forms.dvi: forms.texi | 150 | forms.dvi: forms.texi doclicense.texi |
| 151 | $(ENVADD) $(TEXI2DVI) $(srcdir)/forms.texi | 151 | $(ENVADD) $(TEXI2DVI) $(srcdir)/forms.texi |
| 152 | 152 | ||
| 153 | # gnus/message/emacs-mime/sieve/pgg are part of Gnus: | 153 | # gnus/message/emacs-mime/sieve/pgg are part of Gnus: |
| 154 | $(infodir)/gnus: gnus.texi | 154 | $(infodir)/gnus: gnus.texi gnus-overrides.texi message.texi emacs-mime.texi \ |
| 155 | sieve.texi pgg.texi sasl.texi gnus-news.texi gnus-faq.texi \ | ||
| 156 | doclicense.texi | ||
| 155 | $(MAKEINFO) $(MAKEINFO_OPTS) gnus.texi | 157 | $(MAKEINFO) $(MAKEINFO_OPTS) gnus.texi |
| 156 | gnus.dvi: gnus.texi | 158 | gnus.dvi: gnus.texi gnus-overrides.texi message.texi emacs-mime.texi \ |
| 159 | sieve.texi pgg.texi sasl.texi gnus-news.texi gnus-faq.texi \ | ||
| 160 | doclicense.texi | ||
| 157 | sed -e "/@iflatex/,/@end iflatex/d" $(srcdir)/gnus.texi > gnustmp.texi | 161 | sed -e "/@iflatex/,/@end iflatex/d" $(srcdir)/gnus.texi > gnustmp.texi |
| 158 | $(ENVADD) $(TEXI2DVI) gnustmp.texi | 162 | $(ENVADD) $(TEXI2DVI) gnustmp.texi |
| 159 | cp gnustmp.dvi $*.dvi | 163 | cp gnustmp.dvi $*.dvi |
| 160 | rm gnustmp.* | 164 | rm gnustmp.* |
| 161 | # | 165 | # |
| 162 | $(infodir)/message: message.texi | 166 | $(infodir)/message: message.texi gnus-overrides.texi doclicense.texi |
| 163 | $(MAKEINFO) $(MAKEINFO_OPTS) message.texi | 167 | $(MAKEINFO) $(MAKEINFO_OPTS) message.texi |
| 164 | message.dvi: message.texi | 168 | message.dvi: message.texi gnus-overrides.texi doclicense.texi |
| 165 | $(ENVADD) $(TEXI2DVI) $(srcdir)/message.texi | 169 | $(ENVADD) $(TEXI2DVI) $(srcdir)/message.texi |
| 166 | # | 170 | # |
| 167 | $(infodir)/emacs-mime: emacs-mime.texi | 171 | $(infodir)/emacs-mime: emacs-mime.texi gnus-overrides.texi doclicense.texi |
| 168 | $(MAKEINFO) $(MAKEINFO_OPTS) --enable-encoding emacs-mime.texi | 172 | $(MAKEINFO) $(MAKEINFO_OPTS) --enable-encoding emacs-mime.texi |
| 169 | emacs-mime.dvi: emacs-mime.texi | 173 | emacs-mime.dvi: emacs-mime.texi gnus-overrides.texi doclicense.texi |
| 170 | $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-mime.texi | 174 | $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-mime.texi |
| 171 | # | 175 | # |
| 172 | $(infodir)/sieve: sieve.texi | 176 | $(infodir)/sieve: sieve.texi gnus-overrides.texi doclicense.texi |
| 173 | $(MAKEINFO) $(MAKEINFO_OPTS) sieve.texi | 177 | $(MAKEINFO) $(MAKEINFO_OPTS) sieve.texi |
| 174 | sieve.dvi: sieve.texi | 178 | sieve.dvi: sieve.texi gnus-overrides.texi doclicense.texi |
| 175 | $(ENVADD) $(TEXI2DVI) $(srcdir)/sieve.texi | 179 | $(ENVADD) $(TEXI2DVI) $(srcdir)/sieve.texi |
| 176 | # | 180 | # |
| 177 | $(infodir)/pgg: pgg.texi | 181 | $(infodir)/pgg: pgg.texi gnus-overrides.texi doclicense.texi |
| 178 | $(MAKEINFO) $(MAKEINFO_OPTS) pgg.texi | 182 | $(MAKEINFO) $(MAKEINFO_OPTS) pgg.texi |
| 179 | pgg.dvi: pgg.texi | 183 | pgg.dvi: pgg.texi gnus-overrides.texi doclicense.texi |
| 180 | $(ENVADD) $(TEXI2DVI) $(srcdir)/pgg.texi | 184 | $(ENVADD) $(TEXI2DVI) $(srcdir)/pgg.texi |
| 181 | 185 | ||
| 182 | $(infodir)/mh-e: mh-e.texi | 186 | $(infodir)/mh-e: mh-e.texi doclicense.texi gpl.texi |
| 183 | $(MAKEINFO) $(MAKEINFO_OPTS) mh-e.texi | 187 | $(MAKEINFO) $(MAKEINFO_OPTS) mh-e.texi |
| 184 | mh-e.dvi: mh-e.texi | 188 | mh-e.dvi: mh-e.texi doclicense.texi gpl.texi |
| 185 | $(ENVADD) $(TEXI2DVI) $(srcdir)/mh-e.texi | 189 | $(ENVADD) $(TEXI2DVI) $(srcdir)/mh-e.texi |
| 186 | 190 | ||
| 187 | $(infodir)/reftex: reftex.texi | 191 | $(infodir)/reftex: reftex.texi doclicense.texi |
| 188 | $(MAKEINFO) $(MAKEINFO_OPTS) reftex.texi | 192 | $(MAKEINFO) $(MAKEINFO_OPTS) reftex.texi |
| 189 | reftex.dvi: reftex.texi | 193 | reftex.dvi: reftex.texi doclicense.texi |
| 190 | $(ENVADD) $(TEXI2DVI) $(srcdir)/reftex.texi | 194 | $(ENVADD) $(TEXI2DVI) $(srcdir)/reftex.texi |
| 191 | 195 | ||
| 192 | $(infodir)/remember: remember.texi | 196 | $(infodir)/remember: remember.texi doclicense.texi |
| 193 | $(MAKEINFO) $(MAKEINFO_OPTS) remember.texi | 197 | $(MAKEINFO) $(MAKEINFO_OPTS) remember.texi |
| 194 | remember.dvi: remember.texi | 198 | remember.dvi: remember.texi doclicense.texix |
| 195 | $(ENVADD) $(TEXI2DVI) $(srcdir)/remember.texi | 199 | $(ENVADD) $(TEXI2DVI) $(srcdir)/remember.texi |
| 196 | 200 | ||
| 197 | $(infodir)/sasl: sasl.texi | 201 | $(infodir)/sasl: sasl.texi gnus-overrides.texi |
| 198 | $(MAKEINFO) $(MAKEINFO_OPTS) sasl.texi | 202 | $(MAKEINFO) $(MAKEINFO_OPTS) sasl.texi |
| 199 | sasl.dvi: sasl.texi | 203 | sasl.dvi: sasl.texi gnus-overrides.texi |
| 200 | $(ENVADD) $(TEXI2DVI) $(srcdir)/sasl.texi | 204 | $(ENVADD) $(TEXI2DVI) $(srcdir)/sasl.texi |
| 201 | 205 | ||
| 202 | $(infodir)/sc: sc.texi | 206 | $(infodir)/sc: sc.texi doclicense.texi |
| 203 | $(MAKEINFO) $(MAKEINFO_OPTS) sc.texi | 207 | $(MAKEINFO) $(MAKEINFO_OPTS) sc.texi |
| 204 | sc.dvi: sc.texi | 208 | sc.dvi: sc.texi doclicense.texi |
| 205 | $(ENVADD) $(TEXI2DVI) $(srcdir)/sc.texi | 209 | $(ENVADD) $(TEXI2DVI) $(srcdir)/sc.texi |
| 206 | 210 | ||
| 207 | $(infodir)/vip: vip.texi | 211 | $(infodir)/vip: vip.texi doclicense.texi |
| 208 | $(MAKEINFO) $(MAKEINFO_OPTS) vip.texi | 212 | $(MAKEINFO) $(MAKEINFO_OPTS) vip.texi |
| 209 | vip.dvi: vip.texi | 213 | vip.dvi: vip.texi doclicense.texi |
| 210 | $(ENVADD) $(TEXI2DVI) $(srcdir)/vip.texi | 214 | $(ENVADD) $(TEXI2DVI) $(srcdir)/vip.texi |
| 211 | 215 | ||
| 212 | $(infodir)/viper: viper.texi | 216 | $(infodir)/viper: viper.texi doclicense.texi |
| 213 | $(MAKEINFO) $(MAKEINFO_OPTS) viper.texi | 217 | $(MAKEINFO) $(MAKEINFO_OPTS) viper.texi |
| 214 | viper.dvi: viper.texi | 218 | viper.dvi: viper.texi doclicense.texi |
| 215 | $(ENVADD) $(TEXI2DVI) $(srcdir)/viper.texi | 219 | $(ENVADD) $(TEXI2DVI) $(srcdir)/viper.texi |
| 216 | 220 | ||
| 217 | $(infodir)/widget: widget.texi | 221 | $(infodir)/widget: widget.texi doclicense.texi |
| 218 | $(MAKEINFO) $(MAKEINFO_OPTS) widget.texi | 222 | $(MAKEINFO) $(MAKEINFO_OPTS) widget.texi |
| 219 | widget.dvi: widget.texi | 223 | widget.dvi: widget.texi doclicense.texi |
| 220 | $(ENVADD) $(TEXI2DVI) $(srcdir)/widget.texi | 224 | $(ENVADD) $(TEXI2DVI) $(srcdir)/widget.texi |
| 221 | 225 | ||
| 222 | $(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi | 226 | $(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi |
| @@ -224,57 +228,56 @@ $(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi | |||
| 224 | faq.dvi: faq.texi $(emacsdir)/emacsver.texi | 228 | faq.dvi: faq.texi $(emacsdir)/emacsver.texi |
| 225 | $(ENVADD) $(TEXI2DVI) $(srcdir)/faq.texi | 229 | $(ENVADD) $(TEXI2DVI) $(srcdir)/faq.texi |
| 226 | 230 | ||
| 227 | $(infodir)/autotype: autotype.texi | 231 | $(infodir)/autotype: autotype.texi doclicense.texi |
| 228 | $(MAKEINFO) $(MAKEINFO_OPTS) autotype.texi | 232 | $(MAKEINFO) $(MAKEINFO_OPTS) autotype.texi |
| 229 | autotype.dvi: autotype.texi | 233 | autotype.dvi: autotype.texi doclicense.texi |
| 230 | $(ENVADD) $(TEXI2DVI) $(srcdir)/autotype.texi | 234 | $(ENVADD) $(TEXI2DVI) $(srcdir)/autotype.texi |
| 231 | 235 | ||
| 232 | $(infodir)/calc: calc.texi $(emacsdir)/emacsver.texi | 236 | $(infodir)/calc: calc.texi $(emacsdir)/emacsver.texi gpl.texi doclicense.texi |
| 233 | $(MAKEINFO) $(MAKEINFO_OPTS) calc.texi | 237 | $(MAKEINFO) $(MAKEINFO_OPTS) calc.texi |
| 234 | 238 | calc.dvi: calc.texi $(emacsdir)/emacsver.texi gpl.texi doclicense.texi | |
| 235 | calc.dvi: calc.texi $(emacsdir)/emacsver.texi | ||
| 236 | $(ENVADD) $(TEXI2DVI) $(srcdir)/calc.texi | 239 | $(ENVADD) $(TEXI2DVI) $(srcdir)/calc.texi |
| 237 | 240 | ||
| 238 | # This is produced with --no-split to avoid making files whose | 241 | # This is produced with --no-split to avoid making files whose |
| 239 | # names clash on DOS 8+3 filesystems | 242 | # names clash on DOS 8+3 filesystems |
| 240 | $(infodir)/idlwave: idlwave.texi | 243 | $(infodir)/idlwave: idlwave.texi doclicense.texi |
| 241 | $(MAKEINFO) $(MAKEINFO_OPTS) --no-split idlwave.texi | 244 | $(MAKEINFO) $(MAKEINFO_OPTS) --no-split idlwave.texi |
| 242 | idlwave.dvi: idlwave.texi | 245 | idlwave.dvi: idlwave.texi doclicense.texi |
| 243 | $(ENVADD) $(TEXI2DVI) $(srcdir)/idlwave.texi | 246 | $(ENVADD) $(TEXI2DVI) $(srcdir)/idlwave.texi |
| 244 | 247 | ||
| 245 | $(infodir)/eudc: eudc.texi | 248 | $(infodir)/eudc: eudc.texi doclicense.texi |
| 246 | $(MAKEINFO) $(MAKEINFO_OPTS) eudc.texi | 249 | $(MAKEINFO) $(MAKEINFO_OPTS) eudc.texi |
| 247 | eudc.dvi: eudc.texi | 250 | eudc.dvi: eudc.texi doclicense.texi |
| 248 | $(ENVADD) $(TEXI2DVI) $(srcdir)/eudc.texi | 251 | $(ENVADD) $(TEXI2DVI) $(srcdir)/eudc.texi |
| 249 | 252 | ||
| 250 | $(infodir)/ebrowse: ebrowse.texi | 253 | $(infodir)/ebrowse: ebrowse.texi doclicense.texi |
| 251 | $(MAKEINFO) $(MAKEINFO_OPTS) ebrowse.texi | 254 | $(MAKEINFO) $(MAKEINFO_OPTS) ebrowse.texi |
| 252 | ebrowse.dvi: ebrowse.texi | 255 | ebrowse.dvi: ebrowse.texi doclicense.texi |
| 253 | $(ENVADD) $(TEXI2DVI) $(srcdir)/ebrowse.texi | 256 | $(ENVADD) $(TEXI2DVI) $(srcdir)/ebrowse.texi |
| 254 | 257 | ||
| 255 | $(infodir)/woman: woman.texi | 258 | $(infodir)/woman: woman.texi doclicense.texi |
| 256 | $(MAKEINFO) $(MAKEINFO_OPTS) woman.texi | 259 | $(MAKEINFO) $(MAKEINFO_OPTS) woman.texi |
| 257 | woman.dvi: woman.texi | 260 | woman.dvi: woman.texi doclicense.texi |
| 258 | $(ENVADD) $(TEXI2DVI) $(srcdir)/woman.texi | 261 | $(ENVADD) $(TEXI2DVI) $(srcdir)/woman.texi |
| 259 | 262 | ||
| 260 | $(infodir)/speedbar: speedbar.texi | 263 | $(infodir)/speedbar: speedbar.texi doclicense.texi |
| 261 | $(MAKEINFO) $(MAKEINFO_OPTS) speedbar.texi | 264 | $(MAKEINFO) $(MAKEINFO_OPTS) speedbar.texi |
| 262 | speedbar.dvi: speedbar.texi | 265 | speedbar.dvi: speedbar.texi doclicense.texi |
| 263 | $(ENVADD) $(TEXI2DVI) $(srcdir)/speedbar.texi | 266 | $(ENVADD) $(TEXI2DVI) $(srcdir)/speedbar.texi |
| 264 | 267 | ||
| 265 | $(infodir)/tramp: tramp.texi | 268 | $(infodir)/tramp: tramp.texi trampver.texi doclicense.texi |
| 266 | $(MAKEINFO) $(MAKEINFO_OPTS) tramp.texi | 269 | $(MAKEINFO) $(MAKEINFO_OPTS) tramp.texi |
| 267 | tramp.dvi: tramp.texi | 270 | tramp.dvi: tramp.texi trampver.texi doclicense.texi |
| 268 | $(ENVADD) $(TEXI2DVI) $(srcdir)/tramp.texi | 271 | $(ENVADD) $(TEXI2DVI) $(srcdir)/tramp.texi |
| 269 | 272 | ||
| 270 | $(infodir)/ses: ses.texi | 273 | $(infodir)/ses: ses.texi doclicense.texi |
| 271 | $(MAKEINFO) $(MAKEINFO_OPTS) ses.texi | 274 | $(MAKEINFO) $(MAKEINFO_OPTS) ses.texi |
| 272 | ses.dvi: ses.texi | 275 | ses.dvi: ses.texi doclicense.texi |
| 273 | $(ENVADD) $(TEXI2DVI) $(srcdir)/ses.texi | 276 | $(ENVADD) $(TEXI2DVI) $(srcdir)/ses.texi |
| 274 | 277 | ||
| 275 | $(infodir)/smtpmail: smtpmail.texi | 278 | $(infodir)/smtpmail: smtpmail.texi doclicense.texi |
| 276 | $(MAKEINFO) $(MAKEINFO_OPTS) smtpmail.texi | 279 | $(MAKEINFO) $(MAKEINFO_OPTS) smtpmail.texi |
| 277 | smtpmail.dvi: smtpmail.texi | 280 | smtpmail.dvi: smtpmail.texi doclicense.texi |
| 278 | $(ENVADD) $(TEXI2DVI) $(srcdir)/smtpmail.texi | 281 | $(ENVADD) $(TEXI2DVI) $(srcdir)/smtpmail.texi |
| 279 | 282 | ||
| 280 | $(infodir)/org: org.texi | 283 | $(infodir)/org: org.texi |
| @@ -282,14 +285,14 @@ $(infodir)/org: org.texi | |||
| 282 | org.dvi: org.texi | 285 | org.dvi: org.texi |
| 283 | $(ENVADD) $(TEXI2DVI) $(srcdir)/org.texi | 286 | $(ENVADD) $(TEXI2DVI) $(srcdir)/org.texi |
| 284 | 287 | ||
| 285 | $(infodir)/url: url.texi | 288 | $(infodir)/url: url.texi doclicense.texi |
| 286 | $(MAKEINFO) $(MAKEINFO_OPTS) url.texi | 289 | $(MAKEINFO) $(MAKEINFO_OPTS) url.texi |
| 287 | url.dvi: url.texi | 290 | url.dvi: url.texi doclicense.texi |
| 288 | $(ENVADD) $(TEXI2DVI) $(srcdir)/url.texi | 291 | $(ENVADD) $(TEXI2DVI) $(srcdir)/url.texi |
| 289 | 292 | ||
| 290 | $(infodir)/newsticker: newsticker.texi | 293 | $(infodir)/newsticker: newsticker.texi doclicense.texi |
| 291 | $(MAKEINFO) $(MAKEINFO_OPTS) newsticker.texi | 294 | $(MAKEINFO) $(MAKEINFO_OPTS) newsticker.texi |
| 292 | newsticker.dvi: newsticker.texi | 295 | newsticker.dvi: newsticker.texi doclicense.texi |
| 293 | $(ENVADD) $(TEXI2DVI) $(srcdir)/newsticker.texi | 296 | $(ENVADD) $(TEXI2DVI) $(srcdir)/newsticker.texi |
| 294 | 297 | ||
| 295 | $(infodir)/nxml-mode: nxml-mode.texi | 298 | $(infodir)/nxml-mode: nxml-mode.texi |
| @@ -297,14 +300,14 @@ $(infodir)/nxml-mode: nxml-mode.texi | |||
| 297 | nxml-mod.dvi: nxml-mode.texi | 300 | nxml-mod.dvi: nxml-mode.texi |
| 298 | $(ENVADD) $(TEXI2DVI) $(srcdir)/nxml-mode.texi | 301 | $(ENVADD) $(TEXI2DVI) $(srcdir)/nxml-mode.texi |
| 299 | 302 | ||
| 300 | $(infodir)/rcirc: rcirc.texi | 303 | $(infodir)/rcirc: rcirc.texi doclicense.texi |
| 301 | $(MAKEINFO) $(MAKEINFO_OPTS) rcirc.texi | 304 | $(MAKEINFO) $(MAKEINFO_OPTS) rcirc.texi |
| 302 | rcirc.dvi: rcirc.texi | 305 | rcirc.dvi: rcirc.texi doclicense.texi |
| 303 | $(ENVADD) $(TEXI2DVI) $(srcdir)/rcirc.texi | 306 | $(ENVADD) $(TEXI2DVI) $(srcdir)/rcirc.texi |
| 304 | 307 | ||
| 305 | $(infodir)/erc: erc.texi | 308 | $(infodir)/erc: erc.texi gpl.texi doclicense.texi |
| 306 | $(MAKEINFO) $(MAKEINFO_OPTS) erc.texi | 309 | $(MAKEINFO) $(MAKEINFO_OPTS) erc.texi |
| 307 | erc.dvi: erc.texi | 310 | erc.dvi: erc.texi gpl.texi doclicense.texi |
| 308 | $(ENVADD) $(TEXI2DVI) $(srcdir)/erc.texi | 311 | $(ENVADD) $(TEXI2DVI) $(srcdir)/erc.texi |
| 309 | 312 | ||
| 310 | $(infodir)/ert: ert.texi | 313 | $(infodir)/ert: ert.texi |
| @@ -322,9 +325,9 @@ $(infodir)/mairix-el: mairix-el.texi | |||
| 322 | mairix-el.dvi: mairix-el.texi | 325 | mairix-el.dvi: mairix-el.texi |
| 323 | $(ENVADD) $(TEXI2DVI) $(srcdir)/mairix-el.texi | 326 | $(ENVADD) $(TEXI2DVI) $(srcdir)/mairix-el.texi |
| 324 | 327 | ||
| 325 | $(infodir)/auth: auth.texi | 328 | $(infodir)/auth: auth.texi gnus-overrides.texi |
| 326 | $(MAKEINFO) $(MAKEINFO_OPTS) auth.texi | 329 | $(MAKEINFO) $(MAKEINFO_OPTS) auth.texi |
| 327 | auth.dvi: auth.texi | 330 | auth.dvi: auth.texi gnus-overrides.texi |
| 328 | $(ENVADD) $(TEXI2DVI) $(srcdir)/auth.texi | 331 | $(ENVADD) $(TEXI2DVI) $(srcdir)/auth.texi |
| 329 | 332 | ||
| 330 | $(infodir)/eieio: eieio.texi | 333 | $(infodir)/eieio: eieio.texi |
| @@ -337,14 +340,14 @@ $(infodir)/ede: ede.texi | |||
| 337 | ede.dvi: ede.texi | 340 | ede.dvi: ede.texi |
| 338 | $(ENVADD) $(TEXI2DVI) $(srcdir)/ede.texi | 341 | $(ENVADD) $(TEXI2DVI) $(srcdir)/ede.texi |
| 339 | 342 | ||
| 340 | $(infodir)/semantic: semantic.texi | 343 | $(infodir)/semantic: semantic.texi sem-user.texi doclicense.texi |
| 341 | $(MAKEINFO) $(MAKEINFO_OPTS) semantic.texi | 344 | $(MAKEINFO) $(MAKEINFO_OPTS) semantic.texi |
| 342 | semantic.dvi: semantic.texi | 345 | semantic.dvi: semantic.texi sem-user.texi doclicense.texi |
| 343 | $(ENVADD) $(TEXI2DVI) $(srcdir)/semantic.texi | 346 | $(ENVADD) $(TEXI2DVI) $(srcdir)/semantic.texi |
| 344 | 347 | ||
| 345 | $(infodir)/edt: edt.texi | 348 | $(infodir)/edt: edt.texi doclicense.texi |
| 346 | $(MAKEINFO) $(MAKEINFO_OPTS) edt.texi | 349 | $(MAKEINFO) $(MAKEINFO_OPTS) edt.texi |
| 347 | edt.dvi: edt.texi | 350 | edt.dvi: edt.texi doclicense.texi |
| 348 | $(ENVADD) $(TEXI2DVI) $(srcdir)/edt.texi | 351 | $(ENVADD) $(TEXI2DVI) $(srcdir)/edt.texi |
| 349 | 352 | ||
| 350 | mostlyclean: | 353 | mostlyclean: |
diff --git a/doc/misc/message.texi b/doc/misc/message.texi index 4d828f69bbd..d9062a32572 100644 --- a/doc/misc/message.texi +++ b/doc/misc/message.texi | |||
| @@ -904,7 +904,7 @@ happen---Message will encode non-@acronym{ASCII} domain names in @code{From}, | |||
| 904 | Until @acronym{IDNA} becomes more well known, Message queries you | 904 | Until @acronym{IDNA} becomes more well known, Message queries you |
| 905 | whether @acronym{IDNA} encoding of the domain name really should | 905 | whether @acronym{IDNA} encoding of the domain name really should |
| 906 | occur. Some users might not be aware that domain names can contain | 906 | occur. Some users might not be aware that domain names can contain |
| 907 | non-@acronym{ASCII} now, so this gives them a safety net if they accidently | 907 | non-@acronym{ASCII} now, so this gives them a safety net if they accidentally |
| 908 | typed a non-@acronym{ASCII} domain name. | 908 | typed a non-@acronym{ASCII} domain name. |
| 909 | 909 | ||
| 910 | @vindex message-use-idna | 910 | @vindex message-use-idna |
diff --git a/doc/misc/org.texi b/doc/misc/org.texi index 34a4ba4f8f3..181e00f8e02 100644 --- a/doc/misc/org.texi +++ b/doc/misc/org.texi | |||
| @@ -7219,7 +7219,7 @@ will be made in the agenda: | |||
| 7219 | #+CATEGORY: Holiday | 7219 | #+CATEGORY: Holiday |
| 7220 | %%(org-calendar-holiday) ; special function for holiday names | 7220 | %%(org-calendar-holiday) ; special function for holiday names |
| 7221 | #+CATEGORY: Ann | 7221 | #+CATEGORY: Ann |
| 7222 | %%(org-anniversary 1956 5 14)@footnote{@code{org-anniversary} is just like @code{diary-anniversary}, but the argument order is allways according to ISO and therefore independent of the value of @code{calendar-date-style}.} Arthur Dent is %d years old | 7222 | %%(org-anniversary 1956 5 14)@footnote{@code{org-anniversary} is just like @code{diary-anniversary}, but the argument order is always according to ISO and therefore independent of the value of @code{calendar-date-style}.} Arthur Dent is %d years old |
| 7223 | %%(org-anniversary 1869 10 2) Mahatma Gandhi would be %d years old | 7223 | %%(org-anniversary 1869 10 2) Mahatma Gandhi would be %d years old |
| 7224 | @end example | 7224 | @end example |
| 7225 | 7225 | ||
| @@ -7797,8 +7797,8 @@ Interactively select another agenda view and append it to the current view. | |||
| 7797 | @item o | 7797 | @item o |
| 7798 | Delete other windows. | 7798 | Delete other windows. |
| 7799 | @c | 7799 | @c |
| 7800 | @orgcmdkskc{v d,d,org-aganda-day-view} | 7800 | @orgcmdkskc{v d,d,org-agenda-day-view} |
| 7801 | @xorgcmdkskc{v w,w,org-aganda-day-view} | 7801 | @xorgcmdkskc{v w,w,org-agenda-day-view} |
| 7802 | @xorgcmd{v m,org-agenda-month-view} | 7802 | @xorgcmd{v m,org-agenda-month-view} |
| 7803 | @xorgcmd{v y,org-agenda-month-year} | 7803 | @xorgcmd{v y,org-agenda-month-year} |
| 7804 | @xorgcmd{v SPC,org-agenda-reset-view} | 7804 | @xorgcmd{v SPC,org-agenda-reset-view} |
diff --git a/doc/misc/pcl-cvs.texi b/doc/misc/pcl-cvs.texi index f12942da2d3..d4f82b6b3a7 100644 --- a/doc/misc/pcl-cvs.texi +++ b/doc/misc/pcl-cvs.texi | |||
| @@ -70,7 +70,7 @@ customize-group RET pcl-cvs @key{RET}} and to look at the documentation strings | |||
| 70 | of the various commands and major modes for further information. | 70 | of the various commands and major modes for further information. |
| 71 | @c This manual is updated to release 2.5 of PCL-CVS. | 71 | @c This manual is updated to release 2.5 of PCL-CVS. |
| 72 | 72 | ||
| 73 | @insertcopying | 73 | @insertcopying |
| 74 | 74 | ||
| 75 | @end ifnottex | 75 | @end ifnottex |
| 76 | 76 | ||
| @@ -1275,7 +1275,7 @@ will be called as @samp{cvs -d @var{cvs-cvsroot}@dots{}}. This can be | |||
| 1275 | useful if your site has several repositories. | 1275 | useful if your site has several repositories. |
| 1276 | 1276 | ||
| 1277 | @item log-edit-require-final-newline | 1277 | @item log-edit-require-final-newline |
| 1278 | @c wordy to avoid unhderfull hbox | 1278 | @c wordy to avoid underfull hbox |
| 1279 | When you enter a log message by typing into the | 1279 | When you enter a log message by typing into the |
| 1280 | @samp{*cvs-commit-message*} buffer, PCL-CVS normally automatically | 1280 | @samp{*cvs-commit-message*} buffer, PCL-CVS normally automatically |
| 1281 | inserts a trailing newline, unless there already is one. This behavior | 1281 | inserts a trailing newline, unless there already is one. This behavior |
diff --git a/doc/misc/sem-user.texi b/doc/misc/sem-user.texi index 28d1cdb6eb8..e1631bcacc8 100644 --- a/doc/misc/sem-user.texi +++ b/doc/misc/sem-user.texi | |||
| @@ -547,7 +547,7 @@ reparsed regardless of their size. | |||
| 547 | @end deffn | 547 | @end deffn |
| 548 | 548 | ||
| 549 | @deffn Option semantic-idle-scheduler-no-working-message | 549 | @deffn Option semantic-idle-scheduler-no-working-message |
| 550 | If non-@code{nil}, disable display of working messages whie reparsing. | 550 | If non-@code{nil}, disable display of working messages while reparsing. |
| 551 | @end deffn | 551 | @end deffn |
| 552 | 552 | ||
| 553 | @deffn Option semantic-idle-scheduler-working-in-modeline-flag | 553 | @deffn Option semantic-idle-scheduler-working-in-modeline-flag |
diff --git a/doc/misc/semantic.texi b/doc/misc/semantic.texi index 55b60937fb6..dcfff1fcb96 100644 --- a/doc/misc/semantic.texi +++ b/doc/misc/semantic.texi | |||
| @@ -613,7 +613,7 @@ Emacs Lisp. It is an LALR parser suitable for complex languages. | |||
| 613 | @c LocalWords: multitable NAvigaTOR noindent nomedian nonterm noselect | 613 | @c LocalWords: multitable NAvigaTOR noindent nomedian nonterm noselect |
| 614 | @c LocalWords: nosnarf obarray OLE OO outputfile paren parsetable POINT's | 614 | @c LocalWords: nosnarf obarray OLE OO outputfile paren parsetable POINT's |
| 615 | @c LocalWords: popup positionalonly positiononly positionormarker pre | 615 | @c LocalWords: popup positionalonly positiononly positionormarker pre |
| 616 | @c LocalWords: printf printindex Programmatically pt punctuations quotemode | 616 | @c LocalWords: printf printindex Programmatically pt quotemode |
| 617 | @c LocalWords: ref regex regexp Regexps reparse resetfile samp sb | 617 | @c LocalWords: ref regex regexp Regexps reparse resetfile samp sb |
| 618 | @c LocalWords: scopestart SEmantic semanticdb setfilename setq | 618 | @c LocalWords: scopestart SEmantic semanticdb setfilename setq |
| 619 | @c LocalWords: settitle setupfunction sexp sp SPC speedbar speedbar's | 619 | @c LocalWords: settitle setupfunction sexp sp SPC speedbar speedbar's |
diff --git a/doc/misc/ses.texi b/doc/misc/ses.texi index d9739b93925..8300e6511a6 100644 --- a/doc/misc/ses.texi +++ b/doc/misc/ses.texi | |||
| @@ -446,7 +446,7 @@ list. | |||
| 446 | execute when starting SES mode for a buffer). | 446 | execute when starting SES mode for a buffer). |
| 447 | 447 | ||
| 448 | The variable @code{safe-functions} is a list of possibly-unsafe | 448 | The variable @code{safe-functions} is a list of possibly-unsafe |
| 449 | functions to be treated as safe when analysing formulas and printers. | 449 | functions to be treated as safe when analyzing formulas and printers. |
| 450 | @xref{Virus protection}. Before customizing @code{safe-functions}, | 450 | @xref{Virus protection}. Before customizing @code{safe-functions}, |
| 451 | think about how much you trust the person who's suggesting this | 451 | think about how much you trust the person who's suggesting this |
| 452 | change. The value @code{t} turns off all anti-virus protection. A | 452 | change. The value @code{t} turns off all anti-virus protection. A |
diff --git a/doc/misc/smtpmail.texi b/doc/misc/smtpmail.texi index 1d4bbbff4ac..854be0d0012 100644 --- a/doc/misc/smtpmail.texi +++ b/doc/misc/smtpmail.texi | |||
| @@ -233,7 +233,7 @@ least one of the following external tools are installed: | |||
| 233 | 233 | ||
| 234 | @enumerate | 234 | @enumerate |
| 235 | @item | 235 | @item |
| 236 | The GNUTLS command line tool @samp{gnutls-cli}, you can get it from | 236 | The GnuTLS command line tool @samp{gnutls-cli}, you can get it from |
| 237 | @url{http://www.gnu.org/software/gnutls/}. This is the recommended | 237 | @url{http://www.gnu.org/software/gnutls/}. This is the recommended |
| 238 | tool, mainly because it can verify the server certificates. | 238 | tool, mainly because it can verify the server certificates. |
| 239 | 239 | ||
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index e6b0f4fa235..f7f340074a2 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi | |||
| @@ -3573,7 +3573,7 @@ The verbosity levels are | |||
| 3573 | 3573 | ||
| 3574 | When @code{tramp-verbose} is greater than or equal to 4, the messages | 3574 | When @code{tramp-verbose} is greater than or equal to 4, the messages |
| 3575 | are also written into a @value{tramp} debug buffer. This debug buffer | 3575 | are also written into a @value{tramp} debug buffer. This debug buffer |
| 3576 | is useful for analysing problems; sending a @value{tramp} bug report | 3576 | is useful for analyzing problems; sending a @value{tramp} bug report |
| 3577 | should be done with @code{tramp-verbose} set to a verbosity level of at | 3577 | should be done with @code{tramp-verbose} set to a verbosity level of at |
| 3578 | least 6 (@pxref{Bug Reports}). | 3578 | least 6 (@pxref{Bug Reports}). |
| 3579 | 3579 | ||