diff options
| author | Miles Bader | 2005-03-31 09:58:14 +0000 |
|---|---|---|
| committer | Miles Bader | 2005-03-31 09:58:14 +0000 |
| commit | 773415d9340f12db3bd8654de5014deec57d49b7 (patch) | |
| tree | 579ecf466891c80df147934b0db24cb89d0abe3d /man | |
| parent | e9d5a4e18a8955cf60e78c54a511fd8e1259716f (diff) | |
| parent | 7c315e1cff9019c8af55921fab6f571e68b09623 (diff) | |
| download | emacs-773415d9340f12db3bd8654de5014deec57d49b7.tar.gz emacs-773415d9340f12db3bd8654de5014deec57d49b7.zip | |
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-31
Merge from emacs--cvs-trunk--0
Patches applied:
* emacs--cvs-trunk--0 (patch 206-222)
- Update from CVS
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (patch 45-52)
- Update from CVS
- Update from CVS: texi Makefile.in CVS keyw cruft
- Update from CVS: ChangeLog tweaks
Diffstat (limited to 'man')
| -rw-r--r-- | man/ChangeLog | 224 | ||||
| -rw-r--r-- | man/basic.texi | 63 | ||||
| -rw-r--r-- | man/building.texi | 26 | ||||
| -rw-r--r-- | man/calc.texi | 278 | ||||
| -rw-r--r-- | man/calendar.texi | 116 | ||||
| -rw-r--r-- | man/cl.texi | 20 | ||||
| -rw-r--r-- | man/commands.texi | 4 | ||||
| -rw-r--r-- | man/custom.texi | 21 | ||||
| -rw-r--r-- | man/dired-x.texi | 9 | ||||
| -rw-r--r-- | man/dired.texi | 34 | ||||
| -rw-r--r-- | man/display.texi | 11 | ||||
| -rw-r--r-- | man/emacs-mime.texi | 33 | ||||
| -rw-r--r-- | man/emacs-xtra.texi | 919 | ||||
| -rw-r--r-- | man/emacs.texi | 13 | ||||
| -rw-r--r-- | man/files.texi | 97 | ||||
| -rw-r--r-- | man/frames.texi | 16 | ||||
| -rw-r--r-- | man/gnus-faq.texi | 3521 | ||||
| -rw-r--r-- | man/gnus.texi | 4 | ||||
| -rw-r--r-- | man/help.texi | 43 | ||||
| -rw-r--r-- | man/idlwave.texi | 184 | ||||
| -rw-r--r-- | man/message.texi | 2 | ||||
| -rw-r--r-- | man/misc.texi | 15 | ||||
| -rw-r--r-- | man/mule.texi | 84 | ||||
| -rw-r--r-- | man/org.texi | 107 | ||||
| -rw-r--r-- | man/programs.texi | 247 | ||||
| -rw-r--r-- | man/reftex.texi | 35 | ||||
| -rw-r--r-- | man/text.texi | 166 | ||||
| -rw-r--r-- | man/xresources.texi | 296 |
28 files changed, 3851 insertions, 2737 deletions
diff --git a/man/ChangeLog b/man/ChangeLog index bfe4eab2fa5..d808b9fe6d7 100644 --- a/man/ChangeLog +++ b/man/ChangeLog | |||
| @@ -1,3 +1,227 @@ | |||
| 1 | 2005-03-30 Glenn Morris <gmorris@ast.cam.ac.uk> | ||
| 2 | |||
| 3 | * programs.texi (Fortran Motion): Fix previous change. | ||
| 4 | |||
| 5 | 2005-03-25 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 6 | |||
| 7 | * emacs-mime.texi (Display Customization): Markup fixes. | ||
| 8 | (rfc2047): Update. | ||
| 9 | |||
| 10 | 2005-03-23 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 11 | |||
| 12 | * gnus-faq.texi: Replaced with auto-generated version. | ||
| 13 | |||
| 14 | 2005-03-29 Richard M. Stallman <rms@gnu.org> | ||
| 15 | |||
| 16 | * mule.texi (Single-Byte Character Support): Reinstall the C-x 8 info. | ||
| 17 | |||
| 18 | 2005-03-29 Chong Yidong <cyd@stupidchicken.com> | ||
| 19 | |||
| 20 | * text.texi (Refill): Refer to Long Lines Mode. | ||
| 21 | (Longlines): New node. | ||
| 22 | (Auto Fill): Don't index "word wrap" here. | ||
| 23 | (Filling): Add Longlines to menu. | ||
| 24 | |||
| 25 | 2005-03-29 Richard M. Stallman <rms@gnu.org> | ||
| 26 | |||
| 27 | * xresources.texi: Minor fixes. | ||
| 28 | |||
| 29 | * misc.texi (Emacs Server): Fix Texinfo usage. | ||
| 30 | |||
| 31 | * emacs.texi (Top): Don't use a real section heading for | ||
| 32 | "Detailed Node Listing". Fake it instead. | ||
| 33 | |||
| 34 | * basic.texi (Position Info): Minor cleanup. | ||
| 35 | |||
| 36 | * mule.texi (Input Methods): Minor cleanup. | ||
| 37 | |||
| 38 | 2005-03-29 Glenn Morris <gmorris@ast.cam.ac.uk> | ||
| 39 | |||
| 40 | * programs.texi (ForIndent Vars): `fortran-if-indent' does other | ||
| 41 | constructs as well. | ||
| 42 | (Fortran Motion): Add fortran-end-of-block, | ||
| 43 | fortran-beginning-of-block. | ||
| 44 | |||
| 45 | 2005-03-29 Kenichi Handa <handa@m17n.org> | ||
| 46 | |||
| 47 | * mule.texi (Input Methods): Refer to the command C-u C-x =. | ||
| 48 | |||
| 49 | * basic.texi (Position Info): Update the description about the | ||
| 50 | command C-u C-x =. | ||
| 51 | |||
| 52 | 2005-03-28 Richard M. Stallman <rms@gnu.org> | ||
| 53 | |||
| 54 | * emacs.texi (Top): Use @section for the detailed node listing. | ||
| 55 | |||
| 56 | * calendar.texi: Minor fixes to previous change. | ||
| 57 | |||
| 58 | * programs.texi (Fortran): Small fixes to previous changes. | ||
| 59 | |||
| 60 | * emacs.texi (Top): Update list of subnodes of Dired. | ||
| 61 | Likewise for building.texi. | ||
| 62 | |||
| 63 | * files.texi (File Conveniences): Delete Auto Image File mode. | ||
| 64 | |||
| 65 | 2005-03-28 Chong Yidong <cyd@stupidchicken.com> | ||
| 66 | |||
| 67 | * building.texi (Flymake): New node. | ||
| 68 | |||
| 69 | * custom.texi (Function Keys): Document kp- event types and | ||
| 70 | keypad-setup package. | ||
| 71 | |||
| 72 | * dired.texi (Wdired): New node. | ||
| 73 | |||
| 74 | * files.texi (File Conveniences): Reorder entries. | ||
| 75 | Explain how to turn on Auto-image-file mode. | ||
| 76 | Document Thumbs mode. | ||
| 77 | |||
| 78 | * mule.texi (Specify Coding): Document recode-region and | ||
| 79 | recode-file-name. | ||
| 80 | |||
| 81 | * programs.texi (Program Modes): Add Conf mode and DNS mode. | ||
| 82 | |||
| 83 | 2005-03-27 Luc Teirlinck <teirllm@auburn.edu> | ||
| 84 | |||
| 85 | * commands.texi (Keys): M-o is now a prefix key. | ||
| 86 | |||
| 87 | 2005-03-27 Glenn Morris <gmorris@ast.cam.ac.uk> | ||
| 88 | |||
| 89 | * programs.texi: Reformat and update copyright years. | ||
| 90 | (Fortran): Update section. | ||
| 91 | |||
| 92 | 2005-03-26 Luc Teirlinck <teirllm@auburn.edu> | ||
| 93 | |||
| 94 | * files.texi: Several small changes in addition to: | ||
| 95 | (Visiting): Change xref for Dialog Boxes to ref. | ||
| 96 | (Version Headers): Replace references to obsolete var | ||
| 97 | `vc-header-alist' with `vc-BACKEND-header'. | ||
| 98 | (Customizing VC): Update value of `vc-handled-backends'. | ||
| 99 | |||
| 100 | 2005-03-26 Glenn Morris <gmorris@ast.cam.ac.uk> | ||
| 101 | |||
| 102 | * emacs-xtra.texi (Advanced Calendar/Diary Usage): New section; | ||
| 103 | move here from Emacs Lisp Reference Manual. | ||
| 104 | * calendar.texi (Calendar/Diary, Diary Commands) | ||
| 105 | (Special Diary Entries, Importing Diary): Change some xrefs to | ||
| 106 | point to emacs-xtra rather than elisp. | ||
| 107 | |||
| 108 | * emacs-xtra.texi (Calendar Customizing): Move | ||
| 109 | view-diary-entries-initially, view-calendar-holidays-initially, | ||
| 110 | mark-diary-entries-in-calendar, mark-holidays-in-calendar to main | ||
| 111 | Emacs Manual. | ||
| 112 | (Appt Customizing): Merge entire section into main Emacs Manual. | ||
| 113 | * calendar.texi (Holidays): Move view-calendar-holidays-initially, | ||
| 114 | mark-holidays-in-calendar here from emacs-xtra. | ||
| 115 | (Displaying the Diary): Move view-diary-entries-initially, | ||
| 116 | mark-diary-entries-in-calendar here from emacs-xtra. | ||
| 117 | (Appointments): Move appt-display-mode-line, | ||
| 118 | appt-display-duration, appt-disp-window-function, | ||
| 119 | appt-delete-window-function here from emacs-xtra. | ||
| 120 | |||
| 121 | * calendar.texi: Update and reformat copyright. | ||
| 122 | Change all @xrefs to the non-printing emacs-xtra to @inforefs. | ||
| 123 | (Calendar/Diary): Menu now only on Mouse-3, not C-Mouse-3. | ||
| 124 | (Diary): Refer to `diary-file' rather than ~/diary. | ||
| 125 | (Diary Commands): Rename node to "Displaying the Diary". | ||
| 126 | * emacs.texi (Top): Rename "Diary Commands" section. | ||
| 127 | * misc.texi (Hardcopy): Rename "Diary Commands" xref. | ||
| 128 | |||
| 129 | 2005-03-26 Eli Zaretskii <eliz@gnu.org> | ||
| 130 | |||
| 131 | * misc.texi (Emacs Server): Fix the command for setting | ||
| 132 | server-name. Add an xref to Invoking emacsclient. | ||
| 133 | |||
| 134 | * help.texi (Help Summary): Clarify when "C-h ." will do something | ||
| 135 | nontrivial. | ||
| 136 | (Apropos): Add cindex entry for apropos-sort-by-scores. | ||
| 137 | |||
| 138 | * display.texi (Text Display): Add index entries for how no-break | ||
| 139 | characters are displayed. | ||
| 140 | |||
| 141 | 2005-03-26 Stephan Stahl <stahl@eos.franken.de> (tiny change) | ||
| 142 | |||
| 143 | * dired-x.texi (Multiple Dired Directories): default-directory was | ||
| 144 | renamed to dired-default-directory. | ||
| 145 | |||
| 146 | 2005-03-26 Eli Zaretskii <eliz@gnu.org> | ||
| 147 | |||
| 148 | * files.texi (Visiting): Fix cross-references introduced with the | ||
| 149 | last change. | ||
| 150 | |||
| 151 | * xresources.texi (GTK resources): Fix last change. | ||
| 152 | |||
| 153 | 2005-03-26 Jay Belanger <belanger@truman.edu> | ||
| 154 | |||
| 155 | * calc.texi (Simplifying Formulas, Rewrite Rules): Change | ||
| 156 | description of top and bottom of fraction. | ||
| 157 | (Modulo Forms): Move description of how to create modulo forms to | ||
| 158 | earlier in the section. | ||
| 159 | (Fraction Mode): Suggest using : to get a fraction by dividing. | ||
| 160 | (Basic Arithmetic): Adjust placement of command name. | ||
| 161 | (Truncating the Stack): Emphasize that "hidden" entries are still | ||
| 162 | visible. | ||
| 163 | (Installation): Move discussion of printing manual to "About This | ||
| 164 | Manual". | ||
| 165 | (About This Manual): Mention how to print the manual. | ||
| 166 | (Reporting Bugs): Remove first person. | ||
| 167 | (Building Vectors): Add algebraic version of append. | ||
| 168 | (Manipulating Vectors): Fix algebraic version of calc-reverse-vector. | ||
| 169 | (Grouping Digits): Fix typo. | ||
| 170 | |||
| 171 | 2005-03-25 Chong Yidong <cyd@stupidchicken.com> | ||
| 172 | |||
| 173 | * xresources.texi (X Resources): GTK options documented too. | ||
| 174 | (Resources): Clarify meaning of program name. | ||
| 175 | (Table of Resources): Add visualClass. | ||
| 176 | (GTK resources): Rewrite. | ||
| 177 | (GTK widget names, GTK Names in Emacs, GTK styles): Cleanups. | ||
| 178 | |||
| 179 | * display.texi (Text Display): Mention non-breaking spaces. | ||
| 180 | |||
| 181 | * files.texi (Reverting): Document auto-revert-check-vc-info. | ||
| 182 | |||
| 183 | * frames.texi (Mouse Commands): Document | ||
| 184 | x-mouse-click-focus-ignore-position and mouse-drag-copy-region. | ||
| 185 | |||
| 186 | * help.texi (Help Summary): Add `C-h .'. | ||
| 187 | (Apropos): Apropos accepts a list of search terms. | ||
| 188 | Document apropos-sort-by-scores. | ||
| 189 | (Help Echo): Document display-local-help. | ||
| 190 | |||
| 191 | * misc.texi (Emacs Server): Document server-name. | ||
| 192 | (Invoking emacsclient): Document -s option for server names. | ||
| 193 | |||
| 194 | * text.texi (Outline Visibility): Introduce "current heading | ||
| 195 | line" (commands can be called with point on a body line). | ||
| 196 | Re-order table to follow the sequence of discussion. | ||
| 197 | hide-body won't hide lines before first header line. | ||
| 198 | (TeX Mode): Add DocTeX mode. | ||
| 199 | |||
| 200 | 2005-03-25 Werner Lemberg <wl@gnu.org> | ||
| 201 | |||
| 202 | * calc.texi, cl.texi, gnus.texi, idlwave.texi, reftex.texi: Replace | ||
| 203 | `legal' with `valid'. | ||
| 204 | |||
| 205 | 2005-03-25 Werner Lemberg <wl@gnu.org> | ||
| 206 | |||
| 207 | * calc.texi, reftex.texi: Replace `illegal' with `invalid'. | ||
| 208 | |||
| 209 | 2005-03-24 Jay Belanger <belanger@truman.edu> | ||
| 210 | |||
| 211 | * calc.texi (General Mode Commands) | ||
| 212 | (Mode Settings in Embedded Mode): Added some explanation of | ||
| 213 | recording mode settings. | ||
| 214 | |||
| 215 | 2005-03-24 Richard M. Stallman <rms@gnu.org> | ||
| 216 | |||
| 217 | * mule.texi (Single-Byte Character Support): Delete mention | ||
| 218 | of iso-acc.el and iso-transl.el. | ||
| 219 | |||
| 220 | * calc.texi: Remove praise of non-free software. | ||
| 221 | |||
| 222 | * idlwave.texi: Don't say where to get IDL or its non-free manual. | ||
| 223 | (Installation): Node deleted. | ||
| 224 | |||
| 1 | 2005-03-23 Lute Kamstra <lute@gnu.org> | 225 | 2005-03-23 Lute Kamstra <lute@gnu.org> |
| 2 | 226 | ||
| 3 | * search.texi (Non-ASCII Isearch): Rename from Non-Ascii Isearch. | 227 | * search.texi (Non-ASCII Isearch): Rename from Non-Ascii Isearch. |
diff --git a/man/basic.texi b/man/basic.texi index 2f8c2bc1764..ad3cfbca88a 100644 --- a/man/basic.texi +++ b/man/basic.texi | |||
| @@ -677,36 +677,57 @@ point=26957 of 26956(100%) column 0 | |||
| 677 | @cindex character set of character at point | 677 | @cindex character set of character at point |
| 678 | @cindex font of character at point | 678 | @cindex font of character at point |
| 679 | @cindex text properties at point | 679 | @cindex text properties at point |
| 680 | @w{@kbd{C-u C-x =}} displays additional information about a | 680 | @w{@kbd{C-u C-x =}} displays these additional information about a |
| 681 | character, including the character set name and the codes that | 681 | character. |
| 682 | identify the character within that character set; @acronym{ASCII} characters are | 682 | |
| 683 | identified as belonging to the @code{ascii} character set. It also | 683 | @itemize @bullet |
| 684 | shows the character's syntax, categories, and encodings both | 684 | @item |
| 685 | internally in the buffer and externally if you save the file. It also | 685 | The character set name, and the codes that identify the character |
| 686 | shows the character's text properties (@pxref{Text Properties,,, | 686 | within that character set; @acronym{ASCII} characters are identified |
| 687 | as belonging to the @code{ascii} character set. | ||
| 688 | |||
| 689 | @item | ||
| 690 | The character's syntax and categories. | ||
| 691 | |||
| 692 | @item | ||
| 693 | The character's encodings, both internally in the buffer, and externally | ||
| 694 | if you were to save the file. | ||
| 695 | |||
| 696 | @item | ||
| 697 | What to type to input the character in the current input method | ||
| 698 | (if it supports the character). | ||
| 699 | |||
| 700 | @item | ||
| 701 | If you are running Emacs on a window system, the font name and glyph | ||
| 702 | code for the character. If you are running Emacs on a terminal, the | ||
| 703 | code(s) sent to the terminal. | ||
| 704 | |||
| 705 | @item | ||
| 706 | The character's text properties (@pxref{Text Properties,,, | ||
| 687 | elisp, the Emacs Lisp Reference Manual}), and any overlays containing it | 707 | elisp, the Emacs Lisp Reference Manual}), and any overlays containing it |
| 688 | (@pxref{Overlays,,, elisp, the same manual}). | 708 | (@pxref{Overlays,,, elisp, the same manual}). |
| 709 | @end itemize | ||
| 689 | 710 | ||
| 690 | Here's an example showing the Latin-1 character A with grave accent, | 711 | Here's an example showing the Latin-1 character A with grave accent, |
| 691 | in a buffer whose coding system is @code{iso-2022-7bit}, whose | 712 | in a buffer whose coding system is @code{iso-latin-1}, whose |
| 692 | terminal coding system is @code{iso-latin-1} (so the terminal actually | 713 | terminal coding system is @code{iso-latin-1} (so the terminal actually |
| 693 | displays the character as @samp{@`A}), and which has font-lock-mode | 714 | displays the character as @samp{@`A}), and which has font-lock-mode |
| 694 | (@pxref{Font Lock}) enabled: | 715 | (@pxref{Font Lock}) enabled: |
| 695 | 716 | ||
| 696 | @smallexample | 717 | @smallexample |
| 697 | character: @`A (04300, 2240, 0x8c0) | 718 | character: @`A (04300, 2240, 0x8c0, U+00C0) |
| 698 | charset: latin-iso8859-1 | 719 | charset: latin-iso8859-1 |
| 699 | (Right-Hand Part of Latin Alphabet 1@dots{} | 720 | (Right-Hand Part of Latin Alphabet 1@dots{} |
| 700 | code point: 64 | 721 | code point: 64 |
| 701 | syntax: w which means: word | 722 | syntax: w which means: word |
| 702 | category: l:Latin | 723 | category: l:Latin |
| 703 | buffer code: 0x81 0xC0 | 724 | to input: type "`A" |
| 704 | file code: ESC 2C 41 40 (encoded by coding system iso-2022-7bit) | 725 | buffer code: 0x81 0xC0 |
| 705 | terminal code: C0 | 726 | file code: ESC 2C 41 40 (encoded by coding system iso-2022-7bit) |
| 706 | 727 | display: terminal code 0xC0 | |
| 707 | Text properties | 728 | |
| 708 | font-lock-face: font-lock-variable-name-face | 729 | There are text properties here: |
| 709 | fontified: t | 730 | fontified t |
| 710 | @end smallexample | 731 | @end smallexample |
| 711 | 732 | ||
| 712 | @node Arguments | 733 | @node Arguments |
diff --git a/man/building.texi b/man/building.texi index 50490e34dd5..10b7b8053d2 100644 --- a/man/building.texi +++ b/man/building.texi | |||
| @@ -18,6 +18,7 @@ in the larger process of developing and maintaining programs. | |||
| 18 | * Compilation Shell:: Customizing your shell properly | 18 | * Compilation Shell:: Customizing your shell properly |
| 19 | for use in the compilation buffer. | 19 | for use in the compilation buffer. |
| 20 | * Grep Searching:: Searching with grep. | 20 | * Grep Searching:: Searching with grep. |
| 21 | * Flymake:: Finding syntax errors on the fly. | ||
| 21 | * Debuggers:: Running symbolic debuggers for non-Lisp programs. | 22 | * Debuggers:: Running symbolic debuggers for non-Lisp programs. |
| 22 | * Executing Lisp:: Various modes for editing Lisp programs, | 23 | * Executing Lisp:: Various modes for editing Lisp programs, |
| 23 | with different facilities for running | 24 | with different facilities for running |
| @@ -337,6 +338,31 @@ initial default for the command---one that runs both @code{find} and | |||
| 337 | @code{grep}, so as to search every file in a directory tree. See also | 338 | @code{grep}, so as to search every file in a directory tree. See also |
| 338 | the @code{find-grep-dired} command, in @ref{Dired and Find}. | 339 | the @code{find-grep-dired} command, in @ref{Dired and Find}. |
| 339 | 340 | ||
| 341 | @node Flymake | ||
| 342 | @section Finding Syntax Errors On The Fly | ||
| 343 | @cindex checking syntax | ||
| 344 | |||
| 345 | Flymake mode is a minor mode that performs on-the-fly syntax | ||
| 346 | checking for many programming and markup languages, including C, C++, | ||
| 347 | Perl, HTML, and @TeX{}/La@TeX{}. It is somewhat analogous to Flyspell | ||
| 348 | mode, which performs spell checking for ordinary human languages in a | ||
| 349 | similar fashion (@pxref{Spelling}). As you edit a file, Flymake mode | ||
| 350 | runs an appropriate syntax checking tool in the background, using a | ||
| 351 | temporary copy of the buffer. It then parses the error and warning | ||
| 352 | messages, and highlights the erroneous lines in the buffer. The | ||
| 353 | syntax checking tool used depends on the language; for example, for | ||
| 354 | C/C++ files this is usually the C compiler. Flymake can also use | ||
| 355 | build tools such as @code{make} for checking complicated projects. | ||
| 356 | |||
| 357 | To activate Flymake mode, type @kbd{M-x flymake-mode}. You can move | ||
| 358 | to the errors spotted by Flymake mode with @kbd{M-x | ||
| 359 | flymake-goto-next-error} and @kbd{M-x flymake-goto-prev-error}. To | ||
| 360 | display any error messages associated with the current line, use | ||
| 361 | @kbd{M-x flymake-display-err-menu-for-current-line}. | ||
| 362 | |||
| 363 | For more details about using Flymake, see @ref{Top, Flymake, | ||
| 364 | Flymake, flymake, The Flymake Manual}. | ||
| 365 | |||
| 340 | @node Debuggers | 366 | @node Debuggers |
| 341 | @section Running Debuggers Under Emacs | 367 | @section Running Debuggers Under Emacs |
| 342 | @cindex debuggers | 368 | @cindex debuggers |
diff --git a/man/calc.texi b/man/calc.texi index c45fd8cd227..07c33206f28 100644 --- a/man/calc.texi +++ b/man/calc.texi | |||
| @@ -83,7 +83,7 @@ | |||
| 83 | @copying | 83 | @copying |
| 84 | This file documents Calc, the GNU Emacs calculator. | 84 | This file documents Calc, the GNU Emacs calculator. |
| 85 | 85 | ||
| 86 | Copyright (C) 1990, 1991, 2001, 2002 Free Software Foundation, Inc. | 86 | Copyright (C) 1990, 1991, 2001, 2002, 2005 Free Software Foundation, Inc. |
| 87 | 87 | ||
| 88 | @quotation | 88 | @quotation |
| 89 | Permission is granted to copy, distribute and/or modify this document | 89 | Permission is granted to copy, distribute and/or modify this document |
| @@ -111,14 +111,15 @@ Software Foundation raise funds for GNU development.'' | |||
| 111 | @center GNU Emacs Calc Version 2.02g | 111 | @center GNU Emacs Calc Version 2.02g |
| 112 | @c [volume] | 112 | @c [volume] |
| 113 | @sp 1 | 113 | @sp 1 |
| 114 | @center January 2002 | 114 | @center March 2005 |
| 115 | @sp 5 | 115 | @sp 5 |
| 116 | @center Dave Gillespie | 116 | @center Dave Gillespie |
| 117 | @center daveg@@synaptics.com | 117 | @center daveg@@synaptics.com |
| 118 | @page | 118 | @page |
| 119 | 119 | ||
| 120 | @vskip 0pt plus 1filll | 120 | @vskip 0pt plus 1filll |
| 121 | Copyright @copyright{} 1990, 1991, 2001, 2002 Free Software Foundation, Inc. | 121 | Copyright @copyright{} 1990, 1991, 2001, 2002, 2005 |
| 122 | Free Software Foundation, Inc. | ||
| 122 | @insertcopying | 123 | @insertcopying |
| 123 | @end titlepage | 124 | @end titlepage |
| 124 | 125 | ||
| @@ -476,10 +477,9 @@ large and might be intimidating to the first-time user. If you plan to | |||
| 476 | use Calc only as a traditional desk calculator, all you really need to | 477 | use Calc only as a traditional desk calculator, all you really need to |
| 477 | read is the ``Getting Started'' chapter of this manual and possibly the | 478 | read is the ``Getting Started'' chapter of this manual and possibly the |
| 478 | first few sections of the tutorial. As you become more comfortable with | 479 | first few sections of the tutorial. As you become more comfortable with |
| 479 | the program you can learn its additional features. In terms of efficiency, | 480 | the program you can learn its additional features. Calc does not |
| 480 | scope and depth, Calc cannot replace a powerful tool like Mathematica. | 481 | have the scope and depth of a fully-functional symbolic math package, |
| 481 | But Calc has the advantages of convenience, portability, and availability | 482 | but Calc has the advantages of convenience, portability, and freedom. |
| 482 | of the source code. And, of course, it's free! | ||
| 483 | 483 | ||
| 484 | @node About This Manual, Notations Used in This Manual, What is Calc, Getting Started | 484 | @node About This Manual, Notations Used in This Manual, What is Calc, Getting Started |
| 485 | @section About This Manual | 485 | @section About This Manual |
| @@ -546,8 +546,35 @@ you can also go to the part of the manual describing any Calc key, | |||
| 546 | function, or variable using @w{@kbd{h k}}, @kbd{h f}, or @kbd{h v}, | 546 | function, or variable using @w{@kbd{h k}}, @kbd{h f}, or @kbd{h v}, |
| 547 | respectively. @xref{Help Commands}. | 547 | respectively. @xref{Help Commands}. |
| 548 | 548 | ||
| 549 | Printed copies of this manual are also available from the Free Software | 549 | The Calc manual can be printed, but because the manual is so large, you |
| 550 | Foundation. | 550 | should only make a printed copy if you really need it. To print the |
| 551 | manual, you will need the @TeX{} typesetting program (this is a free | ||
| 552 | program by Donald Knuth at Stanford University) as well as the | ||
| 553 | @file{texindex} program and @file{texinfo.tex} file, both of which can | ||
| 554 | be obtained from the FSF as part of the @code{texinfo} package. | ||
| 555 | To print the Calc manual in one huge tome, you will need the | ||
| 556 | source code to this manual, @file{calc.texi}, available as part of the | ||
| 557 | Emacs source. Once you have this file, type @kbd{texi2dvi calc.texi}. | ||
| 558 | Alternatively, change to the @file{man} subdirectory of the Emacs | ||
| 559 | source distribution, and type @kbd{make calc.dvi}. (Don't worry if you | ||
| 560 | get some ``overfull box'' warnings while @TeX{} runs.) | ||
| 561 | The result will be a device-independent output file called | ||
| 562 | @file{calc.dvi}, which you must print in whatever way is right | ||
| 563 | for your system. On many systems, the command is | ||
| 564 | |||
| 565 | @example | ||
| 566 | lpr -d calc.dvi | ||
| 567 | @end example | ||
| 568 | |||
| 569 | @noindent | ||
| 570 | or | ||
| 571 | |||
| 572 | @example | ||
| 573 | dvips calc.dvi | ||
| 574 | @end example | ||
| 575 | |||
| 576 | @c Printed copies of this manual are also available from the Free Software | ||
| 577 | @c Foundation. | ||
| 551 | 578 | ||
| 552 | @node Notations Used in This Manual, Demonstration of Calc, About This Manual, Getting Started | 579 | @node Notations Used in This Manual, Demonstration of Calc, About This Manual, Getting Started |
| 553 | @section Notations Used in This Manual | 580 | @section Notations Used in This Manual |
| @@ -1365,13 +1392,13 @@ to look around for other data types that might be worth having. | |||
| 1365 | 1392 | ||
| 1366 | Around this time, my friend Rick Koshi showed me his nifty new HP-28 | 1393 | Around this time, my friend Rick Koshi showed me his nifty new HP-28 |
| 1367 | calculator. It allowed the user to manipulate formulas as well as | 1394 | calculator. It allowed the user to manipulate formulas as well as |
| 1368 | numerical quantities, and it could also operate on matrices. I decided | 1395 | numerical quantities, and it could also operate on matrices. I |
| 1369 | that these would be good for Calc to have, too. And once things had | 1396 | decided that these would be good for Calc to have, too. And once |
| 1370 | gone this far, I figured I might as well take a look at serious algebra | 1397 | things had gone this far, I figured I might as well take a look at |
| 1371 | systems like Mathematica, Macsyma, and Maple for further ideas. Since | 1398 | serious algebra systems for further ideas. Since these systems did |
| 1372 | these systems did far more than I could ever hope to implement, I decided | 1399 | far more than I could ever hope to implement, I decided to focus on |
| 1373 | to focus on rewrite rules and other programming features so that users | 1400 | rewrite rules and other programming features so that users could |
| 1374 | could implement what they needed for themselves. | 1401 | implement what they needed for themselves. |
| 1375 | 1402 | ||
| 1376 | Rick complained that matrices were hard to read, so I put in code to | 1403 | Rick complained that matrices were hard to read, so I put in code to |
| 1377 | format them in a 2D style. Once these routines were in place, Big mode | 1404 | format them in a 2D style. Once these routines were in place, Big mode |
| @@ -1412,16 +1439,14 @@ parts. Bob Weiner helped immensely with the Lucid Emacs port. | |||
| 1412 | Among the books used in the development of Calc were Knuth's @emph{Art | 1439 | Among the books used in the development of Calc were Knuth's @emph{Art |
| 1413 | of Computer Programming} (especially volume II, @emph{Seminumerical | 1440 | of Computer Programming} (especially volume II, @emph{Seminumerical |
| 1414 | Algorithms}); @emph{Numerical Recipes} by Press, Flannery, Teukolsky, | 1441 | Algorithms}); @emph{Numerical Recipes} by Press, Flannery, Teukolsky, |
| 1415 | and Vetterling; Bevington's @emph{Data Reduction and Error Analysis for | 1442 | and Vetterling; Bevington's @emph{Data Reduction and Error Analysis |
| 1416 | the Physical Sciences}; @emph{Concrete Mathematics} by Graham, Knuth, | 1443 | for the Physical Sciences}; @emph{Concrete Mathematics} by Graham, |
| 1417 | and Patashnik; Steele's @emph{Common Lisp, the Language}; the @emph{CRC | 1444 | Knuth, and Patashnik; Steele's @emph{Common Lisp, the Language}; the |
| 1418 | Standard Math Tables} (William H. Beyer, ed.); and Abramowitz and | 1445 | @emph{CRC Standard Math Tables} (William H. Beyer, ed.); and |
| 1419 | Stegun's venerable @emph{Handbook of Mathematical Functions}. I | 1446 | Abramowitz and Stegun's venerable @emph{Handbook of Mathematical |
| 1420 | consulted the user's manuals for the HP-28 and HP-48 calculators, as | 1447 | Functions}. Also, of course, Calc could not have been written without |
| 1421 | well as for the programs Mathematica, SMP, Macsyma, Maple, MathCAD, | 1448 | the excellent @emph{GNU Emacs Lisp Reference Manual}, by Bil Lewis and |
| 1422 | Gnuplot, and others. Also, of course, Calc could not have been written | 1449 | Dan LaLiberte. |
| 1423 | without the excellent @emph{GNU Emacs Lisp Reference Manual}, by Bil | ||
| 1424 | Lewis and Dan LaLiberte. | ||
| 1425 | 1450 | ||
| 1426 | Final thanks go to Richard Stallman, without whose fine implementations | 1451 | Final thanks go to Richard Stallman, without whose fine implementations |
| 1427 | of the Emacs editor, language, and environment, Calc would have been | 1452 | of the Emacs editor, language, and environment, Calc would have been |
| @@ -1503,8 +1528,8 @@ general areas. | |||
| 1503 | 1528 | ||
| 1504 | @ifinfo | 1529 | @ifinfo |
| 1505 | You may wish to print out a copy of the Calc Summary and keep notes on | 1530 | You may wish to print out a copy of the Calc Summary and keep notes on |
| 1506 | it as you learn Calc. @xref{Installation}, to see how to make a printed | 1531 | it as you learn Calc. @xref{About This Manual}, to see how to make a |
| 1507 | summary. @xref{Summary}. | 1532 | printed summary. @xref{Summary}. |
| 1508 | @end ifinfo | 1533 | @end ifinfo |
| 1509 | @iftex | 1534 | @iftex |
| 1510 | The Calc Summary at the end of the reference manual includes some blank | 1535 | The Calc Summary at the end of the reference manual includes some blank |
| @@ -5601,8 +5626,8 @@ entering them on the fly. | |||
| 5601 | 5626 | ||
| 5602 | (@bullet{}) @strong{Exercise 1.} Type @kbd{m s} to get Symbolic | 5627 | (@bullet{}) @strong{Exercise 1.} Type @kbd{m s} to get Symbolic |
| 5603 | mode, then enter the formula @samp{@w{(2 + sqrt(2))} / @w{(1 + sqrt(2))}}. | 5628 | mode, then enter the formula @samp{@w{(2 + sqrt(2))} / @w{(1 + sqrt(2))}}. |
| 5604 | Using a rewrite rule, simplify this formula by multiplying both | 5629 | Using a rewrite rule, simplify this formula by multiplying the top and |
| 5605 | sides by the conjugate @w{@samp{1 - sqrt(2)}}. The result will have | 5630 | bottom by the conjugate @w{@samp{1 - sqrt(2)}}. The result will have |
| 5606 | to be expanded by the distributive law; do this with another | 5631 | to be expanded by the distributive law; do this with another |
| 5607 | rewrite. @xref{Rewrites Answer 1, 1}. (@bullet{}) | 5632 | rewrite. @xref{Rewrites Answer 1, 1}. (@bullet{}) |
| 5608 | 5633 | ||
| @@ -11294,6 +11319,21 @@ where @var{a} and @var{M} are real numbers or HMS forms, and | |||
| 11294 | In many applications @expr{a} and @expr{M} will be | 11319 | In many applications @expr{a} and @expr{M} will be |
| 11295 | integers but this is not required. | 11320 | integers but this is not required. |
| 11296 | 11321 | ||
| 11322 | @ignore | ||
| 11323 | @mindex M | ||
| 11324 | @end ignore | ||
| 11325 | @kindex M (modulo forms) | ||
| 11326 | @ignore | ||
| 11327 | @mindex mod | ||
| 11328 | @end ignore | ||
| 11329 | @tindex mod (operator) | ||
| 11330 | To create a modulo form during numeric entry, press the shift-@kbd{M} | ||
| 11331 | key to enter the word @samp{mod}. As a special convenience, pressing | ||
| 11332 | shift-@kbd{M} a second time automatically enters the value of @expr{M} | ||
| 11333 | that was most recently used before. During algebraic entry, either | ||
| 11334 | type @samp{mod} by hand or press @kbd{M-m} (that's @kbd{@key{META}-m}). | ||
| 11335 | Once again, pressing this a second time enters the current modulo. | ||
| 11336 | |||
| 11297 | Modulo forms are not to be confused with the modulo operator @samp{%}. | 11337 | Modulo forms are not to be confused with the modulo operator @samp{%}. |
| 11298 | The expression @samp{27 % 10} means to compute 27 modulo 10 to produce | 11338 | The expression @samp{27 % 10} means to compute 27 modulo 10 to produce |
| 11299 | the result 7. Further computations treat this 7 as just a regular integer. | 11339 | the result 7. Further computations treat this 7 as just a regular integer. |
| @@ -11326,24 +11366,6 @@ in the sense of reducing | |||
| 11326 | modulo @expr{M}, this is not a useful definition from the | 11366 | modulo @expr{M}, this is not a useful definition from the |
| 11327 | number-theoretical point of view.) | 11367 | number-theoretical point of view.) |
| 11328 | 11368 | ||
| 11329 | @ignore | ||
| 11330 | @mindex M | ||
| 11331 | @end ignore | ||
| 11332 | @kindex M (modulo forms) | ||
| 11333 | @ignore | ||
| 11334 | @mindex mod | ||
| 11335 | @end ignore | ||
| 11336 | @tindex mod (operator) | ||
| 11337 | To create a modulo form during numeric entry, press the shift-@kbd{M} | ||
| 11338 | key to enter the word @samp{mod}. As a special convenience, pressing | ||
| 11339 | shift-@kbd{M} a second time automatically enters the value of @expr{M} | ||
| 11340 | that was most recently used before. During algebraic entry, either | ||
| 11341 | type @samp{mod} by hand or press @kbd{M-m} (that's @kbd{@key{META}-m}). | ||
| 11342 | Once again, pressing this a second time enters the current modulo. | ||
| 11343 | |||
| 11344 | You can also use @kbd{v p} and @kbd{%} to modify modulo forms. | ||
| 11345 | @xref{Building Vectors}. @xref{Basic Arithmetic}. | ||
| 11346 | |||
| 11347 | It is possible to mix HMS forms and modulo forms. For example, an | 11369 | It is possible to mix HMS forms and modulo forms. For example, an |
| 11348 | HMS form modulo 24 could be used to manipulate clock times; an HMS | 11370 | HMS form modulo 24 could be used to manipulate clock times; an HMS |
| 11349 | form modulo 360 would be suitable for angles. Making the modulo @expr{M} | 11371 | form modulo 360 would be suitable for angles. Making the modulo @expr{M} |
| @@ -11356,6 +11378,9 @@ Modulo forms cannot have variables or formulas for components. If you | |||
| 11356 | enter the formula @samp{(x + 2) mod 5}, Calc propagates the modulus | 11378 | enter the formula @samp{(x + 2) mod 5}, Calc propagates the modulus |
| 11357 | to each of the coefficients: @samp{(1 mod 5) x + (2 mod 5)}. | 11379 | to each of the coefficients: @samp{(1 mod 5) x + (2 mod 5)}. |
| 11358 | 11380 | ||
| 11381 | You can use @kbd{v p} and @kbd{%} to modify modulo forms. | ||
| 11382 | @xref{Packing and Unpacking}. @xref{Basic Arithmetic}. | ||
| 11383 | |||
| 11359 | @ignore | 11384 | @ignore |
| 11360 | @starindex | 11385 | @starindex |
| 11361 | @end ignore | 11386 | @end ignore |
| @@ -12262,9 +12287,13 @@ appended to the end of the file. | |||
| 12262 | @kindex m R | 12287 | @kindex m R |
| 12263 | @pindex calc-mode-record-mode | 12288 | @pindex calc-mode-record-mode |
| 12264 | The @kbd{m R} (@code{calc-mode-record-mode}) command tells Calc to | 12289 | The @kbd{m R} (@code{calc-mode-record-mode}) command tells Calc to |
| 12265 | record the new mode settings (as if by pressing @kbd{m m}) every | 12290 | record all the mode settings (as if by pressing @kbd{m m}) every |
| 12266 | time a mode setting changes. If Embedded mode is enabled, other | 12291 | time a mode setting changes. If the modes are saved this way, then this |
| 12267 | options are available; @pxref{Mode Settings in Embedded Mode}. | 12292 | ``automatic mode recording'' mode is also saved. |
| 12293 | Type @kbd{m R} again to disable this method of recording the mode | ||
| 12294 | settings. To turn it off permanently, the @kbd{m m} command will also be | ||
| 12295 | necessary. (If Embedded mode is enabled, other options for recording | ||
| 12296 | the modes are available; @pxref{Mode Settings in Embedded Mode}.) | ||
| 12268 | 12297 | ||
| 12269 | @kindex m F | 12298 | @kindex m F |
| 12270 | @pindex calc-settings-file-name | 12299 | @pindex calc-settings-file-name |
| @@ -12485,8 +12514,10 @@ of the above example situations would produce polar complex numbers. | |||
| 12485 | Division of two integers normally yields a floating-point number if the | 12514 | Division of two integers normally yields a floating-point number if the |
| 12486 | result cannot be expressed as an integer. In some cases you would | 12515 | result cannot be expressed as an integer. In some cases you would |
| 12487 | rather get an exact fractional answer. One way to accomplish this is | 12516 | rather get an exact fractional answer. One way to accomplish this is |
| 12488 | to multiply fractions instead: @kbd{6 @key{RET} 1:4 *} produces @expr{3:2} | 12517 | to use the @kbd{:} (@code{calc-fdiv}) [@code{fdiv}] command, which |
| 12489 | even though @kbd{6 @key{RET} 4 /} produces @expr{1.5}. | 12518 | divides the two integers on the top of the stack to produce a fraction: |
| 12519 | @kbd{6 @key{RET} 4 :} produces @expr{3:2} even though | ||
| 12520 | @kbd{6 @key{RET} 4 /} produces @expr{1.5}. | ||
| 12490 | 12521 | ||
| 12491 | @kindex m f | 12522 | @kindex m f |
| 12492 | @pindex calc-frac-mode | 12523 | @pindex calc-frac-mode |
| @@ -13291,7 +13322,7 @@ are displayed in clumps of 3 or 4 (depending on the current radix) | |||
| 13291 | separated by commas. | 13322 | separated by commas. |
| 13292 | 13323 | ||
| 13293 | The @kbd{d g} command toggles grouping on and off. | 13324 | The @kbd{d g} command toggles grouping on and off. |
| 13294 | With a numerix prefix of 0, this command displays the current state of | 13325 | With a numeric prefix of 0, this command displays the current state of |
| 13295 | the grouping flag; with an argument of minus one it disables grouping; | 13326 | the grouping flag; with an argument of minus one it disables grouping; |
| 13296 | with a positive argument @expr{N} it enables grouping on every @expr{N} | 13327 | with a positive argument @expr{N} it enables grouping on every @expr{N} |
| 13297 | digits. For floating-point numbers, grouping normally occurs only | 13328 | digits. For floating-point numbers, grouping normally occurs only |
| @@ -13797,11 +13828,12 @@ The @kbd{d t} (@code{calc-truncate-stack}) command moves the @samp{.}@: | |||
| 13797 | line that marks the top-of-stack up or down in the Calculator buffer. | 13828 | line that marks the top-of-stack up or down in the Calculator buffer. |
| 13798 | The number right above that line is considered to the be at the top of | 13829 | The number right above that line is considered to the be at the top of |
| 13799 | the stack. Any numbers below that line are ``hidden'' from all stack | 13830 | the stack. Any numbers below that line are ``hidden'' from all stack |
| 13800 | operations. This is similar to the Emacs ``narrowing'' feature, except | 13831 | operations (although still visible to the user). This is similar to the |
| 13801 | that the values below the @samp{.} are @emph{visible}, just temporarily | 13832 | Emacs ``narrowing'' feature, except that the values below the @samp{.} |
| 13802 | frozen. This feature allows you to keep several independent calculations | 13833 | are @emph{visible}, just temporarily frozen. This feature allows you to |
| 13803 | running at once in different parts of the stack, or to apply a certain | 13834 | keep several independent calculations running at once in different parts |
| 13804 | command to an element buried deep in the stack. | 13835 | of the stack, or to apply a certain command to an element buried deep in |
| 13836 | the stack. | ||
| 13805 | 13837 | ||
| 13806 | Pressing @kbd{d t} by itself moves the @samp{.} to the line the cursor | 13838 | Pressing @kbd{d t} by itself moves the @samp{.} to the line the cursor |
| 13807 | is on. Thus, this line and all those below it become hidden. To un-hide | 13839 | is on. Thus, this line and all those below it become hidden. To un-hide |
| @@ -13940,7 +13972,7 @@ Without being switched into C mode first, Calc would have misinterpreted | |||
| 13940 | the brackets in @samp{a[1]} and @samp{a[2]}, would not have known that | 13972 | the brackets in @samp{a[1]} and @samp{a[2]}, would not have known that |
| 13941 | @code{atan} was equivalent to Calc's built-in @code{arctan} function, | 13973 | @code{atan} was equivalent to Calc's built-in @code{arctan} function, |
| 13942 | and would have written the formula back with notations (like implicit | 13974 | and would have written the formula back with notations (like implicit |
| 13943 | multiplication) which would not have been legal for a C program. | 13975 | multiplication) which would not have been valid for a C program. |
| 13944 | 13976 | ||
| 13945 | As another example, suppose you are maintaining a C program and a La@TeX{} | 13977 | As another example, suppose you are maintaining a C program and a La@TeX{} |
| 13946 | document, each of which needs a copy of the same formula. You can grab the | 13978 | document, each of which needs a copy of the same formula. You can grab the |
| @@ -14641,8 +14673,7 @@ if the matrix justification mode so specifies. | |||
| 14641 | @pindex calc-mathematica-language | 14673 | @pindex calc-mathematica-language |
| 14642 | @cindex Mathematica language | 14674 | @cindex Mathematica language |
| 14643 | The @kbd{d M} (@code{calc-mathematica-language}) command selects the | 14675 | The @kbd{d M} (@code{calc-mathematica-language}) command selects the |
| 14644 | conventions of Mathematica, a powerful and popular mathematical tool | 14676 | conventions of Mathematica. Notable differences in Mathematica mode |
| 14645 | from Wolfram Research, Inc. Notable differences in Mathematica mode | ||
| 14646 | are that the names of built-in functions are capitalized, and function | 14677 | are that the names of built-in functions are capitalized, and function |
| 14647 | calls use square brackets instead of parentheses. Thus the Calc | 14678 | calls use square brackets instead of parentheses. Thus the Calc |
| 14648 | formula @samp{sin(2 x)} is entered and displayed @w{@samp{Sin[2 x]}} in | 14679 | formula @samp{sin(2 x)} is entered and displayed @w{@samp{Sin[2 x]}} in |
| @@ -14665,8 +14696,7 @@ Subscripts use double square brackets: @samp{a[[i]]}. | |||
| 14665 | @pindex calc-maple-language | 14696 | @pindex calc-maple-language |
| 14666 | @cindex Maple language | 14697 | @cindex Maple language |
| 14667 | The @kbd{d W} (@code{calc-maple-language}) command selects the | 14698 | The @kbd{d W} (@code{calc-maple-language}) command selects the |
| 14668 | conventions of Maple, another mathematical tool from the University | 14699 | conventions of Maple. |
| 14669 | of Waterloo. | ||
| 14670 | 14700 | ||
| 14671 | Maple's language is much like C. Underscores are allowed in symbol | 14701 | Maple's language is much like C. Underscores are allowed in symbol |
| 14672 | names; square brackets are used for subscripts; explicit @samp{*}s for | 14702 | names; square brackets are used for subscripts; explicit @samp{*}s for |
| @@ -15472,7 +15502,7 @@ backslashes in tokens.) | |||
| 15472 | This will parse @samp{3 bad token 4 /"\ 5} to @samp{silly(3,4,5)}. | 15502 | This will parse @samp{3 bad token 4 /"\ 5} to @samp{silly(3,4,5)}. |
| 15473 | 15503 | ||
| 15474 | The token @kbd{#} has a predefined meaning in Calc's formula parser; | 15504 | The token @kbd{#} has a predefined meaning in Calc's formula parser; |
| 15475 | it is not legal to use @samp{"#"} in a syntax rule. However, longer | 15505 | it is not valid to use @samp{"#"} in a syntax rule. However, longer |
| 15476 | tokens that include the @samp{#} character are allowed. Also, while | 15506 | tokens that include the @samp{#} character are allowed. Also, while |
| 15477 | @samp{"$"} and @samp{"\""} are allowed as tokens, their presence in | 15507 | @samp{"$"} and @samp{"\""} are allowed as tokens, their presence in |
| 15478 | the syntax table will prevent those characters from working in their | 15508 | the syntax table will prevent those characters from working in their |
| @@ -16038,7 +16068,7 @@ commands work by removing the top one or two values from the stack, | |||
| 16038 | performing the desired operation, and pushing the result back onto the | 16068 | performing the desired operation, and pushing the result back onto the |
| 16039 | stack. If the operation cannot be performed, the result pushed is a | 16069 | stack. If the operation cannot be performed, the result pushed is a |
| 16040 | formula instead of a number, such as @samp{2/0} (because division by zero | 16070 | formula instead of a number, such as @samp{2/0} (because division by zero |
| 16041 | is illegal) or @samp{sqrt(x)} (because the argument @samp{x} is a formula). | 16071 | is invalid) or @samp{sqrt(x)} (because the argument @samp{x} is a formula). |
| 16042 | 16072 | ||
| 16043 | Most of the commands described here can be invoked by a single keystroke. | 16073 | Most of the commands described here can be invoked by a single keystroke. |
| 16044 | Some of the more obscure ones are two-letter sequences beginning with | 16074 | Some of the more obscure ones are two-letter sequences beginning with |
| @@ -16242,7 +16272,7 @@ must be positive real number. | |||
| 16242 | @kindex : | 16272 | @kindex : |
| 16243 | @pindex calc-fdiv | 16273 | @pindex calc-fdiv |
| 16244 | @tindex fdiv | 16274 | @tindex fdiv |
| 16245 | The @kbd{:} (@code{calc-fdiv}) command [@code{fdiv} function in a formula] | 16275 | The @kbd{:} (@code{calc-fdiv}) [@code{fdiv}] command |
| 16246 | divides the two integers on the top of the stack to produce a fractional | 16276 | divides the two integers on the top of the stack to produce a fractional |
| 16247 | result. This is a convenient shorthand for enabling Fraction mode (with | 16277 | result. This is a convenient shorthand for enabling Fraction mode (with |
| 16248 | @kbd{m f}) temporarily and using @samp{/}. Note that during numeric entry | 16278 | @kbd{m f}) temporarily and using @samp{/}. Note that during numeric entry |
| @@ -17965,14 +17995,6 @@ and the depreciation is zero for all subsequent periods. The @code{ddb} | |||
| 17965 | function returns the amount the book value decreased in the specified | 17995 | function returns the amount the book value decreased in the specified |
| 17966 | period. | 17996 | period. |
| 17967 | 17997 | ||
| 17968 | The Calc financial function names were borrowed mostly from Microsoft | ||
| 17969 | Excel and Borland's Quattro. The @code{ratel} function corresponds to | ||
| 17970 | @samp{@@CGR} in Borland's Reflex. The @code{nper} and @code{nperl} | ||
| 17971 | functions correspond to @samp{@@TERM} and @samp{@@CTERM} in Quattro, | ||
| 17972 | respectively. Beware that the Calc functions may take their arguments | ||
| 17973 | in a different order than the corresponding functions in your favorite | ||
| 17974 | spreadsheet. | ||
| 17975 | |||
| 17976 | @node Binary Functions, , Financial Functions, Arithmetic | 17998 | @node Binary Functions, , Financial Functions, Arithmetic |
| 17977 | @section Binary Number Functions | 17999 | @section Binary Number Functions |
| 17978 | 18000 | ||
| @@ -19536,7 +19558,7 @@ packing mode (an integer or a vector of integers) and @var{items} | |||
| 19536 | is a vector of objects to be packed (re-packed, really) according | 19558 | is a vector of objects to be packed (re-packed, really) according |
| 19537 | to that mode. For example, @samp{pack([3, -4], [a,b,c,d,e,f])} | 19559 | to that mode. For example, @samp{pack([3, -4], [a,b,c,d,e,f])} |
| 19538 | yields @samp{[a +/- b, @w{c +/- d}, e +/- f]}. The function is | 19560 | yields @samp{[a +/- b, @w{c +/- d}, e +/- f]}. The function is |
| 19539 | left in symbolic form if the packing mode is illegal, or if the | 19561 | left in symbolic form if the packing mode is invalid, or if the |
| 19540 | number of data items does not match the number of items required | 19562 | number of data items does not match the number of items required |
| 19541 | by the mode. | 19563 | by the mode. |
| 19542 | 19564 | ||
| @@ -19630,7 +19652,7 @@ subtracted, multiplied, and divided; @pxref{Basic Arithmetic}. | |||
| 19630 | @mindex @null | 19652 | @mindex @null |
| 19631 | @end ignore | 19653 | @end ignore |
| 19632 | @tindex | | 19654 | @tindex | |
| 19633 | The @kbd{|} (@code{calc-concat}) command ``concatenates'' two vectors | 19655 | The @kbd{|} (@code{calc-concat}) [@code{vconcat}] command ``concatenates'' two vectors |
| 19634 | into one. For example, after @kbd{@w{[ 1 , 2 ]} [ 3 , 4 ] |}, the stack | 19656 | into one. For example, after @kbd{@w{[ 1 , 2 ]} [ 3 , 4 ] |}, the stack |
| 19635 | will contain the single vector @samp{[1, 2, 3, 4]}. If the arguments | 19657 | will contain the single vector @samp{[1, 2, 3, 4]}. If the arguments |
| 19636 | are matrices, the rows of the first matrix are concatenated with the | 19658 | are matrices, the rows of the first matrix are concatenated with the |
| @@ -20031,7 +20053,7 @@ a one-column matrix. | |||
| 20031 | @kindex v v | 20053 | @kindex v v |
| 20032 | @pindex calc-reverse-vector | 20054 | @pindex calc-reverse-vector |
| 20033 | @tindex rev | 20055 | @tindex rev |
| 20034 | The @kbd{v v} (@code{calc-reverse-vector}) [@code{vec}] command reverses | 20056 | The @kbd{v v} (@code{calc-reverse-vector}) [@code{rev}] command reverses |
| 20035 | a vector end-for-end. Given a matrix, it reverses the order of the rows. | 20057 | a vector end-for-end. Given a matrix, it reverses the order of the rows. |
| 20036 | (To reverse the columns instead, just use @kbd{v t v v v t}. The same | 20058 | (To reverse the columns instead, just use @kbd{v t v v v t}. The same |
| 20037 | principle can be used to apply other vector commands to the columns of | 20059 | principle can be used to apply other vector commands to the columns of |
| @@ -22680,7 +22702,7 @@ on while doing algebra; @pxref{Fraction Mode}. | |||
| 22680 | Quotients are simplified by comparing all terms in the numerator | 22702 | Quotients are simplified by comparing all terms in the numerator |
| 22681 | with all terms in the denominator for possible cancellation using | 22703 | with all terms in the denominator for possible cancellation using |
| 22682 | the distributive law. For example, @expr{a x^2 b / c x^3 d} will | 22704 | the distributive law. For example, @expr{a x^2 b / c x^3 d} will |
| 22683 | cancel @expr{x^2} from both sides to get @expr{a b / c x d}. | 22705 | cancel @expr{x^2} from the top and bottom to get @expr{a b / c x d}. |
| 22684 | (The terms in the denominator will then be rearranged to @expr{c d x} | 22706 | (The terms in the denominator will then be rearranged to @expr{c d x} |
| 22685 | as described above.) If there is any common integer or fractional | 22707 | as described above.) If there is any common integer or fractional |
| 22686 | factor in the numerator and denominator, it is cancelled out; | 22708 | factor in the numerator and denominator, it is cancelled out; |
| @@ -23434,7 +23456,7 @@ is allowed only within @code{IntegRules}; it means ``integrate this | |||
| 23434 | with respect to the same integration variable.'' If Calc is unable | 23456 | with respect to the same integration variable.'' If Calc is unable |
| 23435 | to integrate @code{u}, the integration that invoked @code{IntegRules} | 23457 | to integrate @code{u}, the integration that invoked @code{IntegRules} |
| 23436 | also fails. Thus integrating @samp{twice(f(x))} fails, returning the | 23458 | also fails. Thus integrating @samp{twice(f(x))} fails, returning the |
| 23437 | unevaluated integral @samp{integ(twice(f(x)), x)}. It is still legal | 23459 | unevaluated integral @samp{integ(twice(f(x)), x)}. It is still valid |
| 23438 | to call @code{integ} with two or more arguments, however; in this case, | 23460 | to call @code{integ} with two or more arguments, however; in this case, |
| 23439 | if @code{u} is not integrable, @code{twice} itself will still be | 23461 | if @code{u} is not integrable, @code{twice} itself will still be |
| 23440 | integrated: If the above rule is changed to @samp{... := twice(integ(u,x))}, | 23462 | integrated: If the above rule is changed to @samp{... := twice(integ(u,x))}, |
| @@ -25281,7 +25303,7 @@ As a special feature, if the limits are infinite (or omitted, as | |||
| 25281 | described above) but the formula includes vectors subscripted by | 25303 | described above) but the formula includes vectors subscripted by |
| 25282 | expressions that involve the iteration variable, Calc narrows | 25304 | expressions that involve the iteration variable, Calc narrows |
| 25283 | the limits to include only the range of integers which result in | 25305 | the limits to include only the range of integers which result in |
| 25284 | legal subscripts for the vector. For example, the sum | 25306 | valid subscripts for the vector. For example, the sum |
| 25285 | @samp{sum(k [a,b,c,d,e,f,g]_(2k),k)} evaluates to @samp{b + 2 d + 3 f}. | 25307 | @samp{sum(k [a,b,c,d,e,f,g]_(2k),k)} evaluates to @samp{b + 2 d + 3 f}. |
| 25286 | 25308 | ||
| 25287 | The limits of a sum do not need to be integers. For example, | 25309 | The limits of a sum do not need to be integers. For example, |
| @@ -25291,7 +25313,7 @@ Calc computes the number of iterations using the formula | |||
| 25291 | after simplification as if by @kbd{a s}, evaluate to an integer. | 25313 | after simplification as if by @kbd{a s}, evaluate to an integer. |
| 25292 | 25314 | ||
| 25293 | If the number of iterations according to the above formula does | 25315 | If the number of iterations according to the above formula does |
| 25294 | not come out to an integer, the sum is illegal and will be left | 25316 | not come out to an integer, the sum is invalid and will be left |
| 25295 | in symbolic form. However, closed forms are still supplied, and | 25317 | in symbolic form. However, closed forms are still supplied, and |
| 25296 | you are on your honor not to misuse the resulting formulas by | 25318 | you are on your honor not to misuse the resulting formulas by |
| 25297 | substituting mismatched bounds into them. For example, | 25319 | substituting mismatched bounds into them. For example, |
| @@ -28746,7 +28768,7 @@ command. | |||
| 28746 | @kindex g A | 28768 | @kindex g A |
| 28747 | @pindex calc-graph-add-3d | 28769 | @pindex calc-graph-add-3d |
| 28748 | The @kbd{g A} (@code{calc-graph-add-3d}) command adds a 3D curve | 28770 | The @kbd{g A} (@code{calc-graph-add-3d}) command adds a 3D curve |
| 28749 | to the graph. It is not legal to intermix 2D and 3D curves in a | 28771 | to the graph. It is not valid to intermix 2D and 3D curves in a |
| 28750 | single graph. This command takes three arguments, ``x'', ``y'', | 28772 | single graph. This command takes three arguments, ``x'', ``y'', |
| 28751 | and ``z'', from the stack. With a positive prefix @expr{n}, it | 28773 | and ``z'', from the stack. With a positive prefix @expr{n}, it |
| 28752 | takes @expr{n+2} arguments (common ``x'' and ``y'', plus @expr{n} | 28774 | takes @expr{n+2} arguments (common ``x'' and ``y'', plus @expr{n} |
| @@ -30451,8 +30473,8 @@ use @kbd{M-# u} to update the buffer by hand. | |||
| 30451 | @noindent | 30473 | @noindent |
| 30452 | The mode settings can be changed while Calc is in embedded mode, but | 30474 | The mode settings can be changed while Calc is in embedded mode, but |
| 30453 | will revert to their original values when embedded mode is ended | 30475 | will revert to their original values when embedded mode is ended |
| 30454 | (except for the modes changed while the mode-setting mode was | 30476 | (except for the modes saved when the mode-recording mode is |
| 30455 | @code{Save}). | 30477 | @code{Save}; see below). |
| 30456 | 30478 | ||
| 30457 | Embedded mode has a rather complicated mechanism for handling mode | 30479 | Embedded mode has a rather complicated mechanism for handling mode |
| 30458 | settings in Embedded formulas. It is possible to put annotations | 30480 | settings in Embedded formulas. It is possible to put annotations |
| @@ -30511,7 +30533,7 @@ of mode setting, the second is a name for the mode itself, and | |||
| 30511 | the third is the value in the form of a Lisp symbol, number, | 30533 | the third is the value in the form of a Lisp symbol, number, |
| 30512 | or list. Annotations with unrecognizable text in the first or | 30534 | or list. Annotations with unrecognizable text in the first or |
| 30513 | second parts are ignored. The third part is not checked to make | 30535 | second parts are ignored. The third part is not checked to make |
| 30514 | sure the value is of a legal type or range; if you write an | 30536 | sure the value is of a valid type or range; if you write an |
| 30515 | annotation by hand, be sure to give a proper value or results | 30537 | annotation by hand, be sure to give a proper value or results |
| 30516 | will be unpredictable. Mode-setting annotations are case-sensitive. | 30538 | will be unpredictable. Mode-setting annotations are case-sensitive. |
| 30517 | 30539 | ||
| @@ -30572,10 +30594,11 @@ rules of reading annotations the @samp{(sci 0)} applies to it, too. | |||
| 30572 | We would have to go down to the other formula and press @kbd{M-# u} | 30594 | We would have to go down to the other formula and press @kbd{M-# u} |
| 30573 | on it in order to get it to notice the new annotation. | 30595 | on it in order to get it to notice the new annotation. |
| 30574 | 30596 | ||
| 30575 | Two more mode-recording modes selectable by @kbd{m R} are @code{Save} | 30597 | Two more mode-recording modes selectable by @kbd{m R} are available |
| 30576 | (which works even outside of Embedded mode), in which mode settings | 30598 | which are also available outside of Embedded mode. |
| 30577 | are recorded permanently in your Calc init file (the file given by the | 30599 | (@pxref{General Mode Commands}.) They are @code{Save}, in which mode |
| 30578 | variable @code{calc-settings-file}, typically @file{~/.calc.el}) | 30600 | settings are recorded permanently in your Calc init file (the file given |
| 30601 | by the variable @code{calc-settings-file}, typically @file{~/.calc.el}) | ||
| 30579 | rather than by annotating the current document, and no-recording | 30602 | rather than by annotating the current document, and no-recording |
| 30580 | mode (where there is no symbol like @code{Save} or @code{Local} in | 30603 | mode (where there is no symbol like @code{Save} or @code{Local} in |
| 30581 | the mode line), in which mode-changing commands do not leave any | 30604 | the mode line), in which mode-changing commands do not leave any |
| @@ -31799,7 +31822,7 @@ to pop @var{num} values off the stack, resimplify them by calling | |||
| 31799 | @code{calc-normalize}, and hand them to your function according to the | 31822 | @code{calc-normalize}, and hand them to your function according to the |
| 31800 | function's argument list. Your function may include @code{&optional} and | 31823 | function's argument list. Your function may include @code{&optional} and |
| 31801 | @code{&rest} parameters, so long as calling the function with @var{num} | 31824 | @code{&rest} parameters, so long as calling the function with @var{num} |
| 31802 | parameters is legal. | 31825 | parameters is valid. |
| 31803 | 31826 | ||
| 31804 | Your function must return either a number or a formula in a form | 31827 | Your function must return either a number or a formula in a form |
| 31805 | acceptable to Calc, or a list of such numbers or formulas. These value(s) | 31828 | acceptable to Calc, or a list of such numbers or formulas. These value(s) |
| @@ -32829,7 +32852,7 @@ this function returns the selected portions rather than the entire | |||
| 32829 | stack elements. It can be given a third ``selection-mode'' argument | 32852 | stack elements. It can be given a third ``selection-mode'' argument |
| 32830 | which selects other behaviors. If it is the symbol @code{t}, then | 32853 | which selects other behaviors. If it is the symbol @code{t}, then |
| 32831 | a selection in any of the requested stack elements produces an | 32854 | a selection in any of the requested stack elements produces an |
| 32832 | ``illegal operation on selections'' error. If it is the symbol @code{full}, | 32855 | ``invalid operation on selections'' error. If it is the symbol @code{full}, |
| 32833 | the whole stack entry is always returned regardless of selections. | 32856 | the whole stack entry is always returned regardless of selections. |
| 32834 | If it is the symbol @code{sel}, the selected portion is always returned, | 32857 | If it is the symbol @code{sel}, the selected portion is always returned, |
| 32835 | or @code{nil} if there is no selection. (This mode ignores the @kbd{j e} | 32858 | or @code{nil} if there is no selection. (This mode ignores the @kbd{j e} |
| @@ -34610,48 +34633,6 @@ plots. | |||
| 34610 | 34633 | ||
| 34611 | @end example | 34634 | @end example |
| 34612 | @end ifinfo | 34635 | @end ifinfo |
| 34613 | @appendixsec Printed Documentation | ||
| 34614 | |||
| 34615 | @noindent | ||
| 34616 | Because the Calc manual is so large, you should only make a printed | ||
| 34617 | copy if you really need it. To print the manual, you will need the | ||
| 34618 | @TeX{} typesetting program (this is a free program by Donald Knuth | ||
| 34619 | at Stanford University) as well as the @file{texindex} program and | ||
| 34620 | @file{texinfo.tex} file, both of which can be obtained from the FSF | ||
| 34621 | as part of the @code{texinfo} package. | ||
| 34622 | |||
| 34623 | To print the Calc manual in one huge 470 page tome, you will need the | ||
| 34624 | source code to this manual, @file{calc.texi}, available as part of the | ||
| 34625 | Emacs source. Once you have this file, type @kbd{texi2dvi calc.texi}. | ||
| 34626 | Alternatively, change to the @file{man} subdirectory of the Emacs | ||
| 34627 | source distribution, and type @kbd{make calc.dvi}. (Don't worry if you | ||
| 34628 | get some ``overfull box'' warnings while @TeX{} runs.) | ||
| 34629 | |||
| 34630 | The result will be a device-independent output file called | ||
| 34631 | @file{calc.dvi}, which you must print in whatever way is right | ||
| 34632 | for your system. On many systems, the command is | ||
| 34633 | |||
| 34634 | @example | ||
| 34635 | lpr -d calc.dvi | ||
| 34636 | @end example | ||
| 34637 | |||
| 34638 | @noindent | ||
| 34639 | or | ||
| 34640 | |||
| 34641 | @example | ||
| 34642 | dvips calc.dvi | ||
| 34643 | @end example | ||
| 34644 | |||
| 34645 | @c the bumpoddpages macro was deleted | ||
| 34646 | @ignore | ||
| 34647 | @cindex Marginal notes, adjusting | ||
| 34648 | Marginal notes for each function and key sequence normally alternate | ||
| 34649 | between the left and right sides of the page, which is correct if the | ||
| 34650 | manual is going to be bound as double-sided pages. Near the top of | ||
| 34651 | the file @file{calc.texi} you will find alternate definitions of | ||
| 34652 | the @code{\bumpoddpages} macro that put the marginal notes always on | ||
| 34653 | the same side, best if you plan to be binding single-sided pages. | ||
| 34654 | @end ignore | ||
| 34655 | 34636 | ||
| 34656 | @appendixsec Settings File | 34637 | @appendixsec Settings File |
| 34657 | 34638 | ||
| @@ -34703,15 +34684,6 @@ belanger@@truman.edu | |||
| 34703 | @end example | 34684 | @end example |
| 34704 | 34685 | ||
| 34705 | @noindent | 34686 | @noindent |
| 34706 | (In the following text, ``I'' refers to the original Calc author, Dave | ||
| 34707 | Gillespie). | ||
| 34708 | |||
| 34709 | While I cannot guarantee that I will have time to work on your bug, | ||
| 34710 | I do try to fix bugs quickly whenever I can. | ||
| 34711 | |||
| 34712 | The latest version of Calc is available from Savannah, in the Emacs | ||
| 34713 | CVS tree. See @uref{http://savannah.gnu.org/projects/emacs}. | ||
| 34714 | |||
| 34715 | There is an automatic command @kbd{M-x report-calc-bug} which helps | 34687 | There is an automatic command @kbd{M-x report-calc-bug} which helps |
| 34716 | you to report bugs. This command prompts you for a brief subject | 34688 | you to report bugs. This command prompts you for a brief subject |
| 34717 | line, then leaves you in a mail editing buffer. Type @kbd{C-c C-c} to | 34689 | line, then leaves you in a mail editing buffer. Type @kbd{C-c C-c} to |
| @@ -34719,18 +34691,18 @@ send your mail. Make sure your subject line indicates that you are | |||
| 34719 | reporting a Calc bug; this command sends mail to the maintainer's | 34691 | reporting a Calc bug; this command sends mail to the maintainer's |
| 34720 | regular mailbox. | 34692 | regular mailbox. |
| 34721 | 34693 | ||
| 34722 | If you have suggestions for additional features for Calc, I would | 34694 | If you have suggestions for additional features for Calc, please send |
| 34723 | love to hear them. Some have dared to suggest that Calc is already | 34695 | them. Some have dared to suggest that Calc is already top-heavy with |
| 34724 | top-heavy with features; I really don't see what they're talking | 34696 | features; this obviously cannot be the case, so if you have ideas, send |
| 34725 | about, so, if you have ideas, send them right in. (I may even have | 34697 | them right in. |
| 34726 | time to implement them!) | ||
| 34727 | 34698 | ||
| 34728 | At the front of the source file, @file{calc.el}, is a list of ideas for | 34699 | At the front of the source file, @file{calc.el}, is a list of ideas for |
| 34729 | future work which I have not had time to do. If any enthusiastic souls | 34700 | future work. If any enthusiastic souls wish to take it upon themselves |
| 34730 | wish to take it upon themselves to work on these, I would be delighted. | 34701 | to work on these, please send a message (using @kbd{M-x report-calc-bug}) |
| 34731 | Please let me know if you plan to contribute to Calc so I can coordinate | 34702 | so any efforts can be coordinated. |
| 34732 | your efforts with mine and those of others. I will do my best to help | 34703 | |
| 34733 | you in whatever way I can. | 34704 | The latest version of Calc is available from Savannah, in the Emacs |
| 34705 | CVS tree. See @uref{http://savannah.gnu.org/projects/emacs}. | ||
| 34734 | 34706 | ||
| 34735 | @c [summary] | 34707 | @c [summary] |
| 34736 | @node Summary, Key Index, Reporting Bugs, Top | 34708 | @node Summary, Key Index, Reporting Bugs, Top |
diff --git a/man/calendar.texi b/man/calendar.texi index fa37ab88d2c..999c29dae06 100644 --- a/man/calendar.texi +++ b/man/calendar.texi | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | @c This is part of the Emacs manual. | 1 | @c This is part of the Emacs manual. |
| 2 | @c Copyright (C) 1985,86,87,93,94,95,1997,2000,2001 Free Software Foundation, Inc. | 2 | @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, |
| 3 | @c 2005 Free Software Foundation, Inc. | ||
| 3 | @c See file emacs.texi for copying conditions. | 4 | @c See file emacs.texi for copying conditions. |
| 4 | @node Calendar/Diary, Gnus, Dired, Top | 5 | @node Calendar/Diary, Gnus, Dired, Top |
| 5 | @chapter The Calendar and the Diary | 6 | @chapter The Calendar and the Diary |
| @@ -19,11 +20,13 @@ calendar. The calendar uses its own buffer, whose major mode is | |||
| 19 | Calendar mode. | 20 | Calendar mode. |
| 20 | 21 | ||
| 21 | @kbd{Mouse-2} in the calendar brings up a menu of operations on a | 22 | @kbd{Mouse-2} in the calendar brings up a menu of operations on a |
| 22 | particular date; @kbd{C-Mouse-3} brings up a menu of commonly used | 23 | particular date; @kbd{Mouse-3} brings up a menu of commonly used |
| 23 | calendar features that are independent of any particular date. To exit | 24 | calendar features that are independent of any particular date. To exit |
| 24 | the calendar, type @kbd{q}. @xref{Calendar, Customizing the Calendar | 25 | the calendar, type @kbd{q}. |
| 25 | and Diary,, elisp, The Emacs Lisp Reference Manual}, for customization | 26 | |
| 26 | information about the calendar and diary. | 27 | The basic features of the Calendar/Diary are described here. |
| 28 | @inforef{Advanced Calendar/Diary Usage,, emacs-xtra}, for information | ||
| 29 | about more specialized features. | ||
| 27 | 30 | ||
| 28 | @menu | 31 | @menu |
| 29 | * Calendar Motion:: Moving through the calendar; selecting a date. | 32 | * Calendar Motion:: Moving through the calendar; selecting a date. |
| @@ -423,24 +426,31 @@ List holidays in another window for a specified range of years. | |||
| 423 | 426 | ||
| 424 | @kindex h @r{(Calendar mode)} | 427 | @kindex h @r{(Calendar mode)} |
| 425 | @findex calendar-cursor-holidays | 428 | @findex calendar-cursor-holidays |
| 429 | @vindex view-calendar-holidays-initially | ||
| 426 | To see if any holidays fall on a given date, position point on that | 430 | To see if any holidays fall on a given date, position point on that |
| 427 | date in the calendar window and use the @kbd{h} command. Alternatively, | 431 | date in the calendar window and use the @kbd{h} command. Alternatively, |
| 428 | click on that date with @kbd{Mouse-2} and then choose @kbd{Holidays} | 432 | click on that date with @kbd{Mouse-2} and then choose @kbd{Holidays} |
| 429 | from the menu that appears. Either way, this displays the holidays for | 433 | from the menu that appears. Either way, this displays the holidays for |
| 430 | that date, in the echo area if they fit there, otherwise in a separate | 434 | that date, in the echo area if they fit there, otherwise in a separate |
| 431 | window. | 435 | window. If the variable @code{view-calendar-holidays-initially} is |
| 436 | non-@code{nil}, creating the calendar displays holidays in this way. | ||
| 432 | 437 | ||
| 433 | @kindex x @r{(Calendar mode)} | 438 | @kindex x @r{(Calendar mode)} |
| 434 | @findex mark-calendar-holidays | 439 | @findex mark-calendar-holidays |
| 435 | @kindex u @r{(Calendar mode)} | 440 | @kindex u @r{(Calendar mode)} |
| 436 | @findex calendar-unmark | 441 | @findex calendar-unmark |
| 442 | @vindex mark-holidays-in-calendar | ||
| 437 | To view the distribution of holidays for all the dates shown in the | 443 | To view the distribution of holidays for all the dates shown in the |
| 438 | calendar, use the @kbd{x} command. This displays the dates that are | 444 | calendar, use the @kbd{x} command. This displays the dates that are |
| 439 | holidays in a different face (or places a @samp{*} after these dates, if | 445 | holidays in a different face (or places a @samp{*} after these dates, if |
| 440 | display with multiple faces is not available). The command applies both | 446 | display with multiple faces is not available). @inforef{Calendar |
| 441 | to the currently visible months and to other months that subsequently | 447 | Customizing, calendar-holiday-marker, emacs-xtra}. The command applies |
| 442 | become visible by scrolling. To turn marking off and erase the current | 448 | both to the currently visible months and to other months that |
| 443 | marks, type @kbd{u}, which also erases any diary marks (@pxref{Diary}). | 449 | subsequently become visible by scrolling. To turn marking off and erase |
| 450 | the current marks, type @kbd{u}, which also erases any diary marks | ||
| 451 | (@pxref{Diary}). If the variable @code{mark-holidays-in-calendar} is | ||
| 452 | non-@code{nil}, creating or updating the calendar marks holidays | ||
| 453 | automatically. | ||
| 444 | 454 | ||
| 445 | @kindex a @r{(Calendar mode)} | 455 | @kindex a @r{(Calendar mode)} |
| 446 | @findex list-calendar-holidays | 456 | @findex list-calendar-holidays |
| @@ -924,9 +934,9 @@ their dates. Then Emacs can automatically pick out and display the | |||
| 924 | events for today, for the immediate future, or for any specified | 934 | events for today, for the immediate future, or for any specified |
| 925 | date. | 935 | date. |
| 926 | 936 | ||
| 927 | By default, Emacs uses @file{~/diary} as the diary file. This is the | 937 | The name of the diary file is specified by the variable |
| 928 | same file that the @code{calendar} utility uses. A sample | 938 | @code{diary-file}; @file{~/diary} is the default. A sample diary file |
| 929 | @file{~/diary} file is: | 939 | is: |
| 930 | 940 | ||
| 931 | @example | 941 | @example |
| 932 | 12/22/1988 Twentieth wedding anniversary!! | 942 | 12/22/1988 Twentieth wedding anniversary!! |
| @@ -951,18 +961,18 @@ provides a number of commands to let you view, add, and change diary | |||
| 951 | entries. | 961 | entries. |
| 952 | 962 | ||
| 953 | @menu | 963 | @menu |
| 954 | * Diary Commands:: Viewing diary entries and associated calendar dates. | 964 | * Displaying the Diary:: Viewing diary entries and associated calendar dates. |
| 955 | * Format of Diary File:: Entering events in your diary. | 965 | * Format of Diary File:: Entering events in your diary. |
| 956 | * Date Formats:: Various ways you can specify dates. | 966 | * Date Formats:: Various ways you can specify dates. |
| 957 | * Adding to Diary:: Commands to create diary entries. | 967 | * Adding to Diary:: Commands to create diary entries. |
| 958 | * Special Diary Entries:: Anniversaries, blocks of dates, cyclic entries, etc. | 968 | * Special Diary Entries:: Anniversaries, blocks of dates, cyclic entries, etc. |
| 959 | @end menu | 969 | @end menu |
| 960 | 970 | ||
| 961 | @node Diary Commands | 971 | @node Displaying the Diary |
| 962 | @subsection Commands Displaying Diary Entries | 972 | @subsection Displaying the Diary |
| 963 | 973 | ||
| 964 | Once you have created a @file{~/diary} file, you can use the calendar | 974 | Once you have created a diary file, you can use the calendar to view |
| 965 | to view it. You can also view today's events outside of Calendar mode. | 975 | it. You can also view today's events outside of Calendar mode. |
| 966 | 976 | ||
| 967 | @table @kbd | 977 | @table @kbd |
| 968 | @item d | 978 | @item d |
| @@ -987,6 +997,7 @@ Mail yourself email reminders about upcoming diary entries. | |||
| 987 | 997 | ||
| 988 | @kindex d @r{(Calendar mode)} | 998 | @kindex d @r{(Calendar mode)} |
| 989 | @findex view-diary-entries | 999 | @findex view-diary-entries |
| 1000 | @vindex view-diary-entries-initially | ||
| 990 | Displaying the diary entries with @kbd{d} shows in a separate window | 1001 | Displaying the diary entries with @kbd{d} shows in a separate window |
| 991 | the diary entries for the selected date in the calendar. The mode line | 1002 | the diary entries for the selected date in the calendar. The mode line |
| 992 | of the new window shows the date of the diary entries and any holidays | 1003 | of the new window shows the date of the diary entries and any holidays |
| @@ -997,18 +1008,25 @@ following day. | |||
| 997 | 1008 | ||
| 998 | Another way to display the diary entries for a date is to click | 1009 | Another way to display the diary entries for a date is to click |
| 999 | @kbd{Mouse-2} on the date, and then choose @kbd{Diary entries} from | 1010 | @kbd{Mouse-2} on the date, and then choose @kbd{Diary entries} from |
| 1000 | the menu that appears. | 1011 | the menu that appears. If the variable |
| 1012 | @code{view-diary-entries-initially} is non-@code{nil}, creating the | ||
| 1013 | calendar also lists diary entries for the current date (provided the | ||
| 1014 | current date is visible). | ||
| 1001 | 1015 | ||
| 1002 | @kindex m @r{(Calendar mode)} | 1016 | @kindex m @r{(Calendar mode)} |
| 1003 | @findex mark-diary-entries | 1017 | @findex mark-diary-entries |
| 1018 | @vindex mark-diary-entries-in-calendar | ||
| 1004 | To get a broader view of which days are mentioned in the diary, use | 1019 | To get a broader view of which days are mentioned in the diary, use |
| 1005 | the @kbd{m} command. This displays the dates that have diary entries | 1020 | the @kbd{m} command. This displays the dates that have diary entries in |
| 1006 | in a different face (or places a @samp{+} after these dates, if | 1021 | a different face (or places a @samp{+} after these dates, if display |
| 1007 | display with multiple faces is not available). The command applies both | 1022 | with multiple faces is not available). @inforef{Calendar Customizing, |
| 1008 | to the currently visible months and to other months that subsequently | 1023 | diary-entry-marker, emacs-xtra}. The command applies both to the |
| 1009 | become visible by scrolling. To turn marking off and erase the current | 1024 | currently visible months and to other months that subsequently become |
| 1010 | marks, type @kbd{u}, which also turns off holiday marks | 1025 | visible by scrolling. To turn marking off and erase the current marks, |
| 1011 | (@pxref{Holidays}). | 1026 | type @kbd{u}, which also turns off holiday marks (@pxref{Holidays}). |
| 1027 | If the variable @code{mark-diary-entries-in-calendar} is | ||
| 1028 | non-@code{nil}, creating or updating the calendar marks diary dates | ||
| 1029 | automatically. | ||
| 1012 | 1030 | ||
| 1013 | @kindex s @r{(Calendar mode)} | 1031 | @kindex s @r{(Calendar mode)} |
| 1014 | @findex show-all-diary-entries | 1032 | @findex show-all-diary-entries |
| @@ -1016,21 +1034,18 @@ marks, type @kbd{u}, which also turns off holiday marks | |||
| 1016 | the @kbd{s} command. | 1034 | the @kbd{s} command. |
| 1017 | 1035 | ||
| 1018 | Display of selected diary entries uses the selective display feature | 1036 | Display of selected diary entries uses the selective display feature |
| 1019 | to hide entries that don't apply. | 1037 | to hide entries that don't apply. The diary buffer as you see it is |
| 1020 | 1038 | an illusion, so simply printing the buffer does not print what you see | |
| 1021 | The diary buffer as you see it is an illusion, so simply printing the | 1039 | on your screen. There is a special command to print hard copy of the |
| 1022 | buffer does not print what you see on your screen. There is a special | 1040 | diary buffer @emph{as it appears}; this command is @kbd{M-x |
| 1023 | command to print hard copy of the diary buffer @emph{as it appears}; | 1041 | print-diary-entries}. It sends the data directly to the printer. You |
| 1024 | this command is @kbd{M-x print-diary-entries}. It sends the data | 1042 | can customize it like @code{lpr-region} (@pxref{Hardcopy}). |
| 1025 | directly to the printer. You can customize it like @code{lpr-region} | ||
| 1026 | (@pxref{Hardcopy}). | ||
| 1027 | 1043 | ||
| 1028 | @findex diary | 1044 | @findex diary |
| 1029 | The command @kbd{M-x diary} displays the diary entries for the current | 1045 | The command @kbd{M-x diary} displays the diary entries for the current |
| 1030 | date, independently of the calendar display, and optionally for the next | 1046 | date, independently of the calendar display, and optionally for the next |
| 1031 | few days as well; the variable @code{number-of-diary-entries} specifies | 1047 | few days as well; the variable @code{number-of-diary-entries} specifies |
| 1032 | how many days to include. @xref{Calendar, Customizing the Calendar | 1048 | how many days to include. @inforef{Diary Customizing,, emacs-xtra}. |
| 1033 | and Diary,, elisp, The Emacs Lisp Reference Manual}. | ||
| 1034 | 1049 | ||
| 1035 | If you put @code{(diary)} in your @file{.emacs} file, this | 1050 | If you put @code{(diary)} in your @file{.emacs} file, this |
| 1036 | automatically displays a window with the day's diary entries, when you | 1051 | automatically displays a window with the day's diary entries, when you |
| @@ -1335,8 +1350,7 @@ entry applies to all months of the year.@refill | |||
| 1335 | specifying the name of a face or a single-character string to use when | 1350 | specifying the name of a face or a single-character string to use when |
| 1336 | marking the entry in the calendar. Most generally, sexp diary entries | 1351 | marking the entry in the calendar. Most generally, sexp diary entries |
| 1337 | can perform arbitrary computations to determine when they apply. | 1352 | can perform arbitrary computations to determine when they apply. |
| 1338 | @xref{Sexp Diary Entries,, Sexp Diary Entries, elisp, The Emacs Lisp | 1353 | @inforef{Sexp Diary Entries,, emacs-xtra}. |
| 1339 | Reference Manual}. | ||
| 1340 | 1354 | ||
| 1341 | @node Appointments | 1355 | @node Appointments |
| 1342 | @section Appointments | 1356 | @section Appointments |
| @@ -1344,16 +1358,30 @@ Reference Manual}. | |||
| 1344 | 1358 | ||
| 1345 | @vindex appt-display-format | 1359 | @vindex appt-display-format |
| 1346 | @vindex appt-audible | 1360 | @vindex appt-audible |
| 1361 | @vindex appt-display-mode-line | ||
| 1347 | If you have a diary entry for an appointment, and that diary entry | 1362 | If you have a diary entry for an appointment, and that diary entry |
| 1348 | begins with a recognizable time of day, Emacs can warn you several | 1363 | begins with a recognizable time of day, Emacs can warn you several |
| 1349 | minutes beforehand that that appointment is pending. Emacs alerts you | 1364 | minutes beforehand that that appointment is pending. Emacs alerts you |
| 1350 | to the appointment by displaying a message in your chosen format, as | 1365 | to the appointment by displaying a message in your chosen format, as |
| 1351 | specified by the variable @code{appt-display-format}. If the value | 1366 | specified by the variable @code{appt-display-format}. If the value of |
| 1352 | of @code{appt-audible} is non-@code{nil}, an audible reminder is also given. | 1367 | @code{appt-audible} is non-@code{nil}, an audible reminder is also |
| 1368 | given. In addition, if @code{appt-display-mode-line} is non-@code{nil}, | ||
| 1369 | Emacs displays the number of minutes to the appointment on the mode | ||
| 1370 | line. | ||
| 1371 | |||
| 1372 | @vindex appt-display-duration | ||
| 1373 | @vindex appt-disp-window-function | ||
| 1374 | @vindex appt-delete-window-function | ||
| 1375 | If @code{appt-display-format} has the value @code{window}, then the | ||
| 1376 | variable @code{appt-display-duration} controls how long the reminder | ||
| 1377 | window is visible for; and the variables | ||
| 1378 | @code{appt-disp-window-function} and @code{appt-delete-window-function} | ||
| 1379 | give the names of functions used to create and destroy the window, | ||
| 1380 | respectively. | ||
| 1353 | 1381 | ||
| 1354 | @findex appt-activate | 1382 | @findex appt-activate |
| 1355 | To enable appointment notification, call the function | 1383 | To enable appointment notification, call the function |
| 1356 | @code{appt-activate} with a positive argument. This sets up an | 1384 | @code{appt-activate} with a positive argument. This sets up an |
| 1357 | appointment list for today from the diary file, giving all diary entries | 1385 | appointment list for today from the diary file, giving all diary entries |
| 1358 | found with recognizable times of day, and reminds you just before each | 1386 | found with recognizable times of day, and reminds you just before each |
| 1359 | of them. Calling @code{appt-activate} with a negative argument disables | 1387 | of them. Calling @code{appt-activate} with a negative argument disables |
| @@ -1370,7 +1398,7 @@ Monday | |||
| 1370 | @vindex appt-message-warning-time | 1398 | @vindex appt-message-warning-time |
| 1371 | @noindent | 1399 | @noindent |
| 1372 | Then on Mondays, you will be reminded at around 9:20am about your coffee | 1400 | Then on Mondays, you will be reminded at around 9:20am about your coffee |
| 1373 | break and at around 11:50am about lunch. How many minutes in advance you | 1401 | break and at around 11:50am about lunch. How many minutes in advance you |
| 1374 | are first warned is determined by the value of | 1402 | are first warned is determined by the value of |
| 1375 | @code{appt-message-warning-time}. | 1403 | @code{appt-message-warning-time}. |
| 1376 | 1404 | ||
| @@ -1441,8 +1469,8 @@ and adds the results to an Emacs diary file. For example: | |||
| 1441 | 1469 | ||
| 1442 | @noindent | 1470 | @noindent |
| 1443 | You can use an @code{#include} directive to add the import file contents | 1471 | You can use an @code{#include} directive to add the import file contents |
| 1444 | to the main diary file, if these are distinct. @xref{Fancy Diary | 1472 | to the main diary file, if these are distinct. @inforef{Fancy Diary |
| 1445 | Display,,, elisp, The Emacs Lisp Reference Manual}. | 1473 | Display,, emacs-xtra}. |
| 1446 | 1474 | ||
| 1447 | @findex icalendar-export-file, icalendar-export-region | 1475 | @findex icalendar-export-file, icalendar-export-region |
| 1448 | Use @code{icalendar-export-file} to interactively export an entire | 1476 | Use @code{icalendar-export-file} to interactively export an entire |
diff --git a/man/cl.texi b/man/cl.texi index 455465a27a3..6c52a16b733 100644 --- a/man/cl.texi +++ b/man/cl.texi | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | @copying | 5 | @copying |
| 6 | This file documents the GNU Emacs Common Lisp emulation package. | 6 | This file documents the GNU Emacs Common Lisp emulation package. |
| 7 | 7 | ||
| 8 | Copyright (C) 1993, 2002 Free Software Foundation, Inc. | 8 | Copyright (C) 1993, 2002, 2005 Free Software Foundation, Inc. |
| 9 | 9 | ||
| 10 | @quotation | 10 | @quotation |
| 11 | Permission is granted to copy, distribute and/or modify this document | 11 | Permission is granted to copy, distribute and/or modify this document |
| @@ -991,7 +991,7 @@ just as with @code{setq}. @code{setf} returns the value of the last | |||
| 991 | @var{form}. | 991 | @var{form}. |
| 992 | 992 | ||
| 993 | The following Lisp forms will work as generalized variables, and | 993 | The following Lisp forms will work as generalized variables, and |
| 994 | so may legally appear in the @var{place} argument of @code{setf}: | 994 | so may appear in the @var{place} argument of @code{setf}: |
| 995 | 995 | ||
| 996 | @itemize @bullet | 996 | @itemize @bullet |
| 997 | @item | 997 | @item |
| @@ -1073,7 +1073,7 @@ x (point-max))} in this case). | |||
| 1073 | 1073 | ||
| 1074 | @item | 1074 | @item |
| 1075 | A call of the form @code{(substring @var{subplace} @var{n} [@var{m}])}, | 1075 | A call of the form @code{(substring @var{subplace} @var{n} [@var{m}])}, |
| 1076 | where @var{subplace} is itself a legal generalized variable whose | 1076 | where @var{subplace} is itself a valid generalized variable whose |
| 1077 | current value is a string, and where the value stored is also a | 1077 | current value is a string, and where the value stored is also a |
| 1078 | string. The new string is spliced into the specified part of the | 1078 | string. The new string is spliced into the specified part of the |
| 1079 | destination string. For example: | 1079 | destination string. For example: |
| @@ -2379,7 +2379,7 @@ that they are exclusive rather than inclusive limits: | |||
| 2379 | 2379 | ||
| 2380 | The @code{by} value is always positive, even for downward-counting | 2380 | The @code{by} value is always positive, even for downward-counting |
| 2381 | loops. Some sort of @code{from} value is required for downward | 2381 | loops. Some sort of @code{from} value is required for downward |
| 2382 | loops; @samp{for x downto 5} is not a legal loop clause all by | 2382 | loops; @samp{for x downto 5} is not a valid loop clause all by |
| 2383 | itself. | 2383 | itself. |
| 2384 | 2384 | ||
| 2385 | @item for @var{var} in @var{list} by @var{function} | 2385 | @item for @var{var} in @var{list} by @var{function} |
| @@ -2481,7 +2481,7 @@ are also recognized but are equivalent to @code{symbols} in Emacs Lisp. | |||
| 2481 | Due to a minor implementation restriction, it will not work to have | 2481 | Due to a minor implementation restriction, it will not work to have |
| 2482 | more than one @code{for} clause iterating over symbols, hash tables, | 2482 | more than one @code{for} clause iterating over symbols, hash tables, |
| 2483 | keymaps, overlays, or intervals in a given @code{loop}. Fortunately, | 2483 | keymaps, overlays, or intervals in a given @code{loop}. Fortunately, |
| 2484 | it would rarely if ever be useful to do so. It @emph{is} legal to mix | 2484 | it would rarely if ever be useful to do so. It @emph{is} valid to mix |
| 2485 | one of these types of clauses with other clauses like @code{for ... to} | 2485 | one of these types of clauses with other clauses like @code{for ... to} |
| 2486 | or @code{while}. | 2486 | or @code{while}. |
| 2487 | 2487 | ||
| @@ -2727,7 +2727,7 @@ not automatically imply a return value. The loop must use some | |||
| 2727 | explicit mechanism, such as @code{finally return}, to return | 2727 | explicit mechanism, such as @code{finally return}, to return |
| 2728 | the accumulated result. | 2728 | the accumulated result. |
| 2729 | 2729 | ||
| 2730 | It is legal for several accumulation clauses of the same type to | 2730 | It is valid for several accumulation clauses of the same type to |
| 2731 | accumulate into the same place. From Steele: | 2731 | accumulate into the same place. From Steele: |
| 2732 | 2732 | ||
| 2733 | @example | 2733 | @example |
| @@ -3248,8 +3248,8 @@ In particular, | |||
| 3248 | (get sym prop) @equiv{} (getf (symbol-plist sym) prop) | 3248 | (get sym prop) @equiv{} (getf (symbol-plist sym) prop) |
| 3249 | @end example | 3249 | @end example |
| 3250 | 3250 | ||
| 3251 | It is legal to use @code{getf} as a @code{setf} place, in which case | 3251 | It is valid to use @code{getf} as a @code{setf} place, in which case |
| 3252 | its @var{place} argument must itself be a legal @code{setf} place. | 3252 | its @var{place} argument must itself be a valid @code{setf} place. |
| 3253 | The @var{default} argument, if any, is ignored in this context. | 3253 | The @var{default} argument, if any, is ignored in this context. |
| 3254 | The effect is to change (via @code{setcar}) the value cell in the | 3254 | The effect is to change (via @code{setcar}) the value cell in the |
| 3255 | list that corresponds to @var{property}, or to cons a new property-value | 3255 | list that corresponds to @var{property}, or to cons a new property-value |
| @@ -3535,7 +3535,7 @@ be an integer in which case the new object is seeded from that | |||
| 3535 | integer; each different integer seed will result in a completely | 3535 | integer; each different integer seed will result in a completely |
| 3536 | different sequence of random numbers. | 3536 | different sequence of random numbers. |
| 3537 | 3537 | ||
| 3538 | It is legal to print a @code{random-state} object to a buffer or | 3538 | It is valid to print a @code{random-state} object to a buffer or |
| 3539 | file and later read it back with @code{read}. If a program wishes | 3539 | file and later read it back with @code{read}. If a program wishes |
| 3540 | to use a sequence of pseudo-random numbers which can be reproduced | 3540 | to use a sequence of pseudo-random numbers which can be reproduced |
| 3541 | later for debugging, it can call @code{(make-random-state t)} to | 3541 | later for debugging, it can call @code{(make-random-state t)} to |
| @@ -4575,7 +4575,7 @@ initialized from the corresponding argument. Slots whose names | |||
| 4575 | do not appear in the argument list are initialized based on the | 4575 | do not appear in the argument list are initialized based on the |
| 4576 | @var{default-value} in their slot descriptor. Also, @code{&optional} | 4576 | @var{default-value} in their slot descriptor. Also, @code{&optional} |
| 4577 | and @code{&key} arguments which don't specify defaults take their | 4577 | and @code{&key} arguments which don't specify defaults take their |
| 4578 | defaults from the slot descriptor. It is legal to include arguments | 4578 | defaults from the slot descriptor. It is valid to include arguments |
| 4579 | which don't correspond to slot names; these are useful if they are | 4579 | which don't correspond to slot names; these are useful if they are |
| 4580 | referred to in the defaults for optional, keyword, or @code{&aux} | 4580 | referred to in the defaults for optional, keyword, or @code{&aux} |
| 4581 | arguments which @emph{do} correspond to slots. | 4581 | arguments which @emph{do} correspond to slots. |
diff --git a/man/commands.texi b/man/commands.texi index fe70983286f..e0208473419 100644 --- a/man/commands.texi +++ b/man/commands.texi | |||
| @@ -169,8 +169,8 @@ key sequences, not one.@refill | |||
| 169 | 169 | ||
| 170 | All told, the prefix keys in Emacs are @kbd{C-c}, @kbd{C-h}, | 170 | All told, the prefix keys in Emacs are @kbd{C-c}, @kbd{C-h}, |
| 171 | @kbd{C-x}, @kbd{C-x @key{RET}}, @kbd{C-x @@}, @kbd{C-x a}, @kbd{C-x | 171 | @kbd{C-x}, @kbd{C-x @key{RET}}, @kbd{C-x @@}, @kbd{C-x a}, @kbd{C-x |
| 172 | n}, @w{@kbd{C-x r}}, @kbd{C-x v}, @kbd{C-x 4}, @kbd{C-x 5}, @kbd{C-x | 172 | n}, @w{@kbd{C-x r}}, @kbd{C-x v}, @kbd{C-x 4}, @kbd{C-x 5}, @kbd{C-x 6}, |
| 173 | 6}, @key{ESC}, and @kbd{M-g}. (@key{F1} and @key{F2} are aliases for | 173 | @key{ESC}, @kbd{M-o} and @kbd{M-g}. (@key{F1} and @key{F2} are aliases for |
| 174 | @kbd{C-h} and @kbd{C-x 6}.) But this list is not cast in concrete; it | 174 | @kbd{C-h} and @kbd{C-x 6}.) But this list is not cast in concrete; it |
| 175 | is just a matter of Emacs's standard key bindings. If you customize | 175 | is just a matter of Emacs's standard key bindings. If you customize |
| 176 | Emacs, you can make new prefix keys, or eliminate these. @xref{Key | 176 | Emacs, you can make new prefix keys, or eliminate these. @xref{Key |
diff --git a/man/custom.texi b/man/custom.texi index 6c5c26b3451..30bac3bccf2 100644 --- a/man/custom.texi +++ b/man/custom.texi | |||
| @@ -1636,6 +1636,27 @@ word: | |||
| 1636 | (global-set-key [H-M-right] 'forward-word) | 1636 | (global-set-key [H-M-right] 'forward-word) |
| 1637 | @end example | 1637 | @end example |
| 1638 | 1638 | ||
| 1639 | @cindex keypad | ||
| 1640 | Many keyboards have a ``numeric keypad'' on the right hand side. | ||
| 1641 | The numeric keys in the keypad double up as cursor motion keys, | ||
| 1642 | toggled by a key labelled @samp{Num Lock}. By default, Emacs | ||
| 1643 | translates these keys to the corresponding keys in the main keyboard | ||
| 1644 | (@pxref{Keyboard Translations}). For example, when @samp{Num Lock} is | ||
| 1645 | on, the key labelled @samp{8} on the numeric keypad produces | ||
| 1646 | @code{kp-8}, which is translated to @kbd{8}; when @samp{Num Lock} is | ||
| 1647 | off, the same key produces @code{kp-up}, which is translated to | ||
| 1648 | @key{UP}. If you rebind a key such as @kbd{8} or @key{UP}, it affects | ||
| 1649 | the equivalent keypad key too. However, if you rebind a @samp{kp-} | ||
| 1650 | key directly, that won't affect its non-keypad equivalent. | ||
| 1651 | |||
| 1652 | Emacs provides a convenient method for binding the numeric keypad | ||
| 1653 | keys, using the variables @code{keypad-setup}, | ||
| 1654 | @code{keypad-numlock-setup}, @code{keypad-shifted-setup}, and | ||
| 1655 | @code{keypad-numlock-shifted-setup}. These can be found in the | ||
| 1656 | @samp{keyboard} customization group (@pxref{Easy Customization}). You | ||
| 1657 | can rebind the keys to perform other tasks, such as issuing numeric | ||
| 1658 | prefix arguments. | ||
| 1659 | |||
| 1639 | @node Named ASCII Chars | 1660 | @node Named ASCII Chars |
| 1640 | @subsection Named @acronym{ASCII} Control Characters | 1661 | @subsection Named @acronym{ASCII} Control Characters |
| 1641 | 1662 | ||
diff --git a/man/dired-x.texi b/man/dired-x.texi index d51fda342df..208d07ce170 100644 --- a/man/dired-x.texi +++ b/man/dired-x.texi | |||
| @@ -1004,10 +1004,11 @@ Alist of major modes and their notion of @code{default-directory}, as a | |||
| 1004 | Lisp expression to evaluate. A resulting value of @code{nil} is ignored | 1004 | Lisp expression to evaluate. A resulting value of @code{nil} is ignored |
| 1005 | in favor of @code{default-directory}. | 1005 | in favor of @code{default-directory}. |
| 1006 | 1006 | ||
| 1007 | @item default-directory | 1007 | @item dired-default-directory |
| 1008 | @findex default-directory | 1008 | @findex dired-default-directory |
| 1009 | Function with usage like variable @code{default-directory}, but knows about the | 1009 | Use this function like you would use the variable |
| 1010 | special cases in variable @code{default-directory-alist}. | 1010 | @code{default-directory}, except that @code{dired-default-directory} |
| 1011 | also consults the variable @code{default-directory-alist}. | ||
| 1011 | @end table | 1012 | @end table |
| 1012 | 1013 | ||
| 1013 | @node Find File At Point, Miscellaneous Commands, Multiple Dired Directories, Top | 1014 | @node Find File At Point, Miscellaneous Commands, Multiple Dired Directories, Top |
diff --git a/man/dired.texi b/man/dired.texi index 6973a4e4000..b50ac82ab0b 100644 --- a/man/dired.texi +++ b/man/dired.texi | |||
| @@ -39,6 +39,7 @@ files. | |||
| 39 | * Hiding Subdirectories:: Making subdirectories visible or invisible. | 39 | * Hiding Subdirectories:: Making subdirectories visible or invisible. |
| 40 | * Updating: Dired Updating. Discarding lines for files of no interest. | 40 | * Updating: Dired Updating. Discarding lines for files of no interest. |
| 41 | * Find: Dired and Find. Using `find' to choose the files for Dired. | 41 | * Find: Dired and Find. Using `find' to choose the files for Dired. |
| 42 | * Wdired:: Operating on files by editing the Dired buffer. | ||
| 42 | * Misc: Misc Dired Features. Various other features. | 43 | * Misc: Misc Dired Features. Various other features. |
| 43 | @end menu | 44 | @end menu |
| 44 | 45 | ||
| @@ -1103,6 +1104,39 @@ operations work, but do not always automatically update the buffer. | |||
| 1103 | Reverting the buffer with @kbd{g} deletes all inserted subdirectories, | 1104 | Reverting the buffer with @kbd{g} deletes all inserted subdirectories, |
| 1104 | and erases all flags and marks. | 1105 | and erases all flags and marks. |
| 1105 | 1106 | ||
| 1107 | @node Wdired | ||
| 1108 | @section Editing the Dired Buffer | ||
| 1109 | |||
| 1110 | @cindex wdired mode | ||
| 1111 | @findex wdired-change-to-wdired-mode | ||
| 1112 | Wdired is a special mode that allows you to perform file operations | ||
| 1113 | by editing the Dired buffer directly (the ``W'' in ``Wdired'' stands | ||
| 1114 | for ``writable''.) To enter Wdired mode, type @kbd{M-x | ||
| 1115 | wdired-change-to-wdired-mode} while in a Dired buffer. Alternatively, | ||
| 1116 | use @samp{Edit File Names} in the @samp{Immediate} menu bar menu. | ||
| 1117 | |||
| 1118 | @findex wdired-finish-edit | ||
| 1119 | While in Wdired mode, you can rename files by editing the file names | ||
| 1120 | displayed in the Dired buffer. All the ordinary Emacs editing | ||
| 1121 | commands, including rectangle operations and @code{query-replace}, are | ||
| 1122 | available for this. Once you are done editing, type @kbd{C-c C-c} | ||
| 1123 | (@code{wdired-finish-edit}). This applies your changes and switches | ||
| 1124 | back to ordinary Dired mode. | ||
| 1125 | |||
| 1126 | Apart from simply renaming files, you can move a file to another | ||
| 1127 | directory by typing in the new file name (either absolute or | ||
| 1128 | relative). To mark a file for deletion, delete the entire filename. | ||
| 1129 | To change the target of a symbolic link, just edit the target name | ||
| 1130 | displayed next to the link name. | ||
| 1131 | |||
| 1132 | The rest of the text in the buffer, such as the file sizes and | ||
| 1133 | modification dates, is marked read-only, so you can't edit it. | ||
| 1134 | However, if you set @code{wdired-allow-to-change-permissions} to | ||
| 1135 | @code{t}, the file permission bits can also be edited. For example, | ||
| 1136 | you can change @samp{-rw-r--r--} to @samp{-rw-rw-rw-} to make a file | ||
| 1137 | world-writable. These changes also take effect when you type @kbd{C-c | ||
| 1138 | C-c}. | ||
| 1139 | |||
| 1106 | @node Misc Dired Features | 1140 | @node Misc Dired Features |
| 1107 | @section Other Dired Features | 1141 | @section Other Dired Features |
| 1108 | 1142 | ||
diff --git a/man/display.texi b/man/display.texi index ff939e00cdb..01b0291e5e8 100644 --- a/man/display.texi +++ b/man/display.texi | |||
| @@ -913,6 +913,17 @@ they are displayed using their graphics (assuming your terminal supports | |||
| 913 | them), otherwise as escape sequences. @xref{Single-Byte Character | 913 | them), otherwise as escape sequences. @xref{Single-Byte Character |
| 914 | Support}. | 914 | Support}. |
| 915 | 915 | ||
| 916 | @vindex show-nonbreak-escape | ||
| 917 | @cindex no-break space, display | ||
| 918 | @cindex no-break hyphen, display | ||
| 919 | Some character sets define ``no-break'' versions of the space | ||
| 920 | and hyphen characters, which are used where a line should not be | ||
| 921 | broken. Emacs displays these with an escape character in order to | ||
| 922 | distinguish them from ordinary spaces and hyphens. For example, a | ||
| 923 | non-breaking space is displayed as @samp{\ }. You can turn off this | ||
| 924 | behavior by setting the variable @code{show-nonbreak-escape} to | ||
| 925 | @code{nil}. | ||
| 926 | |||
| 916 | @node Cursor Display | 927 | @node Cursor Display |
| 917 | @section Displaying the Cursor | 928 | @section Displaying the Cursor |
| 918 | 929 | ||
diff --git a/man/emacs-mime.texi b/man/emacs-mime.texi index c128ed096c3..11a07df5361 100644 --- a/man/emacs-mime.texi +++ b/man/emacs-mime.texi | |||
| @@ -387,15 +387,15 @@ The program used to start an external terminal. | |||
| 387 | 387 | ||
| 388 | @item mm-enable-external | 388 | @item mm-enable-external |
| 389 | @vindex mm-enable-external | 389 | @vindex mm-enable-external |
| 390 | Indicate whether external MIME handlers should be used. | 390 | Indicate whether external @acronym{MIME} handlers should be used. |
| 391 | 391 | ||
| 392 | If @code{t}, all defined external MIME handlers are used. If | 392 | If @code{t}, all defined external @acronym{MIME} handlers are used. If |
| 393 | @code{nil}, files are saved to disk (@code{mailcap-save-binary-file}). | 393 | @code{nil}, files are saved to disk (@code{mailcap-save-binary-file}). |
| 394 | If it is the symbol @code{ask}, you are prompted before the external | 394 | If it is the symbol @code{ask}, you are prompted before the external |
| 395 | @acronym{MIME} handler is invoked. | 395 | @acronym{MIME} handler is invoked. |
| 396 | 396 | ||
| 397 | When you launch an attachment through mailcap (@pxref{mailcap}) an | 397 | When you launch an attachment through mailcap (@pxref{mailcap}) an |
| 398 | attempt is made to use a safe viewer with the safest options--this isn't | 398 | attempt is made to use a safe viewer with the safest options---this isn't |
| 399 | the case if you save it to disk and launch it in a different way | 399 | the case if you save it to disk and launch it in a different way |
| 400 | (command line or double-clicking). Anyhow, if you want to be sure not | 400 | (command line or double-clicking). Anyhow, if you want to be sure not |
| 401 | to launch any external programs, set this variable to @code{nil} or | 401 | to launch any external programs, set this variable to @code{nil} or |
| @@ -1327,8 +1327,8 @@ RFC2047 specifies two forms of encoding---@code{Q} (a | |||
| 1327 | Quoted-Printable-like encoding) and @code{B} (base64). This alist | 1327 | Quoted-Printable-like encoding) and @code{B} (base64). This alist |
| 1328 | specifies which charset should use which encoding. | 1328 | specifies which charset should use which encoding. |
| 1329 | 1329 | ||
| 1330 | @item rfc2047-encoding-function-alist | 1330 | @item rfc2047-encode-function-alist |
| 1331 | @vindex rfc2047-encoding-function-alist | 1331 | @vindex rfc2047-encode-function-alist |
| 1332 | This is an alist of encoding / function pairs. The encodings are | 1332 | This is an alist of encoding / function pairs. The encodings are |
| 1333 | @code{Q}, @code{B} and @code{nil}. | 1333 | @code{Q}, @code{B} and @code{nil}. |
| 1334 | 1334 | ||
| @@ -1336,6 +1336,11 @@ This is an alist of encoding / function pairs. The encodings are | |||
| 1336 | @vindex rfc2047-encoded-word-regexp | 1336 | @vindex rfc2047-encoded-word-regexp |
| 1337 | When decoding words, this library looks for matches to this regexp. | 1337 | When decoding words, this library looks for matches to this regexp. |
| 1338 | 1338 | ||
| 1339 | @item rfc2047-encode-encoded-words | ||
| 1340 | @vindex rfc2047-encode-encoded-words | ||
| 1341 | The boolean variable specifies whether encoded words | ||
| 1342 | (e.g. @samp{=?hello?=}) should be encoded again. | ||
| 1343 | |||
| 1339 | @end table | 1344 | @end table |
| 1340 | 1345 | ||
| 1341 | Those were the variables, and these are this functions: | 1346 | Those were the variables, and these are this functions: |
| @@ -1366,6 +1371,24 @@ Decode the encoded words in the region. | |||
| 1366 | @findex rfc2047-decode-string | 1371 | @findex rfc2047-decode-string |
| 1367 | Decode a string and return the results. | 1372 | Decode a string and return the results. |
| 1368 | 1373 | ||
| 1374 | @item rfc2047-encode-parameter | ||
| 1375 | @findex rfc2047-encode-parameter | ||
| 1376 | Encode a parameter in the RFC2047-like style. This is a replacement for | ||
| 1377 | the @code{rfc2231-encode-string} function. @xref{rfc2231}. | ||
| 1378 | |||
| 1379 | When attaching files as @acronym{MIME} parts, we should use the RFC2231 | ||
| 1380 | encoding to specify the file names containing non-@acronym{ASCII} | ||
| 1381 | characters. However, many mail softwares don't support it in practice | ||
| 1382 | and recipients won't be able to extract files with correct names. | ||
| 1383 | Instead, the RFC2047-like encoding is acceptable generally. This | ||
| 1384 | function provides the very RFC2047-like encoding, resigning to such a | ||
| 1385 | regrettable trend. To use it, put the following line in your | ||
| 1386 | @file{~/.gnus.el} file: | ||
| 1387 | |||
| 1388 | @lisp | ||
| 1389 | (defalias 'mail-header-encode-parameter 'rfc2047-encode-parameter) | ||
| 1390 | @end lisp | ||
| 1391 | |||
| 1369 | @end table | 1392 | @end table |
| 1370 | 1393 | ||
| 1371 | 1394 | ||
diff --git a/man/emacs-xtra.texi b/man/emacs-xtra.texi index a1ccf101bd6..94a37c2ec5e 100644 --- a/man/emacs-xtra.texi +++ b/man/emacs-xtra.texi | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | @copying | 10 | @copying |
| 11 | This manual describes specialized features of Emacs. | 11 | This manual describes specialized features of Emacs. |
| 12 | 12 | ||
| 13 | Copyright (C) 2004 | 13 | Copyright (C) 2004, 2005 |
| 14 | Free Software Foundation, Inc. | 14 | Free Software Foundation, Inc. |
| 15 | 15 | ||
| 16 | @quotation | 16 | @quotation |
| @@ -59,6 +59,7 @@ license to the document, as described in section 6 of the license. | |||
| 59 | * Introduction:: What documentation belongs here? | 59 | * Introduction:: What documentation belongs here? |
| 60 | * Autorevert:: Auto Reverting non-file buffers. | 60 | * Autorevert:: Auto Reverting non-file buffers. |
| 61 | * Subdir switches:: Subdirectory switches in Dired. | 61 | * Subdir switches:: Subdirectory switches in Dired. |
| 62 | * Advanced Calendar/Diary Usage:: Advanced Calendar/Diary customization. | ||
| 62 | * Index:: | 63 | * Index:: |
| 63 | @end menu | 64 | @end menu |
| 64 | 65 | ||
| @@ -307,6 +308,922 @@ You can make Dired forget about all subdirectory switches and relist | |||
| 307 | all subdirectories with the buffer's default switches using | 308 | all subdirectories with the buffer's default switches using |
| 308 | @kbd{M-x dired-reset-subdir-switches}. This also reverts the Dired buffer. | 309 | @kbd{M-x dired-reset-subdir-switches}. This also reverts the Dired buffer. |
| 309 | 310 | ||
| 311 | |||
| 312 | @c Moved here from the Emacs Lisp Reference Manual, 2005-03-26. | ||
| 313 | @node Advanced Calendar/Diary Usage | ||
| 314 | @chapter Customizing the Calendar and Diary | ||
| 315 | |||
| 316 | There are many customizations that you can use to make the calendar and | ||
| 317 | diary suit your personal tastes. | ||
| 318 | |||
| 319 | @menu | ||
| 320 | * Calendar Customizing:: Defaults you can set. | ||
| 321 | * Holiday Customizing:: Defining your own holidays. | ||
| 322 | * Date Display Format:: Changing the format. | ||
| 323 | * Time Display Format:: Changing the format. | ||
| 324 | * Daylight Savings:: Changing the default. | ||
| 325 | * Diary Customizing:: Defaults you can set. | ||
| 326 | * Hebrew/Islamic Entries:: How to obtain them. | ||
| 327 | * Fancy Diary Display:: Enhancing the diary display, sorting entries, | ||
| 328 | using included diary files. | ||
| 329 | * Sexp Diary Entries:: Fancy things you can do. | ||
| 330 | @end menu | ||
| 331 | |||
| 332 | @node Calendar Customizing | ||
| 333 | @section Customizing the Calendar | ||
| 334 | @vindex calendar-holiday-marker | ||
| 335 | @vindex diary-entry-marker | ||
| 336 | The variable @code{calendar-holiday-marker} specifies how to mark a | ||
| 337 | date as being a holiday. Its value may be a single-character string | ||
| 338 | to insert next to the date, or a face name to use for displaying the | ||
| 339 | date. Likewise, the variable @code{diary-entry-marker} specifies how | ||
| 340 | to mark a date that has diary entries. The calendar creates faces | ||
| 341 | named @code{holiday-face} and @code{diary-face} for these purposes; | ||
| 342 | those symbols are the default values of these variables. | ||
| 343 | |||
| 344 | @vindex calendar-load-hook | ||
| 345 | The variable @code{calendar-load-hook} is a normal hook run when the | ||
| 346 | calendar package is first loaded (before actually starting to display | ||
| 347 | the calendar). | ||
| 348 | |||
| 349 | @vindex initial-calendar-window-hook | ||
| 350 | Starting the calendar runs the normal hook | ||
| 351 | @code{initial-calendar-window-hook}. Recomputation of the calendar | ||
| 352 | display does not run this hook. But if you leave the calendar with the | ||
| 353 | @kbd{q} command and reenter it, the hook runs again.@refill | ||
| 354 | |||
| 355 | @vindex today-visible-calendar-hook | ||
| 356 | The variable @code{today-visible-calendar-hook} is a normal hook run | ||
| 357 | after the calendar buffer has been prepared with the calendar when the | ||
| 358 | current date is visible in the window. One use of this hook is to | ||
| 359 | replace today's date with asterisks; to do that, use the hook function | ||
| 360 | @code{calendar-star-date}. | ||
| 361 | |||
| 362 | @findex calendar-star-date | ||
| 363 | @example | ||
| 364 | (add-hook 'today-visible-calendar-hook 'calendar-star-date) | ||
| 365 | @end example | ||
| 366 | |||
| 367 | @noindent | ||
| 368 | Another standard hook function marks the current date, either by | ||
| 369 | changing its face or by adding an asterisk. Here's how to use it: | ||
| 370 | |||
| 371 | @findex calendar-mark-today | ||
| 372 | @example | ||
| 373 | (add-hook 'today-visible-calendar-hook 'calendar-mark-today) | ||
| 374 | @end example | ||
| 375 | |||
| 376 | @noindent | ||
| 377 | @vindex calendar-today-marker | ||
| 378 | The variable @code{calendar-today-marker} specifies how to mark | ||
| 379 | today's date. Its value should be a single-character string to insert | ||
| 380 | next to the date or a face name to use for displaying the date. A | ||
| 381 | face named @code{calendar-today-face} is provided for this purpose; | ||
| 382 | that symbol is the default for this variable. | ||
| 383 | |||
| 384 | @vindex today-invisible-calendar-hook | ||
| 385 | @noindent | ||
| 386 | A similar normal hook, @code{today-invisible-calendar-hook} is run if | ||
| 387 | the current date is @emph{not} visible in the window. | ||
| 388 | |||
| 389 | @vindex calendar-move-hook | ||
| 390 | Each of the calendar cursor motion commands runs the hook | ||
| 391 | @code{calendar-move-hook} after it moves the cursor. | ||
| 392 | |||
| 393 | @node Holiday Customizing | ||
| 394 | @section Customizing the Holidays | ||
| 395 | |||
| 396 | @vindex calendar-holidays | ||
| 397 | @vindex christian-holidays | ||
| 398 | @vindex hebrew-holidays | ||
| 399 | @vindex islamic-holidays | ||
| 400 | Emacs knows about holidays defined by entries on one of several lists. | ||
| 401 | You can customize these lists of holidays to your own needs, adding or | ||
| 402 | deleting holidays. The lists of holidays that Emacs uses are for | ||
| 403 | general holidays (@code{general-holidays}), local holidays | ||
| 404 | (@code{local-holidays}), Christian holidays (@code{christian-holidays}), | ||
| 405 | Hebrew (Jewish) holidays (@code{hebrew-holidays}), Islamic (Muslim) | ||
| 406 | holidays (@code{islamic-holidays}), and other holidays | ||
| 407 | (@code{other-holidays}). | ||
| 408 | |||
| 409 | @vindex general-holidays | ||
| 410 | The general holidays are, by default, holidays common throughout the | ||
| 411 | United States. To eliminate these holidays, set @code{general-holidays} | ||
| 412 | to @code{nil}. | ||
| 413 | |||
| 414 | @vindex local-holidays | ||
| 415 | There are no default local holidays (but sites may supply some). You | ||
| 416 | can set the variable @code{local-holidays} to any list of holidays, as | ||
| 417 | described below. | ||
| 418 | |||
| 419 | @vindex all-christian-calendar-holidays | ||
| 420 | @vindex all-hebrew-calendar-holidays | ||
| 421 | @vindex all-islamic-calendar-holidays | ||
| 422 | By default, Emacs does not include all the holidays of the religions | ||
| 423 | that it knows, only those commonly found in secular calendars. For a | ||
| 424 | more extensive collection of religious holidays, you can set any (or | ||
| 425 | all) of the variables @code{all-christian-calendar-holidays}, | ||
| 426 | @code{all-hebrew-calendar-holidays}, or | ||
| 427 | @code{all-islamic-calendar-holidays} to @code{t}. If you want to | ||
| 428 | eliminate the religious holidays, set any or all of the corresponding | ||
| 429 | variables @code{christian-holidays}, @code{hebrew-holidays}, and | ||
| 430 | @code{islamic-holidays} to @code{nil}.@refill | ||
| 431 | |||
| 432 | @vindex other-holidays | ||
| 433 | You can set the variable @code{other-holidays} to any list of | ||
| 434 | holidays. This list, normally empty, is intended for individual use. | ||
| 435 | |||
| 436 | @cindex holiday forms | ||
| 437 | Each of the lists (@code{general-holidays}, @code{local-holidays}, | ||
| 438 | @code{christian-holidays}, @code{hebrew-holidays}, | ||
| 439 | @code{islamic-holidays}, and @code{other-holidays}) is a list of | ||
| 440 | @dfn{holiday forms}, each holiday form describing a holiday (or | ||
| 441 | sometimes a list of holidays). | ||
| 442 | |||
| 443 | Here is a table of the possible kinds of holiday form. Day numbers | ||
| 444 | and month numbers count starting from 1, but ``dayname'' numbers | ||
| 445 | count Sunday as 0. The element @var{string} is always the | ||
| 446 | name of the holiday, as a string. | ||
| 447 | |||
| 448 | @table @code | ||
| 449 | @item (holiday-fixed @var{month} @var{day} @var{string}) | ||
| 450 | A fixed date on the Gregorian calendar. | ||
| 451 | |||
| 452 | @item (holiday-float @var{month} @var{dayname} @var{k} @var{string}) | ||
| 453 | The @var{k}th @var{dayname} in @var{month} on the Gregorian calendar | ||
| 454 | (@var{dayname}=0 for Sunday, and so on); negative @var{k} means count back | ||
| 455 | from the end of the month. | ||
| 456 | |||
| 457 | @item (holiday-hebrew @var{month} @var{day} @var{string}) | ||
| 458 | A fixed date on the Hebrew calendar. | ||
| 459 | |||
| 460 | @item (holiday-islamic @var{month} @var{day} @var{string}) | ||
| 461 | A fixed date on the Islamic calendar. | ||
| 462 | |||
| 463 | @item (holiday-julian @var{month} @var{day} @var{string}) | ||
| 464 | A fixed date on the Julian calendar. | ||
| 465 | |||
| 466 | @item (holiday-sexp @var{sexp} @var{string}) | ||
| 467 | A date calculated by the Lisp expression @var{sexp}. The expression | ||
| 468 | should use the variable @code{year} to compute and return the date of a | ||
| 469 | holiday, or @code{nil} if the holiday doesn't happen this year. The | ||
| 470 | value of @var{sexp} must represent the date as a list of the form | ||
| 471 | @code{(@var{month} @var{day} @var{year})}. | ||
| 472 | |||
| 473 | @item (if @var{condition} @var{holiday-form}) | ||
| 474 | A holiday that happens only if @var{condition} is true. | ||
| 475 | |||
| 476 | @item (@var{function} @r{[}@var{args}@r{]}) | ||
| 477 | A list of dates calculated by the function @var{function}, called with | ||
| 478 | arguments @var{args}. | ||
| 479 | @end table | ||
| 480 | |||
| 481 | For example, suppose you want to add Bastille Day, celebrated in | ||
| 482 | France on July 14. You can do this as follows: | ||
| 483 | |||
| 484 | @smallexample | ||
| 485 | (setq other-holidays '((holiday-fixed 7 14 "Bastille Day"))) | ||
| 486 | @end smallexample | ||
| 487 | |||
| 488 | @noindent | ||
| 489 | The holiday form @code{(holiday-fixed 7 14 "Bastille Day")} specifies the | ||
| 490 | fourteenth day of the seventh month (July). | ||
| 491 | |||
| 492 | Many holidays occur on a specific day of the week, at a specific time | ||
| 493 | of month. Here is a holiday form describing Hurricane Supplication Day, | ||
| 494 | celebrated in the Virgin Islands on the fourth Monday in August: | ||
| 495 | |||
| 496 | @smallexample | ||
| 497 | (holiday-float 8 1 4 "Hurricane Supplication Day") | ||
| 498 | @end smallexample | ||
| 499 | |||
| 500 | @noindent | ||
| 501 | Here the 8 specifies August, the 1 specifies Monday (Sunday is 0, | ||
| 502 | Tuesday is 2, and so on), and the 4 specifies the fourth occurrence in | ||
| 503 | the month (1 specifies the first occurrence, 2 the second occurrence, | ||
| 504 | @minus{}1 the last occurrence, @minus{}2 the second-to-last occurrence, and | ||
| 505 | so on). | ||
| 506 | |||
| 507 | You can specify holidays that occur on fixed days of the Hebrew, | ||
| 508 | Islamic, and Julian calendars too. For example, | ||
| 509 | |||
| 510 | @smallexample | ||
| 511 | (setq other-holidays | ||
| 512 | '((holiday-hebrew 10 2 "Last day of Hanukkah") | ||
| 513 | (holiday-islamic 3 12 "Mohammed's Birthday") | ||
| 514 | (holiday-julian 4 2 "Jefferson's Birthday"))) | ||
| 515 | @end smallexample | ||
| 516 | |||
| 517 | @noindent | ||
| 518 | adds the last day of Hanukkah (since the Hebrew months are numbered with | ||
| 519 | 1 starting from Nisan), the Islamic feast celebrating Mohammed's | ||
| 520 | birthday (since the Islamic months are numbered from 1 starting with | ||
| 521 | Muharram), and Thomas Jefferson's birthday, which is 2 April 1743 on the | ||
| 522 | Julian calendar. | ||
| 523 | |||
| 524 | To include a holiday conditionally, use either Emacs Lisp's @code{if} or the | ||
| 525 | @code{holiday-sexp} form. For example, American presidential elections | ||
| 526 | occur on the first Tuesday after the first Monday in November of years | ||
| 527 | divisible by 4: | ||
| 528 | |||
| 529 | @smallexample | ||
| 530 | (holiday-sexp '(if (= 0 (% year 4)) | ||
| 531 | (calendar-gregorian-from-absolute | ||
| 532 | (1+ (calendar-dayname-on-or-before | ||
| 533 | 1 (+ 6 (calendar-absolute-from-gregorian | ||
| 534 | (list 11 1 year))))))) | ||
| 535 | "US Presidential Election") | ||
| 536 | @end smallexample | ||
| 537 | |||
| 538 | @noindent | ||
| 539 | or | ||
| 540 | |||
| 541 | @smallexample | ||
| 542 | (if (= 0 (% displayed-year 4)) | ||
| 543 | (fixed 11 | ||
| 544 | (extract-calendar-day | ||
| 545 | (calendar-gregorian-from-absolute | ||
| 546 | (1+ (calendar-dayname-on-or-before | ||
| 547 | 1 (+ 6 (calendar-absolute-from-gregorian | ||
| 548 | (list 11 1 displayed-year))))))) | ||
| 549 | "US Presidential Election")) | ||
| 550 | @end smallexample | ||
| 551 | |||
| 552 | Some holidays just don't fit into any of these forms because special | ||
| 553 | calculations are involved in their determination. In such cases you | ||
| 554 | must write a Lisp function to do the calculation. To include eclipses, | ||
| 555 | for example, add @code{(eclipses)} to @code{other-holidays} | ||
| 556 | and write an Emacs Lisp function @code{eclipses} that returns a | ||
| 557 | (possibly empty) list of the relevant Gregorian dates among the range | ||
| 558 | visible in the calendar window, with descriptive strings, like this: | ||
| 559 | |||
| 560 | @smallexample | ||
| 561 | (((6 27 1991) "Lunar Eclipse") ((7 11 1991) "Solar Eclipse") ... ) | ||
| 562 | @end smallexample | ||
| 563 | |||
| 564 | @node Date Display Format | ||
| 565 | @section Date Display Format | ||
| 566 | @vindex calendar-date-display-form | ||
| 567 | |||
| 568 | You can customize the manner of displaying dates in the diary, in mode | ||
| 569 | lines, and in messages by setting @code{calendar-date-display-form}. | ||
| 570 | This variable holds a list of expressions that can involve the variables | ||
| 571 | @code{month}, @code{day}, and @code{year}, which are all numbers in | ||
| 572 | string form, and @code{monthname} and @code{dayname}, which are both | ||
| 573 | alphabetic strings. In the American style, the default value of this | ||
| 574 | list is as follows: | ||
| 575 | |||
| 576 | @smallexample | ||
| 577 | ((if dayname (concat dayname ", ")) monthname " " day ", " year) | ||
| 578 | @end smallexample | ||
| 579 | |||
| 580 | @noindent | ||
| 581 | while in the European style this value is the default: | ||
| 582 | |||
| 583 | @smallexample | ||
| 584 | ((if dayname (concat dayname ", ")) day " " monthname " " year) | ||
| 585 | @end smallexample | ||
| 586 | |||
| 587 | @noindent | ||
| 588 | The ISO standard date representation is this: | ||
| 589 | |||
| 590 | @smallexample | ||
| 591 | (year "-" month "-" day) | ||
| 592 | @end smallexample | ||
| 593 | |||
| 594 | @noindent | ||
| 595 | This specifies a typical American format: | ||
| 596 | |||
| 597 | @smallexample | ||
| 598 | (month "/" day "/" (substring year -2)) | ||
| 599 | @end smallexample | ||
| 600 | |||
| 601 | @node Time Display Format | ||
| 602 | @section Time Display Format | ||
| 603 | @vindex calendar-time-display-form | ||
| 604 | |||
| 605 | The calendar and diary by default display times of day in the | ||
| 606 | conventional American style with the hours from 1 through 12, minutes, | ||
| 607 | and either @samp{am} or @samp{pm}. If you prefer the European style, | ||
| 608 | also known in the US as military, in which the hours go from 00 to 23, | ||
| 609 | you can alter the variable @code{calendar-time-display-form}. This | ||
| 610 | variable is a list of expressions that can involve the variables | ||
| 611 | @code{12-hours}, @code{24-hours}, and @code{minutes}, which are all | ||
| 612 | numbers in string form, and @code{am-pm} and @code{time-zone}, which are | ||
| 613 | both alphabetic strings. The default value of | ||
| 614 | @code{calendar-time-display-form} is as follows: | ||
| 615 | |||
| 616 | @smallexample | ||
| 617 | (12-hours ":" minutes am-pm | ||
| 618 | (if time-zone " (") time-zone (if time-zone ")")) | ||
| 619 | @end smallexample | ||
| 620 | |||
| 621 | @noindent | ||
| 622 | Here is a value that provides European style times: | ||
| 623 | |||
| 624 | @smallexample | ||
| 625 | (24-hours ":" minutes | ||
| 626 | (if time-zone " (") time-zone (if time-zone ")")) | ||
| 627 | @end smallexample | ||
| 628 | |||
| 629 | @node Daylight Savings | ||
| 630 | @section Daylight Savings Time | ||
| 631 | @cindex daylight savings time | ||
| 632 | |||
| 633 | Emacs understands the difference between standard time and daylight | ||
| 634 | savings time---the times given for sunrise, sunset, solstices, | ||
| 635 | equinoxes, and the phases of the moon take that into account. The rules | ||
| 636 | for daylight savings time vary from place to place and have also varied | ||
| 637 | historically from year to year. To do the job properly, Emacs needs to | ||
| 638 | know which rules to use. | ||
| 639 | |||
| 640 | Some operating systems keep track of the rules that apply to the place | ||
| 641 | where you are; on these systems, Emacs gets the information it needs | ||
| 642 | from the system automatically. If some or all of this information is | ||
| 643 | missing, Emacs fills in the gaps with the rules currently used in | ||
| 644 | Cambridge, Massachusetts, which is the center of GNU's world. | ||
| 645 | |||
| 646 | |||
| 647 | @vindex calendar-daylight-savings-starts | ||
| 648 | @vindex calendar-daylight-savings-ends | ||
| 649 | If the default choice of rules is not appropriate for your location, | ||
| 650 | you can tell Emacs the rules to use by setting the variables | ||
| 651 | @code{calendar-daylight-savings-starts} and | ||
| 652 | @code{calendar-daylight-savings-ends}. Their values should be Lisp | ||
| 653 | expressions that refer to the variable @code{year}, and evaluate to the | ||
| 654 | Gregorian date on which daylight savings time starts or (respectively) | ||
| 655 | ends, in the form of a list @code{(@var{month} @var{day} @var{year})}. | ||
| 656 | The values should be @code{nil} if your area does not use daylight | ||
| 657 | savings time. | ||
| 658 | |||
| 659 | Emacs uses these expressions to determine the start and end dates of | ||
| 660 | daylight savings time as holidays and for correcting times of day in the | ||
| 661 | solar and lunar calculations. | ||
| 662 | |||
| 663 | The values for Cambridge, Massachusetts are as follows: | ||
| 664 | |||
| 665 | @example | ||
| 666 | @group | ||
| 667 | (calendar-nth-named-day 1 0 4 year) | ||
| 668 | (calendar-nth-named-day -1 0 10 year) | ||
| 669 | @end group | ||
| 670 | @end example | ||
| 671 | |||
| 672 | @noindent | ||
| 673 | i.e., the first 0th day (Sunday) of the fourth month (April) in | ||
| 674 | the year specified by @code{year}, and the last Sunday of the tenth month | ||
| 675 | (October) of that year. If daylight savings time were | ||
| 676 | changed to start on October 1, you would set | ||
| 677 | @code{calendar-daylight-savings-starts} to this: | ||
| 678 | |||
| 679 | @example | ||
| 680 | (list 10 1 year) | ||
| 681 | @end example | ||
| 682 | |||
| 683 | For a more complex example, suppose daylight savings time begins on | ||
| 684 | the first of Nisan on the Hebrew calendar. You should set | ||
| 685 | @code{calendar-daylight-savings-starts} to this value: | ||
| 686 | |||
| 687 | @example | ||
| 688 | (calendar-gregorian-from-absolute | ||
| 689 | (calendar-absolute-from-hebrew | ||
| 690 | (list 1 1 (+ year 3760)))) | ||
| 691 | @end example | ||
| 692 | |||
| 693 | @noindent | ||
| 694 | because Nisan is the first month in the Hebrew calendar and the Hebrew | ||
| 695 | year differs from the Gregorian year by 3760 at Nisan. | ||
| 696 | |||
| 697 | If there is no daylight savings time at your location, or if you want | ||
| 698 | all times in standard time, set @code{calendar-daylight-savings-starts} | ||
| 699 | and @code{calendar-daylight-savings-ends} to @code{nil}. | ||
| 700 | |||
| 701 | @vindex calendar-daylight-time-offset | ||
| 702 | The variable @code{calendar-daylight-time-offset} specifies the | ||
| 703 | difference between daylight savings time and standard time, measured in | ||
| 704 | minutes. The value for Cambridge is 60. | ||
| 705 | |||
| 706 | @vindex calendar-daylight-savings-starts-time | ||
| 707 | @vindex calendar-daylight-savings-ends-time | ||
| 708 | The variable @code{calendar-daylight-savings-starts-time} and the | ||
| 709 | variable @code{calendar-daylight-savings-ends-time} specify the number | ||
| 710 | of minutes after midnight local time when the transition to and from | ||
| 711 | daylight savings time should occur. For Cambridge, both variables' | ||
| 712 | values are 120. | ||
| 713 | |||
| 714 | @node Diary Customizing | ||
| 715 | @section Customizing the Diary | ||
| 716 | |||
| 717 | @vindex holidays-in-diary-buffer | ||
| 718 | Ordinarily, the mode line of the diary buffer window indicates any | ||
| 719 | holidays that fall on the date of the diary entries. The process of | ||
| 720 | checking for holidays can take several seconds, so including holiday | ||
| 721 | information delays the display of the diary buffer noticeably. If you'd | ||
| 722 | prefer to have a faster display of the diary buffer but without the | ||
| 723 | holiday information, set the variable @code{holidays-in-diary-buffer} to | ||
| 724 | @code{nil}.@refill | ||
| 725 | |||
| 726 | @vindex number-of-diary-entries | ||
| 727 | The variable @code{number-of-diary-entries} controls the number of | ||
| 728 | days of diary entries to be displayed at one time. It affects the | ||
| 729 | initial display when @code{view-diary-entries-initially} is @code{t}, as | ||
| 730 | well as the command @kbd{M-x diary}. For example, the default value is | ||
| 731 | 1, which says to display only the current day's diary entries. If the | ||
| 732 | value is 2, both the current day's and the next day's entries are | ||
| 733 | displayed. The value can also be a vector of seven elements: for | ||
| 734 | example, if the value is @code{[0 2 2 2 2 4 1]} then no diary entries | ||
| 735 | appear on Sunday, the current date's and the next day's diary entries | ||
| 736 | appear Monday through Thursday, Friday through Monday's entries appear | ||
| 737 | on Friday, while on Saturday only that day's entries appear. | ||
| 738 | |||
| 739 | @vindex print-diary-entries-hook | ||
| 740 | @findex print-diary-entries | ||
| 741 | The variable @code{print-diary-entries-hook} is a normal hook run | ||
| 742 | after preparation of a temporary buffer containing just the diary | ||
| 743 | entries currently visible in the diary buffer. (The other, irrelevant | ||
| 744 | diary entries are really absent from the temporary buffer; in the diary | ||
| 745 | buffer, they are merely hidden.) The default value of this hook does | ||
| 746 | the printing with the command @code{lpr-buffer}. If you want to use a | ||
| 747 | different command to do the printing, just change the value of this | ||
| 748 | hook. Other uses might include, for example, rearranging the lines into | ||
| 749 | order by day and time. | ||
| 750 | |||
| 751 | @vindex diary-date-forms | ||
| 752 | You can customize the form of dates in your diary file, if neither the | ||
| 753 | standard American nor European styles suits your needs, by setting the | ||
| 754 | variable @code{diary-date-forms}. This variable is a list of patterns | ||
| 755 | for recognizing a date. Each date pattern is a list whose elements may | ||
| 756 | be regular expressions (@pxref{Regular Expressions,,, elisp, the Emacs | ||
| 757 | Lisp Reference Manual}) or the symbols @code{month}, @code{day}, | ||
| 758 | @code{year}, @code{monthname}, and @code{dayname}. All these elements | ||
| 759 | serve as patterns that match certain kinds of text in the diary file. | ||
| 760 | In order for the date pattern, as a whole, to match, all of its elements | ||
| 761 | must match consecutively. | ||
| 762 | |||
| 763 | A regular expression in a date pattern matches in its usual fashion, | ||
| 764 | using the standard syntax table altered so that @samp{*} is a word | ||
| 765 | constituent. | ||
| 766 | |||
| 767 | The symbols @code{month}, @code{day}, @code{year}, @code{monthname}, | ||
| 768 | and @code{dayname} match the month number, day number, year number, | ||
| 769 | month name, and day name of the date being considered. The symbols that | ||
| 770 | match numbers allow leading zeros; those that match names allow | ||
| 771 | three-letter abbreviations and capitalization. All the symbols can | ||
| 772 | match @samp{*}; since @samp{*} in a diary entry means ``any day'', ``any | ||
| 773 | month'', and so on, it should match regardless of the date being | ||
| 774 | considered. | ||
| 775 | |||
| 776 | The default value of @code{diary-date-forms} in the American style is | ||
| 777 | this: | ||
| 778 | |||
| 779 | @example | ||
| 780 | ((month "/" day "[^/0-9]") | ||
| 781 | (month "/" day "/" year "[^0-9]") | ||
| 782 | (monthname " *" day "[^,0-9]") | ||
| 783 | (monthname " *" day ", *" year "[^0-9]") | ||
| 784 | (dayname "\\W")) | ||
| 785 | @end example | ||
| 786 | |||
| 787 | The date patterns in the list must be @emph{mutually exclusive} and | ||
| 788 | must not match any portion of the diary entry itself, just the date and | ||
| 789 | one character of whitespace. If, to be mutually exclusive, the pattern | ||
| 790 | must match a portion of the diary entry text---beyond the whitespace | ||
| 791 | that ends the date---then the first element of the date pattern | ||
| 792 | @emph{must} be @code{backup}. This causes the date recognizer to back | ||
| 793 | up to the beginning of the current word of the diary entry, after | ||
| 794 | finishing the match. Even if you use @code{backup}, the date pattern | ||
| 795 | must absolutely not match more than a portion of the first word of the | ||
| 796 | diary entry. The default value of @code{diary-date-forms} in the | ||
| 797 | European style is this list: | ||
| 798 | |||
| 799 | @example | ||
| 800 | ((day "/" month "[^/0-9]") | ||
| 801 | (day "/" month "/" year "[^0-9]") | ||
| 802 | (backup day " *" monthname "\\W+\\<[^*0-9]") | ||
| 803 | (day " *" monthname " *" year "[^0-9]") | ||
| 804 | (dayname "\\W")) | ||
| 805 | @end example | ||
| 806 | |||
| 807 | @noindent | ||
| 808 | Notice the use of @code{backup} in the third pattern, because it needs | ||
| 809 | to match part of a word beyond the date itself to distinguish it from | ||
| 810 | the fourth pattern. | ||
| 811 | |||
| 812 | @node Hebrew/Islamic Entries | ||
| 813 | @section Hebrew- and Islamic-Date Diary Entries | ||
| 814 | |||
| 815 | Your diary file can have entries based on Hebrew or Islamic dates, as | ||
| 816 | well as entries based on the world-standard Gregorian calendar. | ||
| 817 | However, because recognition of such entries is time-consuming and most | ||
| 818 | people don't use them, you must explicitly enable their use. If you | ||
| 819 | want the diary to recognize Hebrew-date diary entries, for example, | ||
| 820 | you must do this: | ||
| 821 | |||
| 822 | @vindex nongregorian-diary-listing-hook | ||
| 823 | @vindex nongregorian-diary-marking-hook | ||
| 824 | @findex list-hebrew-diary-entries | ||
| 825 | @findex mark-hebrew-diary-entries | ||
| 826 | @smallexample | ||
| 827 | (add-hook 'nongregorian-diary-listing-hook 'list-hebrew-diary-entries) | ||
| 828 | (add-hook 'nongregorian-diary-marking-hook 'mark-hebrew-diary-entries) | ||
| 829 | @end smallexample | ||
| 830 | |||
| 831 | @noindent | ||
| 832 | If you want Islamic-date entries, do this: | ||
| 833 | |||
| 834 | @findex list-islamic-diary-entries | ||
| 835 | @findex mark-islamic-diary-entries | ||
| 836 | @smallexample | ||
| 837 | (add-hook 'nongregorian-diary-listing-hook 'list-islamic-diary-entries) | ||
| 838 | (add-hook 'nongregorian-diary-marking-hook 'mark-islamic-diary-entries) | ||
| 839 | @end smallexample | ||
| 840 | |||
| 841 | Hebrew- and Islamic-date diary entries have the same formats as | ||
| 842 | Gregorian-date diary entries, except that @samp{H} precedes a Hebrew | ||
| 843 | date and @samp{I} precedes an Islamic date. Moreover, because the | ||
| 844 | Hebrew and Islamic month names are not uniquely specified by the first | ||
| 845 | three letters, you may not abbreviate them. For example, a diary entry | ||
| 846 | for the Hebrew date Heshvan 25 could look like this: | ||
| 847 | |||
| 848 | @smallexample | ||
| 849 | HHeshvan 25 Happy Hebrew birthday! | ||
| 850 | @end smallexample | ||
| 851 | |||
| 852 | @noindent | ||
| 853 | and would appear in the diary for any date that corresponds to Heshvan 25 | ||
| 854 | on the Hebrew calendar. And here is an Islamic-date diary entry that matches | ||
| 855 | Dhu al-Qada 25: | ||
| 856 | |||
| 857 | @smallexample | ||
| 858 | IDhu al-Qada 25 Happy Islamic birthday! | ||
| 859 | @end smallexample | ||
| 860 | |||
| 861 | As with Gregorian-date diary entries, Hebrew- and Islamic-date entries | ||
| 862 | are nonmarking if they are preceded with an ampersand (@samp{&}). | ||
| 863 | |||
| 864 | Here is a table of commands used in the calendar to create diary entries | ||
| 865 | that match the selected date and other dates that are similar in the Hebrew | ||
| 866 | or Islamic calendar: | ||
| 867 | |||
| 868 | @table @kbd | ||
| 869 | @item i h d | ||
| 870 | Add a diary entry for the Hebrew date corresponding to the selected date | ||
| 871 | (@code{insert-hebrew-diary-entry}). | ||
| 872 | @item i h m | ||
| 873 | Add a diary entry for the day of the Hebrew month corresponding to the | ||
| 874 | selected date (@code{insert-monthly-hebrew-diary-entry}). This diary | ||
| 875 | entry matches any date that has the same Hebrew day-within-month as the | ||
| 876 | selected date. | ||
| 877 | @item i h y | ||
| 878 | Add a diary entry for the day of the Hebrew year corresponding to the | ||
| 879 | selected date (@code{insert-yearly-hebrew-diary-entry}). This diary | ||
| 880 | entry matches any date which has the same Hebrew month and day-within-month | ||
| 881 | as the selected date. | ||
| 882 | @item i i d | ||
| 883 | Add a diary entry for the Islamic date corresponding to the selected date | ||
| 884 | (@code{insert-islamic-diary-entry}). | ||
| 885 | @item i i m | ||
| 886 | Add a diary entry for the day of the Islamic month corresponding to the | ||
| 887 | selected date (@code{insert-monthly-islamic-diary-entry}). | ||
| 888 | @item i i y | ||
| 889 | Add a diary entry for the day of the Islamic year corresponding to the | ||
| 890 | selected date (@code{insert-yearly-islamic-diary-entry}). | ||
| 891 | @end table | ||
| 892 | |||
| 893 | @findex insert-hebrew-diary-entry | ||
| 894 | @findex insert-monthly-hebrew-diary-entry | ||
| 895 | @findex insert-yearly-hebrew-diary-entry | ||
| 896 | @findex insert-islamic-diary-entry | ||
| 897 | @findex insert-monthly-islamic-diary-entry | ||
| 898 | @findex insert-yearly-islamic-diary-entry | ||
| 899 | These commands work much like the corresponding commands for ordinary | ||
| 900 | diary entries: they apply to the date that point is on in the calendar | ||
| 901 | window, and what they do is insert just the date portion of a diary entry | ||
| 902 | at the end of your diary file. You must then insert the rest of the | ||
| 903 | diary entry. | ||
| 904 | |||
| 905 | @node Fancy Diary Display | ||
| 906 | @section Fancy Diary Display | ||
| 907 | @vindex diary-display-hook | ||
| 908 | @findex simple-diary-display | ||
| 909 | |||
| 910 | Diary display works by preparing the diary buffer and then running the | ||
| 911 | hook @code{diary-display-hook}. The default value of this hook | ||
| 912 | (@code{simple-diary-display}) hides the irrelevant diary entries and | ||
| 913 | then displays the buffer. However, if you specify the hook as follows, | ||
| 914 | |||
| 915 | @cindex diary buffer | ||
| 916 | @findex fancy-diary-display | ||
| 917 | @example | ||
| 918 | (add-hook 'diary-display-hook 'fancy-diary-display) | ||
| 919 | @end example | ||
| 920 | |||
| 921 | @noindent | ||
| 922 | this enables fancy diary display. It displays diary entries and | ||
| 923 | holidays by copying them into a special buffer that exists only for the | ||
| 924 | sake of display. Copying to a separate buffer provides an opportunity | ||
| 925 | to change the displayed text to make it prettier---for example, to sort | ||
| 926 | the entries by the dates they apply to. | ||
| 927 | |||
| 928 | As with simple diary display, you can print a hard copy of the buffer | ||
| 929 | with @code{print-diary-entries}. To print a hard copy of a day-by-day | ||
| 930 | diary for a week, position point on Sunday of that week, type | ||
| 931 | @kbd{7 d}, and then do @kbd{M-x print-diary-entries}. As usual, the | ||
| 932 | inclusion of the holidays slows down the display slightly; you can speed | ||
| 933 | things up by setting the variable @code{holidays-in-diary-buffer} to | ||
| 934 | @code{nil}. | ||
| 935 | |||
| 936 | @vindex diary-list-include-blanks | ||
| 937 | Ordinarily, the fancy diary buffer does not show days for which there are | ||
| 938 | no diary entries, even if that day is a holiday. If you want such days to be | ||
| 939 | shown in the fancy diary buffer, set the variable | ||
| 940 | @code{diary-list-include-blanks} to @code{t}.@refill | ||
| 941 | |||
| 942 | @cindex sorting diary entries | ||
| 943 | If you use the fancy diary display, you can use the normal hook | ||
| 944 | @code{list-diary-entries-hook} to sort each day's diary entries by their | ||
| 945 | time of day. Here's how: | ||
| 946 | |||
| 947 | @findex sort-diary-entries | ||
| 948 | @example | ||
| 949 | (add-hook 'list-diary-entries-hook 'sort-diary-entries t) | ||
| 950 | @end example | ||
| 951 | |||
| 952 | @noindent | ||
| 953 | For each day, this sorts diary entries that begin with a recognizable | ||
| 954 | time of day according to their times. Diary entries without times come | ||
| 955 | first within each day. | ||
| 956 | |||
| 957 | Fancy diary display also has the ability to process included diary | ||
| 958 | files. This permits a group of people to share a diary file for events | ||
| 959 | that apply to all of them. Lines in the diary file of this form: | ||
| 960 | |||
| 961 | @smallexample | ||
| 962 | #include "@var{filename}" | ||
| 963 | @end smallexample | ||
| 964 | |||
| 965 | @noindent | ||
| 966 | includes the diary entries from the file @var{filename} in the fancy | ||
| 967 | diary buffer. The include mechanism is recursive, so that included files | ||
| 968 | can include other files, and so on; you must be careful not to have a | ||
| 969 | cycle of inclusions, of course. Here is how to enable the include | ||
| 970 | facility: | ||
| 971 | |||
| 972 | @vindex list-diary-entries-hook | ||
| 973 | @vindex mark-diary-entries-hook | ||
| 974 | @findex include-other-diary-files | ||
| 975 | @findex mark-included-diary-files | ||
| 976 | @smallexample | ||
| 977 | (add-hook 'list-diary-entries-hook 'include-other-diary-files) | ||
| 978 | (add-hook 'mark-diary-entries-hook 'mark-included-diary-files) | ||
| 979 | @end smallexample | ||
| 980 | |||
| 981 | The include mechanism works only with the fancy diary display, because | ||
| 982 | ordinary diary display shows the entries directly from your diary file. | ||
| 983 | |||
| 984 | @node Sexp Diary Entries | ||
| 985 | @section Sexp Entries and the Fancy Diary Display | ||
| 986 | @cindex sexp diary entries | ||
| 987 | |||
| 988 | Sexp diary entries allow you to do more than just have complicated | ||
| 989 | conditions under which a diary entry applies. If you use the fancy | ||
| 990 | diary display, sexp entries can generate the text of the entry depending | ||
| 991 | on the date itself. For example, an anniversary diary entry can insert | ||
| 992 | the number of years since the anniversary date into the text of the | ||
| 993 | diary entry. Thus the @samp{%d} in this dairy entry: | ||
| 994 | |||
| 995 | @findex diary-anniversary | ||
| 996 | @smallexample | ||
| 997 | %%(diary-anniversary 10 31 1948) Arthur's birthday (%d years old) | ||
| 998 | @end smallexample | ||
| 999 | |||
| 1000 | @noindent | ||
| 1001 | gets replaced by the age, so on October 31, 1990 the entry appears in | ||
| 1002 | the fancy diary buffer like this: | ||
| 1003 | |||
| 1004 | @smallexample | ||
| 1005 | Arthur's birthday (42 years old) | ||
| 1006 | @end smallexample | ||
| 1007 | |||
| 1008 | @noindent | ||
| 1009 | If the diary file instead contains this entry: | ||
| 1010 | |||
| 1011 | @smallexample | ||
| 1012 | %%(diary-anniversary 10 31 1948) Arthur's %d%s birthday | ||
| 1013 | @end smallexample | ||
| 1014 | |||
| 1015 | @noindent | ||
| 1016 | the entry in the fancy diary buffer for October 31, 1990 appears like this: | ||
| 1017 | |||
| 1018 | @smallexample | ||
| 1019 | Arthur's 42nd birthday | ||
| 1020 | @end smallexample | ||
| 1021 | |||
| 1022 | Similarly, cyclic diary entries can interpolate the number of repetitions | ||
| 1023 | that have occurred: | ||
| 1024 | |||
| 1025 | @findex diary-cyclic | ||
| 1026 | @smallexample | ||
| 1027 | %%(diary-cyclic 50 1 1 1990) Renew medication (%d%s time) | ||
| 1028 | @end smallexample | ||
| 1029 | |||
| 1030 | @noindent | ||
| 1031 | looks like this: | ||
| 1032 | |||
| 1033 | @smallexample | ||
| 1034 | Renew medication (5th time) | ||
| 1035 | @end smallexample | ||
| 1036 | |||
| 1037 | @noindent | ||
| 1038 | in the fancy diary display on September 8, 1990. | ||
| 1039 | |||
| 1040 | There is an early reminder diary sexp that includes its entry in the | ||
| 1041 | diary not only on the date of occurrence, but also on earlier dates. | ||
| 1042 | For example, if you want a reminder a week before your anniversary, you | ||
| 1043 | can use | ||
| 1044 | |||
| 1045 | @findex diary-remind | ||
| 1046 | @smallexample | ||
| 1047 | %%(diary-remind '(diary-anniversary 12 22 1968) 7) Ed's anniversary | ||
| 1048 | @end smallexample | ||
| 1049 | |||
| 1050 | @noindent | ||
| 1051 | and the fancy diary will show | ||
| 1052 | @smallexample | ||
| 1053 | Ed's anniversary | ||
| 1054 | @end smallexample | ||
| 1055 | @noindent | ||
| 1056 | both on December 15 and on December 22. | ||
| 1057 | |||
| 1058 | @findex diary-date | ||
| 1059 | The function @code{diary-date} applies to dates described by a month, | ||
| 1060 | day, year combination, each of which can be an integer, a list of | ||
| 1061 | integers, or @code{t}. The value @code{t} means all values. For | ||
| 1062 | example, | ||
| 1063 | |||
| 1064 | @smallexample | ||
| 1065 | %%(diary-date '(10 11 12) 22 t) Rake leaves | ||
| 1066 | @end smallexample | ||
| 1067 | |||
| 1068 | @noindent | ||
| 1069 | causes the fancy diary to show | ||
| 1070 | |||
| 1071 | @smallexample | ||
| 1072 | Rake leaves | ||
| 1073 | @end smallexample | ||
| 1074 | |||
| 1075 | @noindent | ||
| 1076 | on October 22, November 22, and December 22 of every year. | ||
| 1077 | |||
| 1078 | @findex diary-float | ||
| 1079 | The function @code{diary-float} allows you to describe diary entries | ||
| 1080 | that apply to dates like the third Friday of November, or the last | ||
| 1081 | Tuesday in April. The parameters are the @var{month}, @var{dayname}, | ||
| 1082 | and an index @var{n}. The entry appears on the @var{n}th @var{dayname} | ||
| 1083 | of @var{month}, where @var{dayname}=0 means Sunday, 1 means Monday, and | ||
| 1084 | so on. If @var{n} is negative it counts backward from the end of | ||
| 1085 | @var{month}. The value of @var{month} can be a list of months, a single | ||
| 1086 | month, or @code{t} to specify all months. You can also use an optional | ||
| 1087 | parameter @var{day} to specify the @var{n}th @var{dayname} of | ||
| 1088 | @var{month} on or after/before @var{day}; the value of @var{day} defaults | ||
| 1089 | to 1 if @var{n} is positive and to the last day of @var{month} if | ||
| 1090 | @var{n} is negative. For example, | ||
| 1091 | |||
| 1092 | @smallexample | ||
| 1093 | %%(diary-float t 1 -1) Pay rent | ||
| 1094 | @end smallexample | ||
| 1095 | |||
| 1096 | @noindent | ||
| 1097 | causes the fancy diary to show | ||
| 1098 | |||
| 1099 | @smallexample | ||
| 1100 | Pay rent | ||
| 1101 | @end smallexample | ||
| 1102 | |||
| 1103 | @noindent | ||
| 1104 | on the last Monday of every month. | ||
| 1105 | |||
| 1106 | The generality of sexp diary entries lets you specify any diary | ||
| 1107 | entry that you can describe algorithmically. A sexp diary entry | ||
| 1108 | contains an expression that computes whether the entry applies to any | ||
| 1109 | given date. If its value is non-@code{nil}, the entry applies to that | ||
| 1110 | date; otherwise, it does not. The expression can use the variable | ||
| 1111 | @code{date} to find the date being considered; its value is a list | ||
| 1112 | (@var{month} @var{day} @var{year}) that refers to the Gregorian | ||
| 1113 | calendar. | ||
| 1114 | |||
| 1115 | The sexp diary entry applies to a date when the expression's value | ||
| 1116 | is non-@code{nil}, but some values have more specific meanings. If | ||
| 1117 | the value is a string, that string is a description of the event which | ||
| 1118 | occurs on that date. The value can also have the form | ||
| 1119 | @code{(@var{mark} . @var{string})}; then @var{mark} specifies how to | ||
| 1120 | mark the date in the calendar, and @var{string} is the description of | ||
| 1121 | the event. If @var{mark} is a single-character string, that character | ||
| 1122 | appears next to the date in the calendar. If @var{mark} is a face | ||
| 1123 | name, the date is displayed in that face. If @var{mark} is | ||
| 1124 | @code{nil}, that specifies no particular highlighting for the date. | ||
| 1125 | |||
| 1126 | Suppose you get paid on the 21st of the month if it is a weekday, and | ||
| 1127 | on the Friday before if the 21st is on a weekend. Here is how to write | ||
| 1128 | a sexp diary entry that matches those dates: | ||
| 1129 | |||
| 1130 | @smallexample | ||
| 1131 | &%%(let ((dayname (calendar-day-of-week date)) | ||
| 1132 | (day (car (cdr date)))) | ||
| 1133 | (or (and (= day 21) (memq dayname '(1 2 3 4 5))) | ||
| 1134 | (and (memq day '(19 20)) (= dayname 5))) | ||
| 1135 | ) Pay check deposited | ||
| 1136 | @end smallexample | ||
| 1137 | |||
| 1138 | The following sexp diary entries take advantage of the ability (in the fancy | ||
| 1139 | diary display) to concoct diary entries whose text varies based on the date: | ||
| 1140 | |||
| 1141 | @findex diary-sunrise-sunset | ||
| 1142 | @findex diary-phases-of-moon | ||
| 1143 | @findex diary-day-of-year | ||
| 1144 | @findex diary-iso-date | ||
| 1145 | @findex diary-julian-date | ||
| 1146 | @findex diary-astro-day-number | ||
| 1147 | @findex diary-hebrew-date | ||
| 1148 | @findex diary-islamic-date | ||
| 1149 | @findex diary-french-date | ||
| 1150 | @findex diary-mayan-date | ||
| 1151 | @table @code | ||
| 1152 | @item %%(diary-sunrise-sunset) | ||
| 1153 | Make a diary entry for the local times of today's sunrise and sunset. | ||
| 1154 | @item %%(diary-phases-of-moon) | ||
| 1155 | Make a diary entry for the phases (quarters) of the moon. | ||
| 1156 | @item %%(diary-day-of-year) | ||
| 1157 | Make a diary entry with today's day number in the current year and the number | ||
| 1158 | of days remaining in the current year. | ||
| 1159 | @item %%(diary-iso-date) | ||
| 1160 | Make a diary entry with today's equivalent ISO commercial date. | ||
| 1161 | @item %%(diary-julian-date) | ||
| 1162 | Make a diary entry with today's equivalent date on the Julian calendar. | ||
| 1163 | @item %%(diary-astro-day-number) | ||
| 1164 | Make a diary entry with today's equivalent astronomical (Julian) day number. | ||
| 1165 | @item %%(diary-hebrew-date) | ||
| 1166 | Make a diary entry with today's equivalent date on the Hebrew calendar. | ||
| 1167 | @item %%(diary-islamic-date) | ||
| 1168 | Make a diary entry with today's equivalent date on the Islamic calendar. | ||
| 1169 | @item %%(diary-french-date) | ||
| 1170 | Make a diary entry with today's equivalent date on the French Revolutionary | ||
| 1171 | calendar. | ||
| 1172 | @item %%(diary-mayan-date) | ||
| 1173 | Make a diary entry with today's equivalent date on the Mayan calendar. | ||
| 1174 | @end table | ||
| 1175 | |||
| 1176 | @noindent | ||
| 1177 | Thus including the diary entry | ||
| 1178 | |||
| 1179 | @example | ||
| 1180 | &%%(diary-hebrew-date) | ||
| 1181 | @end example | ||
| 1182 | |||
| 1183 | @noindent | ||
| 1184 | causes every day's diary display to contain the equivalent date on the | ||
| 1185 | Hebrew calendar, if you are using the fancy diary display. (With simple | ||
| 1186 | diary display, the line @samp{&%%(diary-hebrew-date)} appears in the | ||
| 1187 | diary for any date, but does nothing particularly useful.) | ||
| 1188 | |||
| 1189 | These functions can be used to construct sexp diary entries based on | ||
| 1190 | the Hebrew calendar in certain standard ways: | ||
| 1191 | |||
| 1192 | @cindex rosh hodesh | ||
| 1193 | @findex diary-rosh-hodesh | ||
| 1194 | @cindex parasha, weekly | ||
| 1195 | @findex diary-parasha | ||
| 1196 | @cindex candle lighting times | ||
| 1197 | @findex diary-sabbath-candles | ||
| 1198 | @cindex omer count | ||
| 1199 | @findex diary-omer | ||
| 1200 | @cindex yahrzeits | ||
| 1201 | @findex diary-yahrzeit | ||
| 1202 | @table @code | ||
| 1203 | @item %%(diary-rosh-hodesh) | ||
| 1204 | Make a diary entry that tells the occurrence and ritual announcement of each | ||
| 1205 | new Hebrew month. | ||
| 1206 | @item %%(diary-parasha) | ||
| 1207 | Make a Saturday diary entry that tells the weekly synagogue scripture reading. | ||
| 1208 | @item %%(diary-sabbath-candles) | ||
| 1209 | Make a Friday diary entry that tells the @emph{local time} of Sabbath | ||
| 1210 | candle lighting. | ||
| 1211 | @item %%(diary-omer) | ||
| 1212 | Make a diary entry that gives the omer count, when appropriate. | ||
| 1213 | @item %%(diary-yahrzeit @var{month} @var{day} @var{year}) @var{name} | ||
| 1214 | Make a diary entry marking the anniversary of a date of death. The date | ||
| 1215 | is the @emph{Gregorian} (civil) date of death. The diary entry appears | ||
| 1216 | on the proper Hebrew calendar anniversary and on the day before. (In | ||
| 1217 | the European style, the order of the parameters is changed to @var{day}, | ||
| 1218 | @var{month}, @var{year}.) | ||
| 1219 | @end table | ||
| 1220 | |||
| 1221 | All the functions documented above take an optional argument | ||
| 1222 | @var{mark} which specifies how to mark the date in the calendar display. | ||
| 1223 | If one of these functions decides that it applies to a certain date, | ||
| 1224 | it returns a value that contains @var{mark}. | ||
| 1225 | |||
| 1226 | |||
| 310 | @node Index | 1227 | @node Index |
| 311 | @unnumbered Index | 1228 | @unnumbered Index |
| 312 | 1229 | ||
diff --git a/man/emacs.texi b/man/emacs.texi index a619448a8ba..0ad3a5148c9 100644 --- a/man/emacs.texi +++ b/man/emacs.texi | |||
| @@ -224,11 +224,13 @@ Recovery from Problems | |||
| 224 | * Contributing:: How to contribute improvements to Emacs. | 224 | * Contributing:: How to contribute improvements to Emacs. |
| 225 | * Service:: How to get help for your own Emacs needs. | 225 | * Service:: How to get help for your own Emacs needs. |
| 226 | 226 | ||
| 227 | |||
| 228 | Detailed Node Listing | ||
| 229 | --------------------- | ||
| 230 | |||
| 227 | Here are some other nodes which are really inferiors of the ones | 231 | Here are some other nodes which are really inferiors of the ones |
| 228 | already listed, mentioned here so you can get to them in one step: | 232 | already listed, mentioned here so you can get to them in one step: |
| 229 | 233 | ||
| 230 | --- The Detailed Node Listing --- | ||
| 231 | |||
| 232 | The Organization of the Screen | 234 | The Organization of the Screen |
| 233 | 235 | ||
| 234 | * Point:: The place in the text where editing commands operate. | 236 | * Point:: The place in the text where editing commands operate. |
| @@ -563,6 +565,8 @@ Compiling and Testing Programs | |||
| 563 | * Compilation Mode:: The mode for visiting compiler errors. | 565 | * Compilation Mode:: The mode for visiting compiler errors. |
| 564 | * Compilation Shell:: Customizing your shell properly | 566 | * Compilation Shell:: Customizing your shell properly |
| 565 | for use in the compilation buffer. | 567 | for use in the compilation buffer. |
| 568 | * Grep Searching:: Searching with grep. | ||
| 569 | * Flymake:: Finding syntax errors on the fly. | ||
| 566 | * Debuggers:: Running symbolic debuggers for non-Lisp programs. | 570 | * Debuggers:: Running symbolic debuggers for non-Lisp programs. |
| 567 | * Executing Lisp:: Various modes for editing Lisp programs, | 571 | * Executing Lisp:: Various modes for editing Lisp programs, |
| 568 | with different facilities for running | 572 | with different facilities for running |
| @@ -676,6 +680,9 @@ Dired, the Directory Editor | |||
| 676 | * Hiding Subdirectories:: Making subdirectories visible or invisible. | 680 | * Hiding Subdirectories:: Making subdirectories visible or invisible. |
| 677 | * Dired Updating:: Discarding lines for files of no interest. | 681 | * Dired Updating:: Discarding lines for files of no interest. |
| 678 | * Dired and Find:: Using `find' to choose the files for Dired. | 682 | * Dired and Find:: Using `find' to choose the files for Dired. |
| 683 | * Dired and Find:: Using `find' to choose the files for Dired. | ||
| 684 | * Wdired:: Operating on files by editing the Dired buffer. | ||
| 685 | * Misc Dired Features:: Various other features. | ||
| 679 | 686 | ||
| 680 | The Calendar and the Diary | 687 | The Calendar and the Diary |
| 681 | 688 | ||
| @@ -709,7 +716,7 @@ Conversion To and From Other Calendars | |||
| 709 | 716 | ||
| 710 | The Diary | 717 | The Diary |
| 711 | 718 | ||
| 712 | * Diary Commands:: Viewing diary entries and associated calendar dates. | 719 | * Displaying the Diary:: Viewing diary entries and associated calendar dates. |
| 713 | * Format of Diary File:: Entering events in your diary. | 720 | * Format of Diary File:: Entering events in your diary. |
| 714 | * Date Formats:: Various ways you can specify dates. | 721 | * Date Formats:: Various ways you can specify dates. |
| 715 | * Adding to Diary:: Commands to create diary entries. | 722 | * Adding to Diary:: Commands to create diary entries. |
diff --git a/man/files.texi b/man/files.texi index 4e944f83afd..7ed2baa0b93 100644 --- a/man/files.texi +++ b/man/files.texi | |||
| @@ -238,13 +238,13 @@ or tool bar) use the toolkit's standard File Selection dialog instead | |||
| 238 | of prompting for the file name in the minibuffer. On Unix and | 238 | of prompting for the file name in the minibuffer. On Unix and |
| 239 | GNU/Linux platforms, Emacs does that when built with GTK, LessTif, and | 239 | GNU/Linux platforms, Emacs does that when built with GTK, LessTif, and |
| 240 | Motif toolkits; on MS-Windows, the GUI version does that by default. | 240 | Motif toolkits; on MS-Windows, the GUI version does that by default. |
| 241 | For information on how to customize this, see @xref{Dialog Boxes}. | 241 | For information on how to customize this, see @ref{Dialog Boxes}. |
| 242 | 242 | ||
| 243 | Secondly, Emacs supports the ``drag and drop'' protocol on the X | 243 | Secondly, Emacs supports the ``drag and drop'' protocol on the X |
| 244 | window system. Dropping a file into an ordinary Emacs window visits | 244 | window system. Dropping a file into an ordinary Emacs window visits |
| 245 | the file using that window. However, dropping a file into a window | 245 | the file using that window. However, dropping a file into a window |
| 246 | displaying a Dired buffer moves or copies the file into the displayed | 246 | displaying a Dired buffer moves or copies the file into the displayed |
| 247 | directory. For details, see @xref{Drag and Drop} and @xref{Misc Dired | 247 | directory. For details, see @ref{Drag and Drop}, @ref{Misc Dired |
| 248 | Features}. | 248 | Features}. |
| 249 | 249 | ||
| 250 | @cindex creating files | 250 | @cindex creating files |
| @@ -940,6 +940,15 @@ Auto-Revert Tail mode, @kbd{M-x auto-revert-tail-mode}. | |||
| 940 | for a changed file. Since checking a remote file is too slow, these | 940 | for a changed file. Since checking a remote file is too slow, these |
| 941 | modes do not check or revert remote files. | 941 | modes do not check or revert remote files. |
| 942 | 942 | ||
| 943 | @vindex auto-revert-check-vc-info | ||
| 944 | Whenever Auto Revert mode reverts the buffer, it updates the version | ||
| 945 | control information, such as the version control number displayed in | ||
| 946 | the mode line. However, this information may not be properly updated | ||
| 947 | if the version control state changes outside of Emacs---for example, | ||
| 948 | if a new version is checked in from outside the current Emacs session. | ||
| 949 | If you set @code{auto-revert-check-vc-info} to @code{t}, Auto Revert | ||
| 950 | mode will update the version control status information periodically. | ||
| 951 | |||
| 943 | @node Auto Save | 952 | @node Auto Save |
| 944 | @section Auto-Saving: Protection Against Disasters | 953 | @section Auto-Saving: Protection Against Disasters |
| 945 | @cindex Auto Save mode | 954 | @cindex Auto Save mode |
| @@ -1263,6 +1272,10 @@ as multiple branches, are not available with SCCS. You should use | |||
| 1263 | SCCS only if for some reason you cannot use RCS, or one of the | 1272 | SCCS only if for some reason you cannot use RCS, or one of the |
| 1264 | higher-level systems such as CVS or GNU Arch. | 1273 | higher-level systems such as CVS or GNU Arch. |
| 1265 | 1274 | ||
| 1275 | In the following, we discuss mainly RCS, SCCS and CVS. Nearly | ||
| 1276 | everything said about CVS applies to Gnu Arch, Subversion and Meta-CVS | ||
| 1277 | as well. | ||
| 1278 | |||
| 1266 | @node VC Concepts | 1279 | @node VC Concepts |
| 1267 | @subsubsection Concepts of Version Control | 1280 | @subsubsection Concepts of Version Control |
| 1268 | 1281 | ||
| @@ -1463,9 +1476,9 @@ informs you if another user has checked in changes in the same file | |||
| 1463 | since you began editing it, and when this happens, his changes will be | 1476 | since you began editing it, and when this happens, his changes will be |
| 1464 | effectively removed when you check in your version (though they will | 1477 | effectively removed when you check in your version (though they will |
| 1465 | remain in the master file, so they will not be entirely lost). You must | 1478 | remain in the master file, so they will not be entirely lost). You must |
| 1466 | therefore verify the current version is unchanged, before you check in your | 1479 | therefore verify that the current version is unchanged, before you |
| 1467 | changes. We hope to eliminate this risk and provide automatic merging | 1480 | check in your changes. We hope to eliminate this risk and provide |
| 1468 | with RCS in a future Emacs version. | 1481 | automatic merging with RCS in a future Emacs version. |
| 1469 | 1482 | ||
| 1470 | In addition, locking is possible with RCS even in this mode, although | 1483 | In addition, locking is possible with RCS even in this mode, although |
| 1471 | it is not required; @kbd{C-x v v} with an unmodified file locks the | 1484 | it is not required; @kbd{C-x v v} with an unmodified file locks the |
| @@ -1689,13 +1702,10 @@ there is more than one system in use for a directory, Emacs uses the one | |||
| 1689 | that appears first in @code{vc-handled-backends} (@pxref{Customizing VC}). | 1702 | that appears first in @code{vc-handled-backends} (@pxref{Customizing VC}). |
| 1690 | On the other hand, if there are no files already registered, | 1703 | On the other hand, if there are no files already registered, |
| 1691 | Emacs uses the first system from @code{vc-handled-backends} that could | 1704 | Emacs uses the first system from @code{vc-handled-backends} that could |
| 1692 | register the file---for example, you cannot register a file under CVS if | 1705 | register the file (for example, you cannot register a file under CVS if |
| 1693 | its directory is not already part of a CVS tree. | 1706 | its directory is not already part of a CVS tree); with the default |
| 1694 | 1707 | value of @code{vc-handled-backends}, this means that Emacs uses RCS in | |
| 1695 | With the default value of @code{vc-handled-backends}, this means | 1708 | this situation. |
| 1696 | that Emacs uses RCS if there are any files under RCS control, CVS if | ||
| 1697 | there are any files under CVS, SCCS if any files are under SCCS, or | ||
| 1698 | RCS as the ultimate default. | ||
| 1699 | 1709 | ||
| 1700 | If locking is in use, @kbd{C-x v i} leaves the file unlocked and | 1710 | If locking is in use, @kbd{C-x v i} leaves the file unlocked and |
| 1701 | read-only. Type @kbd{C-x v v} if you wish to start editing it. After | 1711 | read-only. Type @kbd{C-x v v} if you wish to start editing it. After |
| @@ -1883,7 +1893,8 @@ marked files, so that you can lock or check in several files at once. | |||
| 1883 | If it operates on more than one file, it handles each file according to | 1893 | If it operates on more than one file, it handles each file according to |
| 1884 | its current state; thus, it might lock one file, but check in another | 1894 | its current state; thus, it might lock one file, but check in another |
| 1885 | file. This could be confusing; it is up to you to avoid confusing | 1895 | file. This could be confusing; it is up to you to avoid confusing |
| 1886 | behavior by marking a set of files that are in a similar state. | 1896 | behavior by marking a set of files that are in a similar state. If no |
| 1897 | files are marked, @kbd{v v} operates on the file in the current line. | ||
| 1887 | 1898 | ||
| 1888 | If any files call for check-in, @kbd{v v} reads a single log entry, | 1899 | If any files call for check-in, @kbd{v v} reads a single log entry, |
| 1889 | then uses it for all the files being checked in. This is convenient for | 1900 | then uses it for all the files being checked in. This is convenient for |
| @@ -1911,8 +1922,7 @@ program in which you are gradually adding various unfinished new | |||
| 1911 | features. Each such independent line of development is called a | 1922 | features. Each such independent line of development is called a |
| 1912 | @dfn{branch}. VC allows you to create branches, switch between | 1923 | @dfn{branch}. VC allows you to create branches, switch between |
| 1913 | different branches, and merge changes from one branch to another. | 1924 | different branches, and merge changes from one branch to another. |
| 1914 | Please note, however, that branches are only supported for RCS at the | 1925 | Please note, however, that branches are not supported for SCCS. |
| 1915 | moment. | ||
| 1916 | 1926 | ||
| 1917 | A file's main line of development is usually called the @dfn{trunk}. | 1927 | A file's main line of development is usually called the @dfn{trunk}. |
| 1918 | The versions on the trunk are normally numbered 1.1, 1.2, 1.3, etc. At | 1928 | The versions on the trunk are normally numbered 1.1, 1.2, 1.3, etc. At |
| @@ -2255,7 +2265,8 @@ But if you do this, the revision numbers in the RCS master no longer | |||
| 2255 | correspond to those of CVS. Technically, this is not a problem, but | 2265 | correspond to those of CVS. Technically, this is not a problem, but |
| 2256 | it can become difficult to keep track of what is in the CVS repository | 2266 | it can become difficult to keep track of what is in the CVS repository |
| 2257 | and what is not. So we suggest that you return from time to time to | 2267 | and what is not. So we suggest that you return from time to time to |
| 2258 | CVS-only operation, using @kbd{C-u C-x v v cvs @key{RET}}. | 2268 | CVS-only operation, by committing your local changes back to the |
| 2269 | repository using @kbd{C-u C-x v v cvs @key{RET}}. | ||
| 2259 | 2270 | ||
| 2260 | @node Snapshots | 2271 | @node Snapshots |
| 2261 | @subsection Snapshots | 2272 | @subsection Snapshots |
| @@ -2543,13 +2554,11 @@ insert a suitable header string. | |||
| 2543 | Insert headers in a file for use with your version-control system. | 2554 | Insert headers in a file for use with your version-control system. |
| 2544 | @end table | 2555 | @end table |
| 2545 | 2556 | ||
| 2546 | @vindex vc-header-alist | 2557 | @vindex vc-@var{backend}-header |
| 2547 | The default header string is @samp{@w{$}Id$} for RCS and | 2558 | The default header string is @samp{@w{$}Id$} for RCS and |
| 2548 | @samp{@w{%}W%} for SCCS. You can specify other headers to insert by | 2559 | @samp{@w{%}W%} for SCCS. You can specify other headers to insert by |
| 2549 | setting the variable @code{vc-header-alist}. Its value is a list of | 2560 | setting the variables @code{vc-@var{backend}-header} where |
| 2550 | elements of the form @code{(@var{program} . @var{string})} where | 2561 | @var{backend} is @code{rcs} or @code{sccs}. |
| 2551 | @var{program} is @code{RCS} or @code{SCCS} and @var{string} is the | ||
| 2552 | string to use. | ||
| 2553 | 2562 | ||
| 2554 | Instead of a single string, you can specify a list of strings; then | 2563 | Instead of a single string, you can specify a list of strings; then |
| 2555 | each string in the list is inserted as a separate header on a line of | 2564 | each string in the list is inserted as a separate header on a line of |
| @@ -2577,8 +2586,8 @@ elements of the form @code{(@var{regexp} . @var{format})}. Whenever | |||
| 2577 | @var{regexp} matches the buffer name, @var{format} is inserted as part | 2586 | @var{regexp} matches the buffer name, @var{format} is inserted as part |
| 2578 | of the header. A header line is inserted for each element that matches | 2587 | of the header. A header line is inserted for each element that matches |
| 2579 | the buffer name, and for each string specified by | 2588 | the buffer name, and for each string specified by |
| 2580 | @code{vc-header-alist}. The header line is made by processing the | 2589 | @code{vc-@var{backend}-header}. The header line is made by processing the |
| 2581 | string from @code{vc-header-alist} with the format taken from the | 2590 | string from @code{vc-@var{backend}-header} with the format taken from the |
| 2582 | element. The default value for @code{vc-static-header-alist} is as follows: | 2591 | element. The default value for @code{vc-static-header-alist} is as follows: |
| 2583 | 2592 | ||
| 2584 | @example | 2593 | @example |
| @@ -2615,10 +2624,10 @@ headers. | |||
| 2615 | @vindex vc-handled-backends | 2624 | @vindex vc-handled-backends |
| 2616 | The variable @code{vc-handled-backends} determines which version | 2625 | The variable @code{vc-handled-backends} determines which version |
| 2617 | control systems VC should handle. The default value is @code{(RCS CVS | 2626 | control systems VC should handle. The default value is @code{(RCS CVS |
| 2618 | SCCS)}, so it contains all three version systems that are currently | 2627 | SVN SCCS Arch MCVS)}, so it contains all six version systems that are |
| 2619 | supported. If you want VC to ignore one or more of these systems, | 2628 | currently supported. If you want VC to ignore one or more of these |
| 2620 | exclude its name from the list. To disable VC entirely, set this | 2629 | systems, exclude its name from the list. To disable VC entirely, set |
| 2621 | variable to @code{nil}. | 2630 | this variable to @code{nil}. |
| 2622 | 2631 | ||
| 2623 | The order of systems in the list is significant: when you visit a file | 2632 | The order of systems in the list is significant: when you visit a file |
| 2624 | registered in more than one system (@pxref{Local Version Control}), | 2633 | registered in more than one system (@pxref{Local Version Control}), |
| @@ -2771,8 +2780,9 @@ pick up any recent changes from the repository first, using @kbd{C-x v m | |||
| 2771 | @key{RET}}, @pxref{Merging}). | 2780 | @key{RET}}, @pxref{Merging}). |
| 2772 | 2781 | ||
| 2773 | @vindex vc-cvs-global-switches | 2782 | @vindex vc-cvs-global-switches |
| 2774 | The variable @code{vc-cvs-global-switches} should be a string | 2783 | The variable @code{vc-cvs-global-switches}, if non-@code{nil}, |
| 2775 | specifying switches to pass to CVS for all CVS operations. | 2784 | should be a string specifying switches to pass to CVS for all CVS |
| 2785 | operations. | ||
| 2776 | 2786 | ||
| 2777 | When @code{vc-cvs-stay-local} is @code{t}, VC also makes local | 2787 | When @code{vc-cvs-stay-local} is @code{t}, VC also makes local |
| 2778 | version backups, so that simple diff and revert operations are | 2788 | version backups, so that simple diff and revert operations are |
| @@ -2891,7 +2901,7 @@ the command is finished. For more information about windows in Emacs, | |||
| 2891 | With a numeric argument, @code{compare-windows} ignores changes in | 2901 | With a numeric argument, @code{compare-windows} ignores changes in |
| 2892 | whitespace. If the variable @code{compare-ignore-case} is | 2902 | whitespace. If the variable @code{compare-ignore-case} is |
| 2893 | non-@code{nil}, the comparison ignores differences in case as well. | 2903 | non-@code{nil}, the comparison ignores differences in case as well. |
| 2894 | If the variable @code{compare-ignore-whitespace} is non-nil, | 2904 | If the variable @code{compare-ignore-whitespace} is non-@code{nil}, |
| 2895 | @code{compare-windows} normally ignores changes in whitespace, and a | 2905 | @code{compare-windows} normally ignores changes in whitespace, and a |
| 2896 | prefix argument turns that off. | 2906 | prefix argument turns that off. |
| 2897 | 2907 | ||
| @@ -3289,6 +3299,10 @@ Clear the cache; that is, remove all file names from it. | |||
| 3289 | @node File Conveniences | 3299 | @node File Conveniences |
| 3290 | @section Convenience Features for Finding Files | 3300 | @section Convenience Features for Finding Files |
| 3291 | 3301 | ||
| 3302 | In this section, we introduce some convenient facilities for finding | ||
| 3303 | recently-opened files, reading file names from a buffer, and viewing | ||
| 3304 | image files. | ||
| 3305 | |||
| 3292 | @findex recentf-mode | 3306 | @findex recentf-mode |
| 3293 | @vindex recentf-mode | 3307 | @vindex recentf-mode |
| 3294 | @findex recentf-save-list | 3308 | @findex recentf-save-list |
| @@ -3299,25 +3313,22 @@ opened files. @kbd{M-x recentf-save-list} saves the current | |||
| 3299 | @code{recent-file-list} to a file, and @kbd{M-x recentf-edit-list} | 3313 | @code{recent-file-list} to a file, and @kbd{M-x recentf-edit-list} |
| 3300 | edits it. | 3314 | edits it. |
| 3301 | 3315 | ||
| 3302 | @findex auto-image-file-mode | ||
| 3303 | @findex mode, auto-image-file | ||
| 3304 | @cindex images, visiting | ||
| 3305 | @cindex visiting image files | ||
| 3306 | @vindex image-file-name-regexps | ||
| 3307 | @vindex image-file-name-extensions | ||
| 3308 | When Auto-image-file minor mode is enabled, visiting an image file | ||
| 3309 | displays it as an image, not as text. Likewise, inserting an image | ||
| 3310 | file into a buffer inserts it as an image. This works only when Emacs | ||
| 3311 | can display the relevant image type. The variables | ||
| 3312 | @code{image-file-name-extensions} or @code{image-file-name-regexps} | ||
| 3313 | control which file names are recognized as containing images. | ||
| 3314 | |||
| 3315 | The @kbd{M-x ffap} command generalizes @code{find-file} with more | 3316 | The @kbd{M-x ffap} command generalizes @code{find-file} with more |
| 3316 | powerful heuristic defaults (@pxref{FFAP}), often based on the text at | 3317 | powerful heuristic defaults (@pxref{FFAP}), often based on the text at |
| 3317 | point. Partial Completion mode offers other features extending | 3318 | point. Partial Completion mode offers other features extending |
| 3318 | @code{find-file}, which can be used with @code{ffap}. | 3319 | @code{find-file}, which can be used with @code{ffap}. |
| 3319 | @xref{Completion Options}. | 3320 | @xref{Completion Options}. |
| 3320 | 3321 | ||
| 3322 | @findex thumbs-mode | ||
| 3323 | @findex mode, thumbs | ||
| 3324 | Thumbs mode is a major mode for viewing directories containing many | ||
| 3325 | image files. To use it, type @kbd{M-x thumbs} and specify the | ||
| 3326 | directory to view. The images in that directory will be displayed in | ||
| 3327 | a @samp{Thumbs} buffer as @dfn{thumbnails}; type @kbd{RET} on a | ||
| 3328 | thumbnail to view the full-size image. Thumbs mode requires the | ||
| 3329 | @file{convert} program, which is part of the ImageMagick software | ||
| 3330 | package. | ||
| 3331 | |||
| 3321 | @ignore | 3332 | @ignore |
| 3322 | arch-tag: 768d32cb-e15a-4cc1-b7bf-62c00ee12250 | 3333 | arch-tag: 768d32cb-e15a-4cc1-b7bf-62c00ee12250 |
| 3323 | @end ignore | 3334 | @end ignore |
diff --git a/man/frames.texi b/man/frames.texi index edbda679b46..dee29afe050 100644 --- a/man/frames.texi +++ b/man/frames.texi | |||
| @@ -83,6 +83,18 @@ in between the mouse command and @key{DELETE}, it does not do this. | |||
| 83 | Move point to where you click (@code{mouse-set-point}). | 83 | Move point to where you click (@code{mouse-set-point}). |
| 84 | This is normally the left button. | 84 | This is normally the left button. |
| 85 | 85 | ||
| 86 | @vindex x-mouse-click-focus-ignore-position | ||
| 87 | Normally, Emacs does not distinguish between ordinary mouse clicks and | ||
| 88 | clicks that select a frame. When you click on a frame to select it, | ||
| 89 | that also changes the selected window and cursor position according to | ||
| 90 | the mouse click position. On the X window system, you can change this | ||
| 91 | behavior by setting the variable | ||
| 92 | @code{x-mouse-click-focus-ignore-position} to @code{t}. Then the | ||
| 93 | first click selects the frame, but does not affect the selected window | ||
| 94 | or cursor position. If you click again in the same place, since that | ||
| 95 | click will be in the selected frame, it will change the window or | ||
| 96 | cursor position. | ||
| 97 | |||
| 86 | @item Drag-Mouse-1 | 98 | @item Drag-Mouse-1 |
| 87 | Set the region to the text you select by dragging, and copy it to the | 99 | Set the region to the text you select by dragging, and copy it to the |
| 88 | kill ring (@code{mouse-set-region}). You can specify both ends of the | 100 | kill ring (@code{mouse-set-region}). You can specify both ends of the |
| @@ -96,6 +108,10 @@ entirely on the screen. The number of lines scrolled per step depends | |||
| 96 | on how far away from the window edge the mouse has gone; the variable | 108 | on how far away from the window edge the mouse has gone; the variable |
| 97 | @code{mouse-scroll-min-lines} specifies a minimum step size. | 109 | @code{mouse-scroll-min-lines} specifies a minimum step size. |
| 98 | 110 | ||
| 111 | @vindex mouse-drag-copy-region | ||
| 112 | If the variable @code{mouse-drag-copy-region} is @code{nil}, this | ||
| 113 | mouse command does not copy the selected region into the kill ring. | ||
| 114 | |||
| 99 | @item Mouse-2 | 115 | @item Mouse-2 |
| 100 | Yank the last killed text, where you click (@code{mouse-yank-at-click}). | 116 | Yank the last killed text, where you click (@code{mouse-yank-at-click}). |
| 101 | This is normally the middle button. | 117 | This is normally the middle button. |
diff --git a/man/gnus-faq.texi b/man/gnus-faq.texi index 42266aa4646..742227b64fc 100644 --- a/man/gnus-faq.texi +++ b/man/gnus-faq.texi | |||
| @@ -1,210 +1,203 @@ | |||
| 1 | @c Insert "\input texinfo" at 1st line before texing this file alone. | 1 | @c \input texinfo @c -*-texinfo-*- |
| 2 | @c -*-texinfo-*- | 2 | @c Uncomment 1st line before texing this file alone. |
| 3 | @c Copyright (C) 1995, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. | 3 | @c %**start of header |
| 4 | @c Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. | ||
| 5 | @c | ||
| 6 | @c Do not modify this file, it was generated from gnus-faq.xml, available from | ||
| 7 | @c <URL:http://my.gnus.org/FAQ/>. | ||
| 8 | @c | ||
| 4 | @setfilename gnus-faq.info | 9 | @setfilename gnus-faq.info |
| 5 | 10 | @settitle Frequently Asked Questions | |
| 6 | @c Frequently Asked Questions, FAQ - Introduction, Emacs for Heathens, Top | 11 | @c %**end of header |
| 12 | @c | ||
| 7 | 13 | ||
| 8 | @node Frequently Asked Questions | 14 | @node Frequently Asked Questions |
| 9 | @comment node-name, next, previous, up | ||
| 10 | |||
| 11 | @c @chapter Frequently Asked Questions | ||
| 12 | @section Frequently Asked Questions | 15 | @section Frequently Asked Questions |
| 13 | @cindex FAQ | ||
| 14 | @cindex Frequently Asked Questions | ||
| 15 | |||
| 16 | @c - Uncomment @chapter, comment @section | ||
| 17 | @c - run (texinfo-every-node-update) | ||
| 18 | @c - revert it. | ||
| 19 | 16 | ||
| 20 | @menu | 17 | @menu |
| 21 | * FAQ - Introduction:: About Gnus and this FAQ. | 18 | * FAQ - Changes:: |
| 22 | * FAQ 1 - Installation:: Installation of Gnus. | 19 | * FAQ - Introduction:: About Gnus and this FAQ. |
| 23 | * FAQ 2 - Startup / Group buffer:: Start up questions and the first | 20 | * FAQ 1 - Installation FAQ:: Installation of Gnus. |
| 24 | buffer Gnus shows you. | 21 | * FAQ 2 - Startup / Group buffer:: Start up questions and the |
| 25 | * FAQ 3 - Getting messages:: Making Gnus read your mail and news. | 22 | first buffer Gnus shows you. |
| 26 | * FAQ 4 - Reading messages:: How to efficiently read messages. | 23 | * FAQ 3 - Getting Messages:: Making Gnus read your mail |
| 27 | * FAQ 5 - Composing messages:: Composing mails or Usenet postings. | 24 | and news. |
| 28 | * FAQ 6 - Old messages:: Importing, archiving, searching | 25 | * FAQ 4 - Reading messages:: How to efficiently read |
| 29 | and deleting messages. | 26 | messages. |
| 30 | * FAQ 7 - Gnus in a dial-up environment:: Reading mail and news while offline. | 27 | * FAQ 5 - Composing messages:: Composing mails or Usenet |
| 31 | * FAQ 8 - Getting help:: When this FAQ isn't enough. | 28 | postings. |
| 32 | * FAQ 9 - Tuning Gnus:: How to make Gnus faster. | 29 | * FAQ 6 - Old messages:: Importing, archiving, |
| 33 | * FAQ - Glossary:: Terms used in the FAQ explained. | 30 | searching and deleting messages. |
| 31 | * FAQ 7 - Gnus in a dial-up environment:: Reading mail and news while | ||
| 32 | offline. | ||
| 33 | * FAQ 8 - Getting help:: When this FAQ isn't enough. | ||
| 34 | * FAQ 9 - Tuning Gnus:: How to make Gnus faster. | ||
| 35 | * FAQ - Glossary:: Terms used in the FAQ | ||
| 36 | explained. | ||
| 34 | @end menu | 37 | @end menu |
| 35 | 38 | ||
| 36 | |||
| 37 | @subheading Abstract | 39 | @subheading Abstract |
| 38 | 40 | ||
| 39 | This is the new Gnus Frequently Asked Questions list. If you have a | 41 | This is the new Gnus Frequently Asked Questions list. |
| 40 | Web browser, the official hypertext version is at | 42 | If you have a Web browser, the official hypertext version is at |
| 41 | @uref{http://my.gnus.org/FAQ/}, the Docbook source is available from | 43 | @uref{http://my.gnus.org/FAQ/}, |
| 42 | @uref{http://sourceforge.net/projects/gnus/}. | 44 | the Docbook source is available from |
| 43 | 45 | @uref{http://sourceforge.net/projects/gnus/, http://sourceforge.net}. | |
| 44 | 46 | ||
| 45 | Please submit features and suggestions to the | 47 | Please submit features and suggestions to the |
| 46 | @email{faq-discuss@@my.gnus.org,FAQ discussion list}. | 48 | @email{faq-discuss@@my.gnus.org, FAQ discussion list}. |
| 47 | The list is protected against junk mail with | 49 | The list is protected against junk mail with |
| 48 | @uref{http://smarden.org/qconfirm/index.html,qconfirm, qconfirm}. As | 50 | @uref{http://smarden.org/qconfirm/index.html, qconfirm}. As |
| 49 | a subscriber, your submissions will automatically pass. You can | 51 | a subscriber, your submissions will automatically pass. You can |
| 50 | also subscribe to the list by sending a blank email to | 52 | also subscribe to the list by sending a blank email to |
| 51 | @email{faq-discuss-subscribe@@my.gnus.org} | 53 | @email{faq-discuss-subscribe@@my.gnus.org, faq-discuss-subscribe@@my.gnus.org} |
| 52 | and | 54 | and @uref{http://mail1.kens.com/cgi-bin/ezmlm-browse?command=monthbythread%26list=faq-discuss, browse |
| 53 | @uref{http://mail1.kens.com/cgi-bin/ezmlm-browse?command=monthbythread%26list=faq-discuss,browse | 55 | the archive}. |
| 54 | the archive, browse the archive}. | ||
| 55 | |||
| 56 | @node FAQ - Introduction, FAQ 1 - Installation, Frequently Asked Questions, Frequently Asked Questions | ||
| 57 | @comment node-name, next, previous, up | ||
| 58 | @heading Introduction | ||
| 59 | 56 | ||
| 60 | This is the Gnus Frequently Asked Questions list. | 57 | @node FAQ - Changes |
| 58 | @subheading Changes | ||
| 61 | 59 | ||
| 62 | Gnus is a Usenet Newsreader and Electronic Mail User Agent implemented | ||
| 63 | as a part of Emacs. It's been around in some form for almost a decade | ||
| 64 | now, and has been distributed as a standard part of Emacs for much of | ||
| 65 | that time. Gnus 5 is the latest (and greatest) incarnation. The | ||
| 66 | original version was called GNUS, and was written by Masanobu UMEDA. | ||
| 67 | When autumn crept up in '94, Lars Magne Ingebrigtsen grew bored and | ||
| 68 | decided to rewrite Gnus. | ||
| 69 | |||
| 70 | Its biggest strength is the fact that it is extremely | ||
| 71 | customizable. It is somewhat intimidating at first glance, but | ||
| 72 | most of the complexity can be ignored until you're ready to take | ||
| 73 | advantage of it. If you receive a reasonable volume of e-mail | ||
| 74 | (you're on various mailing lists), or you would like to read | ||
| 75 | high-volume mailing lists but cannot keep up with them, or read | ||
| 76 | high volume newsgroups or are just bored, then Gnus is what you | ||
| 77 | want. | ||
| 78 | |||
| 79 | This FAQ was maintained by Justin Sheehy until March 2002. He | ||
| 80 | would like to thank Steve Baur and Per Abrahamsen for doing a wonderful | ||
| 81 | job with this FAQ before him. We would like to do the same - thanks, | ||
| 82 | Justin! | ||
| 83 | |||
| 84 | 60 | ||
| 85 | If you have a Web browser, the official hypertext version is at:@* | ||
| 86 | @uref{http://my.gnus.org/FAQ/}. | ||
| 87 | This version is much nicer than the unofficial hypertext | ||
| 88 | versions that are archived at Utrecht, Oxford, Smart Pages, Ohio | ||
| 89 | State, and other FAQ archives. See the resources question below | ||
| 90 | if you want information on obtaining it in another format. | ||
| 91 | |||
| 92 | 61 | ||
| 93 | The information contained here was compiled with the assistance | 62 | @itemize @bullet |
| 94 | of the Gnus development mailing list, and any errors or | 63 | |
| 95 | misprints are the my.gnus.org team's fault, sorry. | 64 | @item |
| 65 | Updated FAQ to reflect release of Gnus 5.10 and start of | ||
| 66 | No Gnus development. | ||
| 67 | @end itemize | ||
| 96 | 68 | ||
| 69 | @node FAQ - Introduction | ||
| 70 | @subheading Introduction | ||
| 71 | |||
| 72 | This is the Gnus Frequently Asked Questions list. | ||
| 97 | 73 | ||
| 98 | @ifnottex | 74 | Gnus is a Usenet Newsreader and Electronic Mail User Agent implemented |
| 99 | @node FAQ 1 - Installation, FAQ 2 - Startup / Group buffer, FAQ - Introduction, Frequently Asked Questions | 75 | as a part of Emacs. It's been around in some form for almost a decade |
| 100 | @end ifnottex | 76 | now, and has been distributed as a standard part of Emacs for much of |
| 101 | @subsection Installation | 77 | that time. Gnus 5 is the latest (and greatest) incarnation. The |
| 78 | original version was called GNUS, and was written by Masanobu UMEDA. | ||
| 79 | When autumn crept up in '94, Lars Magne Ingebrigtsen grew bored and | ||
| 80 | decided to rewrite Gnus. | ||
| 81 | |||
| 82 | Its biggest strength is the fact that it is extremely | ||
| 83 | customizable. It is somewhat intimidating at first glance, but | ||
| 84 | most of the complexity can be ignored until you're ready to take | ||
| 85 | advantage of it. If you receive a reasonable volume of e-mail | ||
| 86 | (you're on various mailing lists), or you would like to read | ||
| 87 | high-volume mailing lists but cannot keep up with them, or read | ||
| 88 | high volume newsgroups or are just bored, then Gnus is what you | ||
| 89 | want. | ||
| 90 | |||
| 91 | This FAQ was maintained by Justin Sheehy until March 2002. He | ||
| 92 | would like to thank Steve Baur and Per Abrahamsen for doing a wonderful | ||
| 93 | job with this FAQ before him. We would like to do the same - thanks, | ||
| 94 | Justin! | ||
| 95 | |||
| 96 | If you have a Web browser, the official hypertext version is at: | ||
| 97 | @uref{http://my.gnus.org/FAQ/}. | ||
| 98 | This version is much nicer than the unofficial hypertext | ||
| 99 | versions that are archived at Utrecht, Oxford, Smart Pages, Ohio | ||
| 100 | State, and other FAQ archives. See the resources question below | ||
| 101 | if you want information on obtaining it in another format. | ||
| 102 | |||
| 103 | The information contained here was compiled with the assistance | ||
| 104 | of the Gnus development mailing list, and any errors or | ||
| 105 | misprints are the my.gnus.org team's fault, sorry. | ||
| 106 | |||
| 107 | @node FAQ 1 - Installation FAQ | ||
| 108 | @subsection Installation FAQ | ||
| 102 | 109 | ||
| 103 | @menu | 110 | @menu |
| 104 | * [1.1]:: What is the latest version of Gnus? | 111 | * [1.1]:: What is the latest version of Gnus? |
| 105 | * [1.2]:: What's new in 5.10? | 112 | * [1.2]:: What's new in 5.10? |
| 106 | * [1.3]:: Where and how to get Gnus? | 113 | * [1.3]:: Where and how to get Gnus? |
| 107 | * [1.4]:: What to do with the tarball now? | 114 | * [1.4]:: What to do with the tarball now? |
| 108 | * [1.5]:: Which version of Emacs do I need? | 115 | * [1.5]:: I sometimes read references to No Gnus and Oort Gnus, what |
| 109 | * [1.6]:: How do I run Gnus on both Emacs and XEmacs? | 116 | are those? |
| 117 | * [1.6]:: Which version of Emacs do I need? | ||
| 118 | * [1.7]:: How do I run Gnus on both Emacs and XEmacs? | ||
| 110 | @end menu | 119 | @end menu |
| 111 | 120 | ||
| 112 | 121 | @node [1.1] | |
| 113 | @ifnottex | 122 | @subsubheading Question 1.1 |
| 114 | @node [1.1], [1.2], FAQ 1 - Installation, FAQ 1 - Installation | ||
| 115 | @end ifnottex | ||
| 116 | @subsubheading Question 1.1: | ||
| 117 | 123 | ||
| 118 | What is the latest version of Gnus? | 124 | What is the latest version of Gnus? |
| 119 | 125 | ||
| 120 | Answer: | 126 | @subsubheading Answer |
| 121 | 127 | ||
| 122 | Jingle please: Gnus 5.10 is released, get it while it's | 128 | Jingle please: Gnus 5.10 is released, get it while it's |
| 123 | hot! As well as the step in version number is rather | 129 | hot! As well as the step in version number is rather |
| 124 | small, Gnus 5.10 has tons of new features which you | 130 | small, Gnus 5.10 has tons of new features which you |
| 125 | shouldn't miss, however if you are cautious, you might | 131 | shouldn't miss. The current release (5.10.6) should be at |
| 126 | prefer to stay with 5.8.8 respectively 5.9 (they are | 132 | least as stable as the latest release of the 5.8 series. |
| 127 | basically the same) until some bugfix releases are out. | ||
| 128 | |||
| 129 | @ifnottex | ||
| 130 | @node [1.2], [1.3], [1.1], FAQ 1 - Installation | ||
| 131 | @end ifnottex | ||
| 132 | @subsubheading Question 1.2: | ||
| 133 | 133 | ||
| 134 | What's new in 5.10? | 134 | @node [1.2] |
| 135 | @subsubheading Question 1.2 | ||
| 135 | 136 | ||
| 136 | Answer: | 137 | What's new in 5.10? |
| 137 | 138 | ||
| 138 | First of all, you should have a look into the file | 139 | @subsubheading Answer |
| 139 | GNUS-NEWS in the toplevel directory of the Gnus tarball, | ||
| 140 | there the most important changes are listed. Here's a | ||
| 141 | short list of the changes I find especially | ||
| 142 | important/interesting: | ||
| 143 | |||
| 144 | 140 | ||
| 145 | 141 | First of all, you should have a look into the file | |
| 142 | GNUS-NEWS in the toplevel directory of the Gnus tarball, | ||
| 143 | there the most important changes are listed. Here's a | ||
| 144 | short list of the changes I find especially | ||
| 145 | important/interesting: | ||
| 146 | 146 | ||
| 147 | @itemize @bullet{} | 147 | @itemize @bullet |
| 148 | 148 | ||
| 149 | @item | 149 | @item |
| 150 | Major rewrite of the Gnus agent, Gnus agent is now | 150 | Major rewrite of the Gnus agent, Gnus agent is now |
| 151 | active by default. | 151 | active by default. |
| 152 | 152 | ||
| 153 | @item | 153 | @item |
| 154 | Many new article washing functions for dealing with | 154 | Many new article washing functions for dealing with |
| 155 | ugly formatted articles. | 155 | ugly formatted articles. |
| 156 | 156 | ||
| 157 | @item | 157 | @item |
| 158 | Anti Spam features. | 158 | Anti Spam features. |
| 159 | 159 | ||
| 160 | @item | 160 | @item |
| 161 | message-utils now included in Gnus. | 161 | Message-utils now included in Gnus. |
| 162 | 162 | ||
| 163 | @item | 163 | @item |
| 164 | New format specifiers for summary lines, e.g. %B for | 164 | New format specifiers for summary lines, e.g. %B for |
| 165 | a complex trn-style thread tree. | 165 | a complex trn-style thread tree. |
| 166 | |||
| 167 | @end itemize | 166 | @end itemize |
| 168 | 167 | ||
| 169 | @ifnottex | 168 | @node [1.3] |
| 170 | @node [1.3], [1.4], [1.2], FAQ 1 - Installation | 169 | @subsubheading Question 1.3 |
| 171 | @end ifnottex | ||
| 172 | @subsubheading Question 1.3: | ||
| 173 | 170 | ||
| 174 | Where and how to get Gnus? | 171 | Where and how to get Gnus? |
| 175 | 172 | ||
| 176 | Answer: | 173 | @subsubheading Answer |
| 177 | 174 | ||
| 178 | The latest released version of Gnus isn't included in | 175 | The latest released version of Gnus isn't included in |
| 179 | Emacs 21 and until now it also isn't available through the | 176 | Emacs 21, therefor you should get the Gnus tarball from |
| 180 | package system of XEmacs 21.4, therefor you should get the | 177 | @uref{http://www.gnus.org/dist/gnus.tar.gz} |
| 181 | Gnus tarball from | 178 | or via anonymous FTP from |
| 182 | @uref{http://www.gnus.org/dist/gnus.tar.gz} | 179 | @uref{ftp://ftp.gnus.org/pub/gnus/gnus.tar.gz}. |
| 183 | or via anonymous FTP from | 180 | If you use XEmacs instead of Emacs you can use XEmacs' |
| 184 | @uref{ftp://ftp.gnus.org/pub/gnus/gnus.tar.gz}. | 181 | package system instead. |
| 185 | |||
| 186 | @ifnottex | ||
| 187 | @node [1.4], [1.5], [1.3], FAQ 1 - Installation | ||
| 188 | @end ifnottex | ||
| 189 | @subsubheading Question 1.4: | ||
| 190 | 182 | ||
| 191 | What to do with the tarball now? | 183 | @node [1.4] |
| 192 | 184 | @subsubheading Question 1.4 | |
| 193 | 185 | ||
| 194 | Answer: | 186 | What to do with the tarball now? |
| 195 | 187 | ||
| 196 | Untar it via @samp{tar xvzf gnus.tar.gz} and do the common | 188 | @subsubheading Answer |
| 197 | @samp{./configure; make; make install} circle. | 189 | |
| 198 | (under MS-Windows either get the Cygwin environment from | 190 | Untar it via @samp{tar xvzf gnus.tar.gz} and do the common |
| 199 | @uref{http://www.cygwin.com} | 191 | @samp{./configure; make; make install} circle. |
| 200 | which allows you to do what's described above or unpack the | 192 | (under MS-Windows either get the Cygwin environment from |
| 201 | tarball with some packer (e.g. Winace from | 193 | @uref{http://www.cygwin.com} |
| 202 | @uref{http://www.winace.com}) | 194 | which allows you to do what's described above or unpack the |
| 203 | and use the batch-file make.bat included in the tarball to install | 195 | tarball with some packer (e.g. Winace from |
| 204 | Gnus. If you don't want to (or aren't allowed to) install Gnus | 196 | @uref{http://www.winace.com}) |
| 205 | system-wide, you can install it in your home directory and add the | 197 | and use the batch-file make.bat included in the tarball to install |
| 206 | following lines to your ~/.xemacs/init.el or ~/.emacs: | 198 | Gnus.) If you don't want to (or aren't allowed to) install Gnus |
| 207 | 199 | system-wide, you can install it in your home directory and add the | |
| 200 | following lines to your ~/.xemacs/init.el or ~/.emacs: | ||
| 208 | 201 | ||
| 209 | @example | 202 | @example |
| 210 | (add-to-list 'load-path "/path/to/gnus/lisp") | 203 | (add-to-list 'load-path "/path/to/gnus/lisp") |
| @@ -212,436 +205,395 @@ Answer: | |||
| 212 | (add-to-list 'Info-directory-list "/path/to/gnus/texi/") | 205 | (add-to-list 'Info-directory-list "/path/to/gnus/texi/") |
| 213 | (add-to-list 'Info-default-directory-list "/path/to/gnus/texi/")) | 206 | (add-to-list 'Info-default-directory-list "/path/to/gnus/texi/")) |
| 214 | @end example | 207 | @end example |
| 215 | |||
| 216 | @noindent | 208 | @noindent |
| 217 | Make sure that you don't have any Gnus related stuff | 209 | |
| 218 | before this line, on MS Windows use something like | 210 | Make sure that you don't have any Gnus related stuff |
| 219 | "C:/path/to/lisp" (yes, "/"). | 211 | before this line, on MS Windows use something like |
| 220 | 212 | "C:/path/to/lisp" (yes, "/"). | |
| 221 | @ifnottex | 213 | |
| 222 | @node [1.5], [1.6], [1.4], FAQ 1 - Installation | 214 | @node [1.5] |
| 223 | @end ifnottex | 215 | @subsubheading Question 1.5 |
| 224 | @subsubheading Question 1.5: | 216 | |
| 217 | I sometimes read references to No Gnus and Oort Gnus, | ||
| 218 | what are those? | ||
| 219 | |||
| 220 | @subsubheading Answer | ||
| 221 | |||
| 222 | Oort Gnus was the name of the development version of | ||
| 223 | Gnus, which became Gnus 5.10 in autumn 2003. No Gnus is | ||
| 224 | the name of the current development version which will | ||
| 225 | once become Gnus 5.12 or Gnus 6. (If you're wondering why | ||
| 226 | not 5.11, the odd version numbers are normally used for | ||
| 227 | the Gnus versions bundled with Emacs) | ||
| 228 | |||
| 229 | @node [1.6] | ||
| 230 | @subsubheading Question 1.6 | ||
| 225 | 231 | ||
| 226 | Which version of Emacs do I need? | 232 | Which version of Emacs do I need? |
| 227 | 233 | ||
| 228 | Answer: | 234 | @subsubheading Answer |
| 229 | 235 | ||
| 230 | Gnus 5.10 requires an Emacs version that is greater | 236 | Gnus 5.10 requires an Emacs version that is greater |
| 231 | than or equal to Emacs 20.7 or XEmacs 21.1. | 237 | than or equal to Emacs 20.7 or XEmacs 21.1. The |
| 232 | 238 | development versions of Gnus (aka No Gnus) require Emacs | |
| 233 | @ifnottex | 239 | 21 or XEmacs 21.4. |
| 234 | @node [1.6], , [1.5], FAQ 1 - Installation | 240 | |
| 235 | @end ifnottex | 241 | @node [1.7] |
| 236 | @subsubheading Question 1.6: | 242 | @subsubheading Question 1.7 |
| 237 | 243 | ||
| 238 | How do I run Gnus on both Emacs and XEmacs? | 244 | How do I run Gnus on both Emacs and XEmacs? |
| 239 | 245 | ||
| 240 | Answer: | 246 | @subsubheading Answer |
| 241 | 247 | ||
| 242 | You can't use the same copy of Gnus in both as the Lisp | 248 | You can't use the same copy of Gnus in both as the Lisp |
| 243 | files are byte-compiled to a format which is different | 249 | files are byte-compiled to a format which is different |
| 244 | depending on which Emacs did the compilation. Get one copy | 250 | depending on which Emacs did the compilation. Get one copy |
| 245 | of Gnus for Emacs and one for XEmacs. | 251 | of Gnus for Emacs and one for XEmacs. |
| 246 | 252 | ||
| 247 | @ifnottex | 253 | @node FAQ 2 - Startup / Group buffer |
| 248 | @node FAQ 2 - Startup / Group buffer, FAQ 3 - Getting messages, FAQ 1 - Installation, Frequently Asked Questions | ||
| 249 | @end ifnottex | ||
| 250 | @subsection Startup / Group buffer | 254 | @subsection Startup / Group buffer |
| 251 | 255 | ||
| 252 | @menu | 256 | @menu |
| 253 | * [2.1]:: Every time I start Gnus I get a message | 257 | * [2.1]:: Every time I start Gnus I get a message "Gnus auto-save |
| 254 | "Gnus auto-save file exists. Do you want to read it?", | 258 | file exists. Do you want to read it?", what does this mean and |
| 255 | what does this mean and how to prevent it? | 259 | how to prevent it? |
| 256 | * [2.2]:: Gnus doesn't remember which groups I'm subscribed to, what's this? | 260 | * [2.2]:: Gnus doesn't remember which groups I'm subscribed to, |
| 257 | * [2.3]:: How to change the format of the lines in Group buffer? | 261 | what's this? |
| 258 | * [2.4]:: My group buffer becomes a bit crowded, is there a way to sort my | 262 | * [2.3]:: How to change the format of the lines in Group buffer? |
| 259 | groups into categories so I can easier browse through them? | 263 | * [2.4]:: My group buffer becomes a bit crowded, is there a way to |
| 260 | * [2.5]:: How to manually sort the groups in Group buffer? How to sort the | 264 | sort my groups into categories so I can easier browse through |
| 261 | groups in a topic? | 265 | them? |
| 266 | * [2.5]:: How to manually sort the groups in Group buffer? How to | ||
| 267 | sort the groups in a topic? | ||
| 262 | @end menu | 268 | @end menu |
| 263 | 269 | ||
| 264 | @ifnottex | 270 | @node [2.1] |
| 265 | @node [2.1], [2.2], FAQ 2 - Startup / Group buffer, FAQ 2 - Startup / Group buffer | 271 | @subsubheading Question 2.1 |
| 266 | @end ifnottex | ||
| 267 | @subsubheading Question 2.1: | ||
| 268 | 272 | ||
| 269 | Every time I start Gnus I get a message "Gnus auto-save | 273 | Every time I start Gnus I get a message "Gnus auto-save |
| 270 | file exists. Do you want to read it?", what does this mean | 274 | file exists. Do you want to read it?", what does this mean |
| 271 | and how to prevent it? | 275 | and how to prevent it? |
| 272 | |||
| 273 | 276 | ||
| 274 | Answer: | 277 | @subsubheading Answer |
| 275 | 278 | ||
| 276 | This message means that the last time you used Gnus, it | 279 | This message means that the last time you used Gnus, it |
| 277 | wasn't properly exited and therefor couldn't write its | 280 | wasn't properly exited and therefor couldn't write its |
| 278 | informations to disk (e.g. which messages you read), you | 281 | informations to disk (e.g. which messages you read), you |
| 279 | are now asked if you want to restore those informations | 282 | are now asked if you want to restore those informations |
| 280 | from the auto-save file. | 283 | from the auto-save file. |
| 281 | |||
| 282 | 284 | ||
| 283 | To prevent this message make sure you exit Gnus | 285 | To prevent this message make sure you exit Gnus |
| 284 | via @samp{q} in group buffer instead of | 286 | via @samp{q} in group buffer instead of |
| 285 | just killing Emacs. | 287 | just killing Emacs. |
| 286 | |||
| 287 | @ifnottex | ||
| 288 | @node [2.2], [2.3], [2.1], FAQ 2 - Startup / Group buffer | ||
| 289 | @end ifnottex | ||
| 290 | @subsubheading Question: 2.2 | ||
| 291 | 288 | ||
| 292 | Gnus doesn't remember which groups I'm subscribed to, | 289 | @node [2.2] |
| 293 | what's this? | 290 | @subsubheading Question 2.2 |
| 294 | |||
| 295 | 291 | ||
| 296 | Answer: | 292 | Gnus doesn't remember which groups I'm subscribed to, |
| 293 | what's this? | ||
| 297 | 294 | ||
| 298 | You get the message described in the q/a pair above while | 295 | @subsubheading Answer |
| 299 | starting Gnus, right? It's an other symptom for the same | ||
| 300 | problem, so read the answer above. | ||
| 301 | |||
| 302 | @ifnottex | ||
| 303 | @node [2.3], [2.4], [2.2], FAQ 2 - Startup / Group buffer | ||
| 304 | @end ifnottex | ||
| 305 | @subsubheading Question 2.3: | ||
| 306 | 296 | ||
| 307 | How to change the format of the lines in Group buffer? | 297 | You get the message described in the q/a pair above while |
| 308 | 298 | starting Gnus, right? It's an other symptom for the same | |
| 299 | problem, so read the answer above. | ||
| 309 | 300 | ||
| 310 | Answer: | 301 | @node [2.3] |
| 302 | @subsubheading Question 2.3 | ||
| 311 | 303 | ||
| 312 | You've got to tweak the value of the variable | 304 | How to change the format of the lines in Group buffer? |
| 313 | gnus-group-line-format. See the manual node "Group Line | ||
| 314 | Specification" for information on how to do this. An | ||
| 315 | example for this (guess from whose .gnus :-)): | ||
| 316 | |||
| 317 | 305 | ||
| 318 | @example | 306 | @subsubheading Answer |
| 319 | 307 | ||
| 308 | You've got to tweak the value of the variable | ||
| 309 | gnus-group-line-format. See the manual node "Group Line | ||
| 310 | Specification" for information on how to do this. An | ||
| 311 | example for this (guess from whose .gnus :-)): | ||
| 312 | |||
| 313 | @example | ||
| 320 | (setq gnus-group-line-format "%P%M%S[%5t]%5y : %(%g%)\n") | 314 | (setq gnus-group-line-format "%P%M%S[%5t]%5y : %(%g%)\n") |
| 321 | |||
| 322 | @end example | 315 | @end example |
| 323 | 316 | @noindent | |
| 324 | @ifnottex | ||
| 325 | @node [2.4], [2.5], [2.3], FAQ 2 - Startup / Group buffer | ||
| 326 | @end ifnottex | ||
| 327 | @subsubheading Question 2.4: | ||
| 328 | |||
| 329 | My group buffer becomes a bit crowded, is there a way to | ||
| 330 | sort my groups into categories so I can easier browse | ||
| 331 | through them? | ||
| 332 | |||
| 333 | 317 | ||
| 334 | Answer: | 318 | @node [2.4] |
| 319 | @subsubheading Question 2.4 | ||
| 335 | 320 | ||
| 336 | Gnus offers the topic mode, it allows you to sort your | 321 | My group buffer becomes a bit crowded, is there a way to |
| 337 | groups in, well, topics, e.g. all groups dealing with | 322 | sort my groups into categories so I can easier browse |
| 338 | Linux under the topic linux, all dealing with music under | 323 | through them? |
| 339 | the topic music and all dealing with scottish music under | ||
| 340 | the topic scottish which is a subtopic of music. | ||
| 341 | |||
| 342 | 324 | ||
| 343 | To enter topic mode, just hit t while in Group buffer. Now | 325 | @subsubheading Answer |
| 344 | you can use @samp{T n} to create a topic | ||
| 345 | at point and @samp{T m} to move a group to | ||
| 346 | a specific topic. For more commands see the manual or the | ||
| 347 | menu. You might want to include the %P specifier at the | ||
| 348 | beginning of your gnus-group-line-format variable to have | ||
| 349 | the groups nicely indented. | ||
| 350 | |||
| 351 | @ifnottex | ||
| 352 | @node [2.5], , [2.4], FAQ 2 - Startup / Group buffer | ||
| 353 | @end ifnottex | ||
| 354 | @subsubheading Question 2.5: | ||
| 355 | 326 | ||
| 356 | How to manually sort the groups in Group buffer? How to | 327 | Gnus offers the topic mode, it allows you to sort your |
| 357 | sort the groups in a topic? | 328 | groups in, well, topics, e.g. all groups dealing with |
| 358 | 329 | Linux under the topic linux, all dealing with music under | |
| 330 | the topic music and all dealing with scottish music under | ||
| 331 | the topic scottish which is a subtopic of music. | ||
| 359 | 332 | ||
| 360 | Answer: | 333 | To enter topic mode, just hit t while in Group buffer. Now |
| 334 | you can use @samp{T n} to create a topic | ||
| 335 | at point and @samp{T m} to move a group to | ||
| 336 | a specific topic. For more commands see the manual or the | ||
| 337 | menu. You might want to include the %P specifier at the | ||
| 338 | beginning of your gnus-group-line-format variable to have | ||
| 339 | the groups nicely indented. | ||
| 361 | 340 | ||
| 362 | Move point over the group you want to move and | 341 | @node [2.5] |
| 363 | hit @samp{C-k}, now move point to the | 342 | @subsubheading Question 2.5 |
| 364 | place where you want the group to be and | 343 | |
| 365 | hit @samp{C-y}. | 344 | How to manually sort the groups in Group buffer? How to |
| 366 | 345 | sort the groups in a topic? | |
| 367 | @ifnottex | 346 | |
| 368 | @node FAQ 3 - Getting messages, FAQ 4 - Reading messages, FAQ 2 - Startup / Group buffer, Frequently Asked Questions | 347 | @subsubheading Answer |
| 369 | @end ifnottex | 348 | |
| 370 | @subsection Getting messages | 349 | Move point over the group you want to move and |
| 350 | hit @samp{C-k}, now move point to the | ||
| 351 | place where you want the group to be and | ||
| 352 | hit @samp{C-y}. | ||
| 353 | |||
| 354 | @node FAQ 3 - Getting Messages | ||
| 355 | @subsection Getting Messages | ||
| 371 | 356 | ||
| 372 | @menu | 357 | @menu |
| 373 | * [3.1]:: I just installed Gnus, started it via M-x gnus but it only says | 358 | * [3.1]:: I just installed Gnus, started it via @samp{M-x gnus} |
| 374 | "nntp (news) open error", what to do? | 359 | but it only says "nntp (news) open error", what to do? |
| 375 | * [3.2]:: I'm working under Windows and have no idea what ~/.gnus means. | 360 | * [3.2]:: I'm working under Windows and have no idea what ~/.gnus.el |
| 376 | * [3.3]:: My news server requires authentication, how to store user name | 361 | means. |
| 377 | and password on disk? | 362 | * [3.3]:: My news server requires authentication, how to store user |
| 378 | * [3.4]:: Gnus seems to start up OK, but I can't find out how to | 363 | name and password on disk? |
| 379 | subscribe to a group. | 364 | * [3.4]:: Gnus seems to start up OK, but I can't find out how to |
| 380 | * [3.5]:: Gnus doesn't show all groups / Gnus says I'm not allowed to | 365 | subscribe to a group. |
| 381 | post on this server as well as I am, what's that? | 366 | * [3.5]:: Gnus doesn't show all groups / Gnus says I'm not allowed |
| 382 | * [3.6]:: I want Gnus to fetch news from several servers, is this possible? | 367 | to post on this server as well as I am, what's that? |
| 383 | * [3.7]:: And how about local spool files? | 368 | * [3.6]:: I want Gnus to fetch news from several servers, is this |
| 384 | * [3.8]:: OK, reading news works now, but I want to be able to read my mail | 369 | possible? |
| 385 | with Gnus, too. How to do it? | 370 | * [3.7]:: And how about local spool files? |
| 386 | * [3.9]:: And what about IMAP? | 371 | * [3.8]:: OK, reading news works now, but I want to be able to read |
| 387 | * [3.10]:: At the office we use one of those MS Exchange servers, | 372 | my mail with Gnus, too. How to do it? |
| 388 | can I use Gnus to read my mail from it? | 373 | * [3.9]:: And what about IMAP? |
| 389 | * [3.11]:: Can I tell Gnus not to delete the mails on the server | 374 | * [3.10]:: At the office we use one of those MS Exchange servers, can |
| 390 | it retrieves via POP3? | 375 | I use Gnus to read my mail from it? |
| 376 | * [3.11]:: Can I tell Gnus not to delete the mails on the server it | ||
| 377 | retrieves via POP3? | ||
| 391 | @end menu | 378 | @end menu |
| 392 | 379 | ||
| 393 | @ifnottex | 380 | @node [3.1] |
| 394 | @node [3.1], [3.2], FAQ 3 - Getting messages, FAQ 3 - Getting messages | 381 | @subsubheading Question 3.1 |
| 395 | @end ifnottex | ||
| 396 | @subsubheading Question 3.1: | ||
| 397 | 382 | ||
| 398 | I just installed Gnus, started it via | 383 | I just installed Gnus, started it via |
| 399 | @samp{M-x gnus} | 384 | @samp{M-x gnus} |
| 400 | but it only says "nntp (news) open error", what to do? | 385 | but it only says "nntp (news) open error", what to do? |
| 401 | |||
| 402 | 386 | ||
| 403 | Answer: | 387 | @subsubheading Answer |
| 404 | 388 | ||
| 405 | You've got to tell Gnus where to fetch the news from. Read | 389 | You've got to tell Gnus where to fetch the news from. Read |
| 406 | the documentation for information on how to do this. As a | 390 | the documentation for information on how to do this. As a |
| 407 | first start, put those lines in ~/.gnus: | 391 | first start, put those lines in ~/.gnus.el: |
| 408 | |||
| 409 | 392 | ||
| 410 | @example | 393 | @example |
| 411 | (setq gnus-select-method '(nntp "news.yourprovider.net")) | 394 | (setq gnus-select-method '(nntp "news.yourprovider.net")) |
| 412 | (setq user-mail-address "you@@yourprovider.net") | 395 | (setq user-mail-address "you@@yourprovider.net") |
| 413 | (setq user-full-name "Your Name") | 396 | (setq user-full-name "Your Name") |
| 414 | @end example | 397 | @end example |
| 415 | 398 | @noindent | |
| 416 | @ifnottex | ||
| 417 | @node [3.2], [3.3], [3.1], FAQ 3 - Getting messages | ||
| 418 | @end ifnottex | ||
| 419 | @subsubheading Question 3.2: | ||
| 420 | |||
| 421 | I'm working under Windows and have no idea what ~/.gnus means. | ||
| 422 | |||
| 423 | 399 | ||
| 424 | Answer: | 400 | @node [3.2] |
| 425 | 401 | @subsubheading Question 3.2 | |
| 426 | The ~/ means the home directory where Gnus and Emacs look for the | 402 | |
| 427 | configuration files. However, you don't really need to know what this | 403 | I'm working under Windows and have no idea what ~/.gnus.el means. |
| 428 | means, it suffices that Emacs knows what it means :-) You can type | 404 | |
| 429 | @samp{C-x C-f ~/.gnus RET } (yes, with the forward slash, even on | 405 | @subsubheading Answer |
| 430 | Windows), and Emacs will open the right file for you. (It will most | 406 | |
| 431 | likely be new, and thus empty.) However, I'd discourage you from | 407 | The ~/ means the home directory where Gnus and Emacs look |
| 432 | doing so, since the directory Emacs chooses will most certainly not be | 408 | for the configuration files. However, you don't really |
| 433 | what you want, so let's do it the correct way. The first thing you've | 409 | need to know what this means, it suffices that Emacs knows |
| 434 | got to do is to create a suitable directory (no blanks in directory | 410 | what it means :-) You can type |
| 435 | name please) e.g. @file{c:\myhome}. Then you must set the environment | 411 | @samp{C-x C-f ~/.gnus.el RET } |
| 436 | variable HOME to this directory. To do this under Win9x or Me include | 412 | (yes, with the forward slash, even on Windows), and |
| 437 | the line | 413 | Emacs will open the right file for you. (It will most |
| 438 | 414 | likely be new, and thus empty.) | |
| 415 | However, I'd discourage you from doing so, since the | ||
| 416 | directory Emacs chooses will most certainly not be what | ||
| 417 | you want, so let's do it the correct way. | ||
| 418 | The first thing you've got to do is to | ||
| 419 | create a suitable directory (no blanks in directory name | ||
| 420 | please) e.g. c:\myhome. Then you must set the environment | ||
| 421 | variable HOME to this directory. To do this under Win9x | ||
| 422 | or Me include the line | ||
| 439 | 423 | ||
| 440 | @example | 424 | @example |
| 441 | |||
| 442 | SET HOME=C:\myhome | 425 | SET HOME=C:\myhome |
| 443 | |||
| 444 | @end example | 426 | @end example |
| 445 | |||
| 446 | @noindent | 427 | @noindent |
| 447 | in your autoexec.bat and reboot. Under NT, 2000 and XP, | ||
| 448 | hit Winkey+Pause/Break to enter system options (if it | ||
| 449 | doesn't work, go to Control Panel -> System). There you'll | ||
| 450 | find the possibility to set environment variables, create | ||
| 451 | a new one with name HOME and value @file{c:\myhome}, a reboot is | ||
| 452 | not necessary. | ||
| 453 | |||
| 454 | 428 | ||
| 455 | Now to create ~/.gnus, say | 429 | in your autoexec.bat and reboot. Under NT, 2000 and XP, |
| 456 | @samp{C-x C-f ~/.gnus RET C-x C-s}. | 430 | hit Winkey+Pause/Break to enter system options (if it |
| 457 | in Emacs. | 431 | doesn't work, go to Control Panel -> System). There you'll |
| 458 | 432 | find the possibility to set environment variables, create | |
| 459 | @ifnottex | 433 | a new one with name HOME and value C:\myhome, a reboot is |
| 460 | @node [3.3], [3.4], [3.2], FAQ 3 - Getting messages | 434 | not necessary. |
| 461 | @end ifnottex | ||
| 462 | @subsubheading Question 3.3: | ||
| 463 | 435 | ||
| 464 | My news server requires authentication, how to store | 436 | Now to create ~/.gnus.el, say |
| 465 | user name and password on disk? | 437 | @samp{C-x C-f ~/.gnus.el RET C-x C-s}. |
| 466 | 438 | in Emacs. | |
| 467 | 439 | ||
| 468 | Answer: | 440 | @node [3.3] |
| 441 | @subsubheading Question 3.3 | ||
| 469 | 442 | ||
| 470 | Create a file ~/.authinfo which includes for each server a line like this | 443 | My news server requires authentication, how to store |
| 471 | 444 | user name and password on disk? | |
| 445 | |||
| 446 | @subsubheading Answer | ||
| 447 | |||
| 448 | Create a file ~/.authinfo which includes for each server a line like this | ||
| 472 | 449 | ||
| 473 | @example | 450 | @example |
| 474 | machine news.yourprovider.net login YourUserName password YourPassword | 451 | machine news.yourprovider.net login YourUserName password YourPassword |
| 475 | @end example | 452 | @end example |
| 476 | |||
| 477 | @noindent | 453 | @noindent |
| 478 | . | 454 | . |
| 479 | Make sure that the file isn't readable to others if you | 455 | Make sure that the file isn't readable to others if you |
| 480 | work on a OS which is capable of doing so. (Under Unix | 456 | work on a OS which is capable of doing so. (Under Unix |
| 481 | say | 457 | say |
| 482 | |||
| 483 | @example | 458 | @example |
| 484 | chmod 600 ~/.authinfo | 459 | chmod 600 ~/.authinfo |
| 485 | @end example | 460 | @end example |
| 486 | |||
| 487 | @noindent | 461 | @noindent |
| 488 | in a shell.) | ||
| 489 | |||
| 490 | @ifnottex | ||
| 491 | @node [3.4], [3.5], [3.3], FAQ 3 - Getting messages | ||
| 492 | @end ifnottex | ||
| 493 | @subsubheading Question 3.4: | ||
| 494 | 462 | ||
| 495 | Gnus seems to start up OK, but I can't find out how to | 463 | in a shell.) |
| 496 | subscribe to a group. | ||
| 497 | |||
| 498 | 464 | ||
| 499 | Answer: | 465 | @node [3.4] |
| 466 | @subsubheading Question 3.4 | ||
| 500 | 467 | ||
| 501 | If you know the name of the group say @samp{U | 468 | Gnus seems to start up OK, but I can't find out how to |
| 502 | name.of.group RET} in group buffer (use the | 469 | subscribe to a group. |
| 503 | tab-completion Luke). Otherwise hit ^ in group buffer, | ||
| 504 | this brings you to the server buffer. Now place point (the | ||
| 505 | cursor) over the server which carries the group you want, | ||
| 506 | hit @samp{RET}, move point to the group | ||
| 507 | you want to subscribe to and say @samp{u} | ||
| 508 | to subscribe to it. | ||
| 509 | |||
| 510 | @ifnottex | ||
| 511 | @node [3.5], [3.6], [3.4], FAQ 3 - Getting messages | ||
| 512 | @end ifnottex | ||
| 513 | @subsubheading Question 3.5: | ||
| 514 | 470 | ||
| 515 | Gnus doesn't show all groups / Gnus says I'm not allowed to | 471 | @subsubheading Answer |
| 516 | post on this server as well as I am, what's that? | ||
| 517 | |||
| 518 | 472 | ||
| 519 | Answer: | 473 | If you know the name of the group say @samp{U |
| 474 | name.of.group RET} in group buffer (use the | ||
| 475 | tab-completion Luke). Otherwise hit ^ in group buffer, | ||
| 476 | this brings you to the server buffer. Now place point (the | ||
| 477 | cursor) over the server which carries the group you want, | ||
| 478 | hit @samp{RET}, move point to the group | ||
| 479 | you want to subscribe to and say @samp{u} | ||
| 480 | to subscribe to it. | ||
| 520 | 481 | ||
| 521 | Some providers allow restricted anonymous access and full | 482 | @node [3.5] |
| 522 | access only after authorization. To make Gnus send authinfo | 483 | @subsubheading Question 3.5 |
| 523 | to those servers append | 484 | |
| 524 | 485 | Gnus doesn't show all groups / Gnus says I'm not allowed to | |
| 486 | post on this server as well as I am, what's that? | ||
| 487 | |||
| 488 | @subsubheading Answer | ||
| 489 | |||
| 490 | Some providers allow restricted anonymous access and full | ||
| 491 | access only after authorization. To make Gnus send authinfo | ||
| 492 | to those servers append | ||
| 525 | 493 | ||
| 526 | @example | 494 | @example |
| 527 | force yes | 495 | force yes |
| 528 | @end example | 496 | @end example |
| 529 | |||
| 530 | |||
| 531 | @noindent | 497 | @noindent |
| 532 | to the line for those servers in ~/.authinfo. | ||
| 533 | 498 | ||
| 534 | @ifnottex | 499 | to the line for those servers in ~/.authinfo. |
| 535 | @node [3.6], [3.7], [3.5], FAQ 3 - Getting messages | ||
| 536 | @end ifnottex | ||
| 537 | @subsubheading Question 3.6: | ||
| 538 | 500 | ||
| 539 | I want Gnus to fetch news from several servers, is this possible? | 501 | @node [3.6] |
| 540 | 502 | @subsubheading Question 3.6 | |
| 541 | 503 | ||
| 542 | Answer: | 504 | I want Gnus to fetch news from several servers, is this possible? |
| 543 | 505 | ||
| 544 | Of course. You can specify more sources for articles in the | 506 | @subsubheading Answer |
| 545 | variable gnus-secondary-select-methods. Add something like | 507 | |
| 546 | this in ~/.gnus: | 508 | Of course. You can specify more sources for articles in the |
| 547 | 509 | variable gnus-secondary-select-methods. Add something like | |
| 510 | this in ~/.gnus.el: | ||
| 548 | 511 | ||
| 549 | @example | 512 | @example |
| 550 | (add-to-list 'gnus-secondary-select-methods | 513 | (add-to-list 'gnus-secondary-select-methods |
| 551 | '(nntp "news.yourSecondProvider.net")) | 514 | '(nntp "news.yourSecondProvider.net")) |
| 552 | (add-to-list 'gnus-secondary-select-methods | 515 | (add-to-list 'gnus-secondary-select-methods |
| 553 | '(nntp "news.yourThirdProvider.net")) | 516 | '(nntp "news.yourThirdProvider.net")) |
| 554 | @end example | 517 | @end example |
| 555 | 518 | @noindent | |
| 556 | @ifnottex | ||
| 557 | @node [3.7], [3.8], [3.6], FAQ 3 - Getting messages | ||
| 558 | @end ifnottex | ||
| 559 | @subsubheading Question 3.7: | ||
| 560 | 519 | ||
| 561 | And how about local spool files? | 520 | @node [3.7] |
| 562 | 521 | @subsubheading Question 3.7 | |
| 563 | 522 | ||
| 564 | Answer: | 523 | And how about local spool files? |
| 565 | 524 | ||
| 566 | No problem, this is just one more select method called | 525 | @subsubheading Answer |
| 567 | nnspool, so you want this: | 526 | |
| 568 | 527 | No problem, this is just one more select method called | |
| 528 | nnspool, so you want this: | ||
| 569 | 529 | ||
| 570 | @example | 530 | @example |
| 571 | (add-to-list 'gnus-secondary-select-methods '(nnspool "")) | 531 | (add-to-list 'gnus-secondary-select-methods '(nnspool "")) |
| 572 | @end example | 532 | @end example |
| 573 | |||
| 574 | @noindent | 533 | @noindent |
| 575 | Or this if you don't want an NNTP Server as primary news source: | 534 | |
| 576 | 535 | Or this if you don't want an NNTP Server as primary news source: | |
| 577 | 536 | ||
| 578 | @example | 537 | @example |
| 579 | (setq gnus-select-method '(nnspool "")) | 538 | (setq gnus-select-method '(nnspool "")) |
| 580 | @end example | 539 | @end example |
| 581 | |||
| 582 | @noindent | 540 | @noindent |
| 583 | Gnus will look for the spool file in /usr/spool/news, if you | 541 | |
| 584 | want something different, change the line above to something like this: | 542 | Gnus will look for the spool file in /usr/spool/news, if you |
| 585 | 543 | want something different, change the line above to something like this: | |
| 586 | 544 | ||
| 587 | @example | 545 | @example |
| 588 | (add-to-list 'gnus-secondary-select-methods | 546 | (add-to-list 'gnus-secondary-select-methods |
| 589 | '(nnspool "" (nnspool-directory "/usr/local/myspoolddir"))) | 547 | '(nnspool "" |
| 548 | (nnspool-directory "/usr/local/myspoolddir"))) | ||
| 590 | @end example | 549 | @end example |
| 591 | |||
| 592 | @noindent | 550 | @noindent |
| 593 | This sets the spool directory for this server only. | ||
| 594 | You might have to specify more stuff like the program used | ||
| 595 | to post articles, see the Gnus manual on how to do this. | ||
| 596 | |||
| 597 | @ifnottex | ||
| 598 | @node [3.8], [3.9], [3.7], FAQ 3 - Getting messages | ||
| 599 | @end ifnottex | ||
| 600 | @subsubheading Question 3.8: | ||
| 601 | 551 | ||
| 602 | OK, reading news works now, but I want to be able to read my mail | 552 | This sets the spool directory for this server only. |
| 603 | with Gnus, too. How to do it? | 553 | You might have to specify more stuff like the program used |
| 604 | 554 | to post articles, see the Gnus manual on how to do this. | |
| 605 | 555 | ||
| 606 | Answer: | 556 | @node [3.8] |
| 607 | 557 | @subsubheading Question 3.8 | |
| 608 | That's a bit harder since there are many possible sources | 558 | |
| 609 | for mail, many possible ways for storing mail and many | 559 | OK, reading news works now, but I want to be able to read my mail |
| 610 | different ways for sending mail. The most common cases are | 560 | with Gnus, too. How to do it? |
| 611 | these: 1: You want to read your mail from a pop3 server and | 561 | |
| 612 | send them directly to a SMTP Server 2: Some program like | 562 | @subsubheading Answer |
| 613 | fetchmail retrieves your mail and stores it on disk from | 563 | |
| 614 | where Gnus shall read it. Outgoing mail is sent by | 564 | That's a bit harder since there are many possible sources |
| 615 | Sendmail, Postfix or some other MTA. Sometimes, you even | 565 | for mail, many possible ways for storing mail and many |
| 616 | need a combination of the above cases. | 566 | different ways for sending mail. The most common cases are |
| 617 | 567 | these: 1: You want to read your mail from a pop3 server and | |
| 618 | 568 | send them directly to a SMTP Server 2: Some program like | |
| 619 | However, the first thing to do is to tell Gnus in which way | 569 | fetchmail retrieves your mail and stores it on disk from |
| 620 | it should store the mail, in Gnus terminology which back end | 570 | where Gnus shall read it. Outgoing mail is sent by |
| 621 | to use. Gnus supports many different back ends, the most | 571 | Sendmail, Postfix or some other MTA. Sometimes, you even |
| 622 | commonly used one is nnml. It stores every mail in one file | 572 | need a combination of the above cases. |
| 623 | and is therefor quite fast. However you might prefer a one | 573 | |
| 624 | file per group approach if your file system has problems with | 574 | However, the first thing to do is to tell Gnus in which way |
| 625 | many small files, the nnfolder back end is then probably the | 575 | it should store the mail, in Gnus terminology which back end |
| 626 | choice for you. To use nnml add the following to ~/.gnus: | 576 | to use. Gnus supports many different back ends, the most |
| 627 | 577 | commonly used one is nnml. It stores every mail in one file | |
| 578 | and is therefor quite fast. However you might prefer a one | ||
| 579 | file per group approach if your file system has problems with | ||
| 580 | many small files, the nnfolder back end is then probably the | ||
| 581 | choice for you. To use nnml add the following to ~/.gnus.el: | ||
| 628 | 582 | ||
| 629 | @example | 583 | @example |
| 630 | (add-to-list 'gnus-secondary-select-methods '(nnml "")) | 584 | (add-to-list 'gnus-secondary-select-methods '(nnml "")) |
| 631 | @end example | 585 | @end example |
| 632 | |||
| 633 | @noindent | 586 | @noindent |
| 634 | As you might have guessed, if you want nnfolder, it's | 587 | |
| 635 | 588 | As you might have guessed, if you want nnfolder, it's | |
| 636 | 589 | ||
| 637 | @example | 590 | @example |
| 638 | (add-to-list 'gnus-secondary-select-methods '(nnfolder "")) | 591 | (add-to-list 'gnus-secondary-select-methods '(nnfolder "")) |
| 639 | @end example | 592 | @end example |
| 640 | 593 | @noindent | |
| 641 | 594 | ||
| 642 | Now we need to tell Gnus, where to get it's mail from. If | 595 | Now we need to tell Gnus, where to get it's mail from. If |
| 643 | it's a POP3 server, then you need something like this: | 596 | it's a POP3 server, then you need something like this: |
| 644 | |||
| 645 | 597 | ||
| 646 | @example | 598 | @example |
| 647 | (eval-after-load "mail-source" | 599 | (eval-after-load "mail-source" |
| @@ -649,75 +601,68 @@ Answer: | |||
| 649 | :user "yourUserName" | 601 | :user "yourUserName" |
| 650 | :password "yourPassword"))) | 602 | :password "yourPassword"))) |
| 651 | @end example | 603 | @end example |
| 652 | |||
| 653 | @noindent | 604 | @noindent |
| 654 | Make sure ~/.gnus isn't readable to others if you store | 605 | |
| 655 | your password there. If you want to read your mail from a | 606 | Make sure ~/.gnus.el isn't readable to others if you store |
| 656 | traditional spool file on your local machine, it's | 607 | your password there. If you want to read your mail from a |
| 657 | 608 | traditional spool file on your local machine, it's | |
| 658 | 609 | ||
| 659 | @example | 610 | @example |
| 660 | (eval-after-load "mail-source" | 611 | (eval-after-load "mail-source" |
| 661 | '(add-to-list 'mail-sources '(file :path "/path/to/spool/file"))) | 612 | '(add-to-list 'mail-sources '(file :path "/path/to/spool/file")) |
| 662 | @end example | 613 | @end example |
| 663 | |||
| 664 | @noindent | 614 | @noindent |
| 665 | If it's a Maildir, with one file per message as used by | 615 | |
| 666 | postfix, Qmail and (optionally) fetchmail it's | 616 | If it's a Maildir, with one file per message as used by |
| 667 | 617 | postfix, Qmail and (optionally) fetchmail it's | |
| 668 | 618 | ||
| 669 | @example | 619 | @example |
| 670 | (eval-after-load "mail-source" | 620 | (eval-after-load "mail-source" |
| 671 | '(add-to-list 'mail-sources '(maildir :path "/path/to/Maildir/" | 621 | '(add-to-list 'mail-sources '(maildir :path "/path/to/Maildir/" |
| 672 | :subdirs ("cur" "new"))) | 622 | :subdirs ("cur" "new"))) |
| 673 | @end example | 623 | @end example |
| 674 | |||
| 675 | @noindent | 624 | @noindent |
| 676 | And finally if you want to read your mail from several files | 625 | |
| 677 | in one directory, for example because procmail already split your | 626 | And finally if you want to read your mail from several files |
| 678 | mail, it's | 627 | in one directory, for example because procmail already split your |
| 679 | 628 | mail, it's | |
| 680 | 629 | ||
| 681 | @example | 630 | @example |
| 682 | (eval-after-load "mail-source" | 631 | (eval-after-load "mail-source" |
| 683 | '(add-to-list 'mail-sources '(directory :path "/path/to/procmail-dir/" | 632 | '(add-to-list 'mail-sources |
| 684 | :suffix ".prcml")) | 633 | '(directory :path "/path/to/procmail-dir/" |
| 634 | :suffix ".prcml"))) | ||
| 685 | @end example | 635 | @end example |
| 686 | |||
| 687 | @noindent | 636 | @noindent |
| 688 | Where :suffix ".prcml" tells Gnus only to use files with the | ||
| 689 | suffix .prcml. | ||
| 690 | |||
| 691 | 637 | ||
| 692 | OK, now you only need to tell Gnus how to send mail. If you | 638 | Where :suffix ".prcml" tells Gnus only to use files with the |
| 693 | want to send mail via sendmail (or whichever MTA is playing | 639 | suffix .prcml. |
| 694 | the role of sendmail on your system), you don't need to do | 640 | |
| 695 | anything. However, if you want to send your mail to an | 641 | OK, now you only need to tell Gnus how to send mail. If you |
| 696 | SMTP Server you need the following in your ~/.gnus | 642 | want to send mail via sendmail (or whichever MTA is playing |
| 697 | 643 | the role of sendmail on your system), you don't need to do | |
| 644 | anything. However, if you want to send your mail to an | ||
| 645 | SMTP Server you need the following in your ~/.gnus.el | ||
| 698 | 646 | ||
| 699 | @example | 647 | @example |
| 700 | (setq send-mail-function 'smtpmail-send-it) | 648 | (setq send-mail-function 'smtpmail-send-it) |
| 701 | (setq message-send-mail-function 'smtpmail-send-it) | 649 | (setq message-send-mail-function 'smtpmail-send-it) |
| 702 | (setq smtpmail-default-smtp-server "smtp.yourProvider.net") | 650 | (setq smtpmail-default-smtp-server "smtp.yourProvider.net") |
| 703 | @end example | 651 | @end example |
| 704 | 652 | @noindent | |
| 705 | @ifnottex | ||
| 706 | @node [3.9], [3.10], [3.8], FAQ 3 - Getting messages | ||
| 707 | @end ifnottex | ||
| 708 | @subsubheading Question 3.9: | ||
| 709 | 653 | ||
| 710 | And what about IMAP? | 654 | @node [3.9] |
| 711 | 655 | @subsubheading Question 3.9 | |
| 712 | 656 | ||
| 713 | Answer: | 657 | And what about IMAP? |
| 714 | 658 | ||
| 715 | There are two ways of using IMAP with Gnus. The first one is | 659 | @subsubheading Answer |
| 716 | to use IMAP like POP3, that means Gnus fetches the mail from | 660 | |
| 717 | the IMAP server and stores it on disk. If you want to do | 661 | There are two ways of using IMAP with Gnus. The first one is |
| 718 | this (you don't really want to do this) add the following to | 662 | to use IMAP like POP3, that means Gnus fetches the mail from |
| 719 | ~/.gnus | 663 | the IMAP server and stores it on disk. If you want to do |
| 720 | 664 | this (you don't really want to do this) add the following to | |
| 665 | ~/.gnus.el | ||
| 721 | 666 | ||
| 722 | @example | 667 | @example |
| 723 | (add-to-list 'mail-sources '(imap :server "mail.mycorp.com" | 668 | (add-to-list 'mail-sources '(imap :server "mail.mycorp.com" |
| @@ -728,249 +673,215 @@ Answer: | |||
| 728 | :mailbox "INBOX" | 673 | :mailbox "INBOX" |
| 729 | :fetchflag "\\Seen")) | 674 | :fetchflag "\\Seen")) |
| 730 | @end example | 675 | @end example |
| 731 | |||
| 732 | @noindent | 676 | @noindent |
| 733 | You might have to tweak the values for stream and/or | ||
| 734 | authentification, see the Gnus manual node "Mail Source | ||
| 735 | Specifiers" for possible values. | ||
| 736 | |||
| 737 | 677 | ||
| 738 | If you want to use IMAP the way it's intended, you've got to | 678 | You might have to tweak the values for stream and/or |
| 739 | follow a different approach. You've got to add the nnimap | 679 | authentification, see the Gnus manual node "Mail Source |
| 740 | back end to your select method and give the information | 680 | Specifiers" for possible values. |
| 741 | about the server there. | 681 | |
| 742 | 682 | If you want to use IMAP the way it's intended, you've got to | |
| 683 | follow a different approach. You've got to add the nnimap | ||
| 684 | back end to your select method and give the information | ||
| 685 | about the server there. | ||
| 743 | 686 | ||
| 744 | @example | 687 | @example |
| 745 | (add-to-list | 688 | (add-to-list 'gnus-secondary-select-methods |
| 746 | 'gnus-secondary-select-methods | 689 | '(nnimap "Give the baby a name" |
| 747 | '(nnimap "Give the baby a name" | 690 | (nnimap-address "imap.yourProvider.net") |
| 748 | (nnimap-address "imap.yourProvider.net") | 691 | (nnimap-port 143) |
| 749 | (nnimap-port 143) | 692 | (nnimap-list-pattern "archive.*"))) |
| 750 | (nnimap-list-pattern "archive.*"))) | ||
| 751 | @end example | 693 | @end example |
| 752 | |||
| 753 | @noindent | 694 | @noindent |
| 754 | Again, you might have to specify how to authenticate to the | ||
| 755 | server if Gnus can't guess the correct way, see the Manual | ||
| 756 | Node "IMAP" for detailed information. | ||
| 757 | |||
| 758 | @ifnottex | ||
| 759 | @node [3.10], [3.11], [3.9], FAQ 3 - Getting messages | ||
| 760 | @end ifnottex | ||
| 761 | @subsubheading Question 3.10: | ||
| 762 | |||
| 763 | At the office we use one of those MS Exchange servers, can I use | ||
| 764 | Gnus to read my mail from it? | ||
| 765 | |||
| 766 | |||
| 767 | Answer: | ||
| 768 | 695 | ||
| 769 | Offer your administrator a pair of new running shoes for | 696 | Again, you might have to specify how to authenticate to the |
| 770 | activating IMAP on the server and follow the instructions | 697 | server if Gnus can't guess the correct way, see the Manual |
| 771 | above. | 698 | Node "IMAP" for detailed information. |
| 772 | 699 | ||
| 773 | @ifnottex | 700 | @node [3.10] |
| 774 | @node [3.11], , [3.10], FAQ 3 - Getting messages | 701 | @subsubheading Question 3.10 |
| 775 | @end ifnottex | 702 | |
| 776 | @subsubheading Question 3.11: | 703 | At the office we use one of those MS Exchange servers, can I use |
| 777 | 704 | Gnus to read my mail from it? | |
| 778 | Can I tell Gnus not to delete the mails on the server it | 705 | |
| 779 | retrieves via POP3? | 706 | @subsubheading Answer |
| 780 | 707 | ||
| 781 | 708 | Offer your administrator a pair of new running shoes for | |
| 782 | Answer: | 709 | activating IMAP on the server and follow the instructions |
| 783 | 710 | above. | |
| 784 | First of all, that's not the way POP3 is intended to work, | 711 | |
| 785 | if you have the possibility, you should use the IMAP | 712 | @node [3.11] |
| 786 | Protocol if you want your messages to stay on the | 713 | @subsubheading Question 3.11 |
| 787 | server. Nevertheless there might be situations where you | 714 | |
| 788 | need the feature, but sadly Gnus itself has no predefined | 715 | Can I tell Gnus not to delete the mails on the server it |
| 789 | functionality to do so. | 716 | retrieves via POP3? |
| 790 | 717 | ||
| 791 | 718 | @subsubheading Answer | |
| 792 | However this is Gnus county so there are possibilities to | 719 | |
| 793 | achieve what you want. The easiest way is to get an external | 720 | First of all, that's not the way POP3 is intended to work, |
| 794 | program which retrieves copies of the mail and stores them | 721 | if you have the possibility, you should use the IMAP |
| 795 | on disk, so Gnus can read it from there. On Unix systems you | 722 | Protocol if you want your messages to stay on the |
| 796 | could use e.g. fetchmail for this, on MS Windows you can use | 723 | server. Nevertheless there might be situations where you |
| 797 | Hamster, an excellent local news and mail server. | 724 | need the feature, but sadly Gnus itself has no predefined |
| 798 | 725 | functionality to do so. | |
| 799 | 726 | ||
| 800 | The other solution would be, to replace the method Gnus | 727 | However this is Gnus county so there are possibilities to |
| 801 | uses to get mail from POP3 servers by one which is capable | 728 | achieve what you want. The easiest way is to get an external |
| 802 | of leaving the mail on the server. If you use XEmacs, get | 729 | program which retrieves copies of the mail and stores them |
| 803 | the package mail-lib, it includes an enhanced pop3.el, | 730 | on disk, so Gnus can read it from there. On Unix systems you |
| 804 | look in the file, there's documentation on how to tell | 731 | could use e.g. fetchmail for this, on MS Windows you can use |
| 805 | Gnus to use it and not to delete the retrieved mail. For | 732 | Hamster, an excellent local news and mail server. |
| 806 | GNU Emacs look for the file epop3.el which can do the same | 733 | |
| 807 | (If you know the home of this file, please send me an | 734 | The other solution would be, to replace the method Gnus |
| 808 | e-mail). You can also tell Gnus to use an external program | 735 | uses to get mail from POP3 servers by one which is capable |
| 809 | (e.g. fetchmail) to fetch your mail, see the info node | 736 | of leaving the mail on the server. If you use XEmacs, get |
| 810 | "Mail Source Specifiers" in the Gnus manual on how to do | 737 | the package mail-lib, it includes an enhanced pop3.el, |
| 811 | it. | 738 | look in the file, there's documentation on how to tell |
| 812 | 739 | Gnus to use it and not to delete the retrieved mail. For | |
| 813 | 740 | GNU Emacs look for the file epop3.el which can do the same | |
| 814 | @ifnottex | 741 | (If you know the home of this file, please send me an |
| 815 | @node FAQ 4 - Reading messages, FAQ 5 - Composing messages, FAQ 3 - Getting messages, Frequently Asked Questions | 742 | e-mail). You can also tell Gnus to use an external program |
| 816 | @end ifnottex | 743 | (e.g. fetchmail) to fetch your mail, see the info node |
| 744 | "Mail Source Specifiers" in the Gnus manual on how to do | ||
| 745 | it. | ||
| 746 | |||
| 747 | @node FAQ 4 - Reading messages | ||
| 817 | @subsection Reading messages | 748 | @subsection Reading messages |
| 818 | 749 | ||
| 819 | @menu | 750 | @menu |
| 820 | * [4.1]:: When I enter a group, all read messages are gone. | 751 | * [4.1]:: When I enter a group, all read messages are gone. How to |
| 821 | How to view them again? | 752 | view them again? |
| 822 | * [4.2]:: How to tell Gnus to show an important message every time | 753 | * [4.2]:: How to tell Gnus to show an important message every time I |
| 823 | I enter a group, even when it's read? | 754 | enter a group, even when it's read? |
| 824 | * [4.3]:: How to view the headers of a message? | 755 | * [4.3]:: How to view the headers of a message? |
| 825 | * [4.4]:: How to view the raw unformatted message? | 756 | * [4.4]:: How to view the raw unformatted message? |
| 826 | * [4.5]:: How can I change the headers Gnus displays by default at the | 757 | * [4.5]:: How can I change the headers Gnus displays by default at |
| 827 | top of the article buffer? | 758 | the top of the article buffer? |
| 828 | * [4.6]:: I'd like Gnus NOT to render HTML-mails but show me the | 759 | * [4.6]:: I'd like Gnus NOT to render HTML-mails but show me the |
| 829 | text part if it's available. How to do it? | 760 | text part if it's available. How to do it? |
| 830 | * [4.7]:: Can I use some other browser than w3 to render my HTML-mails? | 761 | * [4.7]:: Can I use some other browser than w3 to render my |
| 831 | * [4.8]:: Is there anything I can do to make poorly formatted mails | 762 | HTML-mails? |
| 832 | more readable? | 763 | * [4.8]:: Is there anything I can do to make poorly formatted mails |
| 833 | * [4.9]:: Is there a way to automatically ignore posts by specific authors | 764 | more readable? |
| 834 | or with specific words in the subject? And can I highlight more | 765 | * [4.9]:: Is there a way to automatically ignore posts by specific |
| 835 | interesting ones in some way? | 766 | authors or with specific words in the subject? And can I highlight |
| 836 | * [4.10]:: How can I disable threading in some (e.g. mail-) groups, or set | 767 | more interesting ones in some way? |
| 837 | other variables specific for some groups? | 768 | * [4.10]:: How can I disable threading in some (e.g. mail-) groups, |
| 838 | * [4.11]:: Can I highlight messages written by me and follow-ups to those? | 769 | or set other variables specific for some groups? |
| 839 | * [4.12]:: The number of total messages in a group which Gnus displays in | 770 | * [4.11]:: Can I highlight messages written by me and follow-ups to |
| 840 | group buffer is by far to high, especially in mail groups. | 771 | those? |
| 841 | Is this a bug? | 772 | * [4.12]:: The number of total messages in a group which Gnus |
| 842 | * [4.13]:: I don't like the layout of summary and article buffer, | 773 | displays in group buffer is by far to high, especially in mail |
| 843 | how to change it? Perhaps even a three pane display? | 774 | groups. Is this a bug? |
| 844 | * [4.14]:: I don't like the way the Summary buffer looks, how to tweak it? | 775 | * [4.13]:: I don't like the layout of summary and article buffer, how |
| 845 | * [4.15]:: How to split incoming mails in several groups? | 776 | to change it? Perhaps even a three pane display? |
| 777 | * [4.14]:: I don't like the way the Summary buffer looks, how to | ||
| 778 | tweak it? | ||
| 779 | * [4.15]:: How to split incoming mails in several groups? | ||
| 846 | @end menu | 780 | @end menu |
| 847 | 781 | ||
| 848 | @ifnottex | 782 | @node [4.1] |
| 849 | @node [4.1], [4.2], FAQ 4 - Reading messages, FAQ 4 - Reading messages | 783 | @subsubheading Question 4.1 |
| 850 | @end ifnottex | ||
| 851 | @subsubheading Question 4.1: | ||
| 852 | 784 | ||
| 853 | When I enter a group, all read messages are gone. How to view them again? | 785 | When I enter a group, all read messages are gone. How to view them again? |
| 854 | |||
| 855 | 786 | ||
| 856 | Answer: | 787 | @subsubheading Answer |
| 857 | 788 | ||
| 858 | If you enter the group by saying | 789 | If you enter the group by saying |
| 859 | @samp{RET} | 790 | @samp{RET} |
| 860 | in group buffer with point over the group, only unread and ticked messages are loaded. Say | 791 | in group buffer with point over the group, only unread and ticked messages are loaded. Say |
| 861 | @samp{C-u RET} | 792 | @samp{C-u RET} |
| 862 | instead to load all available messages. If you want only the e.g. 300 newest say | 793 | instead to load all available messages. If you want only the e.g. 300 newest say |
| 863 | @samp{C-u 300 RET} | 794 | @samp{C-u 300 RET} |
| 864 | |||
| 865 | 795 | ||
| 866 | Loading only unread messages can be annoying if you have threaded view enabled, say | 796 | Loading only unread messages can be annoying if you have threaded view enabled, say |
| 867 | |||
| 868 | 797 | ||
| 869 | @example | 798 | @example |
| 870 | (setq gnus-fetch-old-headers 'some) | 799 | (setq gnus-fetch-old-headers 'some) |
| 871 | @end example | 800 | @end example |
| 872 | |||
| 873 | |||
| 874 | @noindent | 801 | @noindent |
| 875 | in ~/.gnus to load enough old articles to prevent teared threads, replace 'some with t to load | ||
| 876 | all articles (Warning: Both settings enlarge the amount of data which is | ||
| 877 | fetched when you enter a group and slow down the process of entering a group). | ||
| 878 | 802 | ||
| 803 | in ~/.gnus.el to load enough old articles to prevent teared threads, replace 'some with t to load | ||
| 804 | all articles (Warning: Both settings enlarge the amount of data which is | ||
| 805 | fetched when you enter a group and slow down the process of entering a group). | ||
| 879 | 806 | ||
| 880 | If you already use Gnus 5.10, you can say | 807 | If you already use Gnus 5.10, you can say |
| 881 | @samp{/o N} | 808 | @samp{/o N} |
| 882 | In summary buffer to load the last N messages, this feature is not available in 5.8.8 | 809 | In summary buffer to load the last N messages, this feature is not available in 5.8.8 |
| 883 | |||
| 884 | 810 | ||
| 885 | If you don't want all old messages, but the parent of the message you're just reading, | 811 | If you don't want all old messages, but the parent of the message you're just reading, |
| 886 | you can say @samp{^}, if you want to retrieve the whole thread | 812 | you can say @samp{^}, if you want to retrieve the whole thread |
| 887 | the message you're just reading belongs to, @samp{A T} is your friend. | 813 | the message you're just reading belongs to, @samp{A T} is your friend. |
| 888 | |||
| 889 | @ifnottex | ||
| 890 | @node [4.2], [4.3], [4.1], FAQ 4 - Reading messages | ||
| 891 | @end ifnottex | ||
| 892 | @subsubheading Question 4.2: | ||
| 893 | 814 | ||
| 894 | How to tell Gnus to show an important message every time I | 815 | @node [4.2] |
| 895 | enter a group, even when it's read? | 816 | @subsubheading Question 4.2 |
| 896 | |||
| 897 | 817 | ||
| 898 | Answer: | 818 | How to tell Gnus to show an important message every time I |
| 819 | enter a group, even when it's read? | ||
| 899 | 820 | ||
| 900 | You can tick important messages. To do this hit | 821 | @subsubheading Answer |
| 901 | @samp{u} while point is in summary buffer | ||
| 902 | over the message. When you want to remove the mark, hit | ||
| 903 | either @samp{d} (this deletes the tick | ||
| 904 | mark and set's unread mark) or @samp{M c} | ||
| 905 | (which deletes all marks for the message). | ||
| 906 | |||
| 907 | @ifnottex | ||
| 908 | @node [4.3], [4.4], [4.2], FAQ 4 - Reading messages | ||
| 909 | @end ifnottex | ||
| 910 | @subsubheading Question 4.3: | ||
| 911 | 822 | ||
| 912 | How to view the headers of a message? | 823 | You can tick important messages. To do this hit |
| 913 | 824 | @samp{u} while point is in summary buffer | |
| 825 | over the message. When you want to remove the mark, hit | ||
| 826 | either @samp{d} (this deletes the tick | ||
| 827 | mark and set's unread mark) or @samp{M c} | ||
| 828 | (which deletes all marks for the message). | ||
| 914 | 829 | ||
| 915 | Answer: | 830 | @node [4.3] |
| 831 | @subsubheading Question 4.3 | ||
| 916 | 832 | ||
| 917 | Say @samp{t} | 833 | How to view the headers of a message? |
| 918 | to show all headers, one more | ||
| 919 | @samp{t} | ||
| 920 | hides them again. | ||
| 921 | |||
| 922 | @ifnottex | ||
| 923 | @node [4.4], [4.5], [4.3], FAQ 4 - Reading messages | ||
| 924 | @end ifnottex | ||
| 925 | @subsubheading Question 4.4: | ||
| 926 | 834 | ||
| 927 | How to view the raw unformatted message? | 835 | @subsubheading Answer |
| 928 | |||
| 929 | 836 | ||
| 930 | Answer: | 837 | Say @samp{t} |
| 838 | to show all headers, one more | ||
| 839 | @samp{t} | ||
| 840 | hides them again. | ||
| 931 | 841 | ||
| 932 | Say | 842 | @node [4.4] |
| 933 | @samp{C-u g} | 843 | @subsubheading Question 4.4 |
| 934 | to show the raw message | ||
| 935 | @samp{g} | ||
| 936 | returns to normal view. | ||
| 937 | |||
| 938 | @ifnottex | ||
| 939 | @node [4.5], [4.6], [4.4], FAQ 4 - Reading messages | ||
| 940 | @end ifnottex | ||
| 941 | @subsubheading Question 4.5: | ||
| 942 | 844 | ||
| 943 | How can I change the headers Gnus displays by default at | 845 | How to view the raw unformatted message? |
| 944 | the top of the article buffer? | ||
| 945 | |||
| 946 | 846 | ||
| 947 | Answer: | 847 | @subsubheading Answer |
| 848 | |||
| 849 | Say | ||
| 850 | @samp{C-u g} | ||
| 851 | to show the raw message | ||
| 852 | @samp{g} | ||
| 853 | returns to normal view. | ||
| 854 | |||
| 855 | @node [4.5] | ||
| 856 | @subsubheading Question 4.5 | ||
| 857 | |||
| 858 | How can I change the headers Gnus displays by default at | ||
| 859 | the top of the article buffer? | ||
| 860 | |||
| 861 | @subsubheading Answer | ||
| 862 | |||
| 863 | The variable gnus-visible-headers controls which headers | ||
| 864 | are shown, its value is a regular expression, header lines | ||
| 865 | which match it are shown. So if you want author, subject, | ||
| 866 | date, and if the header exists, Followup-To and MUA / NUA | ||
| 867 | say this in ~/.gnus.el: | ||
| 948 | 868 | ||
| 949 | The variable gnus-visible-headers controls which headers | ||
| 950 | are shown, its value is a regular expression, header lines | ||
| 951 | which match it are shown. So if you want author, subject, | ||
| 952 | date, and if the header exists, Followup-To and MUA / NUA | ||
| 953 | say this in ~/.gnus: | ||
| 954 | |||
| 955 | @example | 869 | @example |
| 956 | (setq gnus-visible-headers | 870 | (setq gnus-visible-headers |
| 957 | "^\\(From:\\|Subject:\\|Date:\\|Followup-To:\ | 871 | '("^From" "^Subject" "^Date" "^Newsgroups" "^Followup-To" |
| 958 | \\|X-Newsreader:\\|User-Agent:\\|X-Mailer:\\)") | 872 | "^User-Agent" "^X-Newsreader" "^X-Mailer")) |
| 959 | @end example | 873 | @end example |
| 960 | 874 | @noindent | |
| 961 | @ifnottex | ||
| 962 | @node [4.6], [4.7], [4.5], FAQ 4 - Reading messages | ||
| 963 | @end ifnottex | ||
| 964 | @subsubheading Question 4.6: | ||
| 965 | 875 | ||
| 966 | I'd like Gnus NOT to render HTML-mails but show me the | 876 | @node [4.6] |
| 967 | text part if it's available. How to do it? | 877 | @subsubheading Question 4.6 |
| 968 | |||
| 969 | 878 | ||
| 970 | Answer: | 879 | I'd like Gnus NOT to render HTML-mails but show me the |
| 880 | text part if it's available. How to do it? | ||
| 971 | 881 | ||
| 972 | Say | 882 | @subsubheading Answer |
| 973 | 883 | ||
| 884 | Say | ||
| 974 | 885 | ||
| 975 | @example | 886 | @example |
| 976 | (eval-after-load "mm-decode" | 887 | (eval-after-load "mm-decode" |
| @@ -978,240 +889,206 @@ Answer: | |||
| 978 | (add-to-list 'mm-discouraged-alternatives "text/html") | 889 | (add-to-list 'mm-discouraged-alternatives "text/html") |
| 979 | (add-to-list 'mm-discouraged-alternatives "text/richtext"))) | 890 | (add-to-list 'mm-discouraged-alternatives "text/richtext"))) |
| 980 | @end example | 891 | @end example |
| 981 | |||
| 982 | @noindent | 892 | @noindent |
| 983 | in ~/.gnus. If you don't want HTML rendered, even if there's no text alternative add | 893 | |
| 984 | 894 | in ~/.gnus.el. If you don't want HTML rendered, even if there's no text alternative add | |
| 985 | 895 | ||
| 986 | @example | 896 | @example |
| 987 | (setq mm-automatic-display (remove "text/html" mm-automatic-display)) | 897 | (setq mm-automatic-display (remove "text/html" mm-automatic-display)) |
| 988 | @end example | 898 | @end example |
| 989 | |||
| 990 | @noindent | 899 | @noindent |
| 991 | too. | ||
| 992 | |||
| 993 | @ifnottex | ||
| 994 | @node [4.7], [4.8], [4.6], FAQ 4 - Reading messages | ||
| 995 | @end ifnottex | ||
| 996 | @subsubheading Question 4.7: | ||
| 997 | 900 | ||
| 998 | Can I use some other browser than w3 to render my HTML-mails? | 901 | too. |
| 999 | |||
| 1000 | 902 | ||
| 1001 | Answer: | 903 | @node [4.7] |
| 904 | @subsubheading Question 4.7 | ||
| 1002 | 905 | ||
| 1003 | Only if you use Gnus 5.10 or younger. In this case you've got the | 906 | Can I use some other browser than w3 to render my HTML-mails? |
| 1004 | choice between w3, w3m, links, lynx and html2text, which | 907 | |
| 1005 | one is used can be specified in the variable | 908 | @subsubheading Answer |
| 1006 | mm-text-html-renderer, so if you want links to render your | 909 | |
| 1007 | mail say | 910 | Only if you use Gnus 5.10 or younger. In this case you've got the |
| 1008 | 911 | choice between w3, w3m, links, lynx and html2text, which | |
| 912 | one is used can be specified in the variable | ||
| 913 | mm-text-html-renderer, so if you want links to render your | ||
| 914 | mail say | ||
| 1009 | 915 | ||
| 1010 | @example | 916 | @example |
| 1011 | (setq mm-text-html-renderer 'links) | 917 | (setq mm-text-html-renderer 'links) |
| 1012 | @end example | 918 | @end example |
| 1013 | 919 | @noindent | |
| 1014 | @ifnottex | ||
| 1015 | @node [4.8], [4.9], [4.7], FAQ 4 - Reading messages | ||
| 1016 | @end ifnottex | ||
| 1017 | @subsubheading Question 4.8: | ||
| 1018 | |||
| 1019 | Is there anything I can do to make poorly formatted mails | ||
| 1020 | more readable? | ||
| 1021 | |||
| 1022 | |||
| 1023 | Answer: | ||
| 1024 | |||
| 1025 | Gnus offers you several functions to "wash" incoming mail, | ||
| 1026 | you can find them if you browse through the menu, item Article->Washing. The most | ||
| 1027 | interesting ones are probably "Wrap long lines" ( | ||
| 1028 | @samp{W w} | ||
| 1029 | ), "Decode ROT13" ( | ||
| 1030 | @samp{W r} | ||
| 1031 | ) and "Outlook Deuglify" which repairs the dumb quoting used | ||
| 1032 | by many users of Microsoft products ( | ||
| 1033 | @samp{W Y f} gives you full deuglify. | ||
| 1034 | See @samp{W Y C-h} or | ||
| 1035 | have a look at the menus for other deuglifications). | ||
| 1036 | Outlook deuglify is only available since Gnus 5.10. | ||
| 1037 | |||
| 1038 | @ifnottex | ||
| 1039 | @node [4.9], [4.10], [4.8], FAQ 4 - Reading messages | ||
| 1040 | @end ifnottex | ||
| 1041 | @subsubheading Question 4.9: | ||
| 1042 | |||
| 1043 | Is there a way to automatically ignore posts by specific | ||
| 1044 | authors or with specific words in the subject? And can I | ||
| 1045 | highlight more interesting ones in some way? | ||
| 1046 | |||
| 1047 | |||
| 1048 | Answer: | ||
| 1049 | |||
| 1050 | You want Scoring. Scoring means, that you define rules | ||
| 1051 | which assign each message an integer value. Depending on | ||
| 1052 | the value the message is highlighted in summary buffer (if | ||
| 1053 | it's high, say +2000) or automatically marked read (if the | ||
| 1054 | value is low, say -800) or some other action happens. | ||
| 1055 | |||
| 1056 | |||
| 1057 | There are basically three ways of setting up rules which assign | ||
| 1058 | the scoring-value to messages. The first and easiest way is to set | ||
| 1059 | up rules based on the article you are just reading. Say you're | ||
| 1060 | reading a message by a guy who always writes nonsense and you want | ||
| 1061 | to ignore his messages in the future. Hit | ||
| 1062 | @samp{L}, to set up a rule which lowers the score. | ||
| 1063 | Now Gnus asks you which the criteria for lowering the Score shall | ||
| 1064 | be. Hit @samp{?} twice to see all possibilities, | ||
| 1065 | we want @samp{a} which means the author (the from | ||
| 1066 | header). Now Gnus wants to know which kind of matching we want. | ||
| 1067 | Hit either @samp{e} for an exact match or | ||
| 1068 | @samp{s} for substring-match and delete afterwards | ||
| 1069 | everything but the name to score down all authors with the given | ||
| 1070 | name no matter which email address is used. Now you need to tell | ||
| 1071 | Gnus when to apply the rule and how long it should last, hit e.g. | ||
| 1072 | @samp{p} to apply the rule now and let it last | ||
| 1073 | forever. If you want to raise the score instead of lowering it say | ||
| 1074 | @samp{I} instead of @samp{L}. | ||
| 1075 | |||
| 1076 | 920 | ||
| 1077 | You can also set up rules by hand. To do this say @samp{V | 921 | @node [4.8] |
| 1078 | f} in summary buffer. Then you are asked for the name | 922 | @subsubheading Question 4.8 |
| 1079 | of the score file, it's name.of.group.SCORE for rules valid in | 923 | |
| 1080 | only one group or all.Score for rules valid in all groups. See the | 924 | Is there anything I can do to make poorly formatted mails |
| 1081 | Gnus manual for the exact syntax, basically it's one big list | 925 | more readable? |
| 1082 | whose elements are lists again. the first element of those lists | 926 | |
| 1083 | is the header to score on, then one more list with what to match, | 927 | @subsubheading Answer |
| 1084 | which score to assign, when to expire the rule and how to do the | 928 | |
| 1085 | matching. If you find me very interesting, you could e.g. add the | 929 | Gnus offers you several functions to "wash" incoming mail, you can |
| 1086 | following to your all.Score: | 930 | find them if you browse through the menu, item |
| 1087 | 931 | Article->Washing. The most interesting ones are probably "Wrap | |
| 932 | long lines" (@samp{W w}), "Decode ROT13" | ||
| 933 | (@samp{W r}) and "Outlook Deuglify" which repairs | ||
| 934 | the dumb quoting used by many users of Microsoft products | ||
| 935 | (@samp{W Y f} gives you full deuglify. | ||
| 936 | See @samp{W Y C-h} or have a look at the menus for | ||
| 937 | other deuglifications). Outlook deuglify is only available since | ||
| 938 | Gnus 5.10. | ||
| 939 | |||
| 940 | @node [4.9] | ||
| 941 | @subsubheading Question 4.9 | ||
| 942 | |||
| 943 | Is there a way to automatically ignore posts by specific | ||
| 944 | authors or with specific words in the subject? And can I | ||
| 945 | highlight more interesting ones in some way? | ||
| 946 | |||
| 947 | @subsubheading Answer | ||
| 948 | |||
| 949 | You want Scoring. Scoring means, that you define rules | ||
| 950 | which assign each message an integer value. Depending on | ||
| 951 | the value the message is highlighted in summary buffer (if | ||
| 952 | it's high, say +2000) or automatically marked read (if the | ||
| 953 | value is low, say -800) or some other action happens. | ||
| 954 | |||
| 955 | There are basically three ways of setting up rules which assign | ||
| 956 | the scoring-value to messages. The first and easiest way is to set | ||
| 957 | up rules based on the article you are just reading. Say you're | ||
| 958 | reading a message by a guy who always writes nonsense and you want | ||
| 959 | to ignore his messages in the future. Hit | ||
| 960 | @samp{L}, to set up a rule which lowers the score. | ||
| 961 | Now Gnus asks you which the criteria for lowering the Score shall | ||
| 962 | be. Hit @samp{?} twice to see all possibilities, | ||
| 963 | we want @samp{a} which means the author (the from | ||
| 964 | header). Now Gnus wants to know which kind of matching we want. | ||
| 965 | Hit either @samp{e} for an exact match or | ||
| 966 | @samp{s} for substring-match and delete afterwards | ||
| 967 | everything but the name to score down all authors with the given | ||
| 968 | name no matter which email address is used. Now you need to tell | ||
| 969 | Gnus when to apply the rule and how long it should last, hit e.g. | ||
| 970 | @samp{p} to apply the rule now and let it last | ||
| 971 | forever. If you want to raise the score instead of lowering it say | ||
| 972 | @samp{I} instead of @samp{L}. | ||
| 973 | |||
| 974 | You can also set up rules by hand. To do this say @samp{V | ||
| 975 | f} in summary buffer. Then you are asked for the name | ||
| 976 | of the score file, it's name.of.group.SCORE for rules valid in | ||
| 977 | only one group or all.Score for rules valid in all groups. See the | ||
| 978 | Gnus manual for the exact syntax, basically it's one big list | ||
| 979 | whose elements are lists again. the first element of those lists | ||
| 980 | is the header to score on, then one more list with what to match, | ||
| 981 | which score to assign, when to expire the rule and how to do the | ||
| 982 | matching. If you find me very interesting, you could e.g. add the | ||
| 983 | following to your all.Score: | ||
| 1088 | 984 | ||
| 1089 | @example | 985 | @example |
| 1090 | (("references" ("hschmi22.userfqdn.rz-online.de" 500 nil s)) | 986 | (("references" ("hschmi22.userfqdn.rz-online.de" 500 nil s)) |
| 1091 | ("message-id" ("hschmi22.userfqdn.rz-online.de" 999 nil s))) | 987 | ("message-id" ("hschmi22.userfqdn.rz-online.de" 999 nil s))) |
| 1092 | @end example | 988 | @end example |
| 1093 | |||
| 1094 | @noindent | 989 | @noindent |
| 1095 | This would add 999 to the score of messages written by me | ||
| 1096 | and 500 to the score of messages which are a (possibly | ||
| 1097 | indirect) answer to a message written by me. Of course | ||
| 1098 | nobody with a sane mind would do this :-) | ||
| 1099 | |||
| 1100 | 990 | ||
| 1101 | The third alternative is adaptive scoring. This means Gnus | 991 | This would add 999 to the score of messages written by me |
| 1102 | watches you and tries to find out what you find | 992 | and 500 to the score of messages which are a (possibly |
| 1103 | interesting and what annoying and sets up rules | 993 | indirect) answer to a message written by me. Of course |
| 1104 | which reflect this. Adaptive scoring can be a huge help | 994 | nobody with a sane mind would do this :-) |
| 1105 | when reading high traffic groups. If you want to activate | 995 | |
| 1106 | adaptive scoring say | 996 | The third alternative is adaptive scoring. This means Gnus |
| 1107 | 997 | watches you and tries to find out what you find | |
| 998 | interesting and what annoying and sets up rules | ||
| 999 | which reflect this. Adaptive scoring can be a huge help | ||
| 1000 | when reading high traffic groups. If you want to activate | ||
| 1001 | adaptive scoring say | ||
| 1108 | 1002 | ||
| 1109 | @example | 1003 | @example |
| 1110 | (setq gnus-use-adaptive-scoring t) | 1004 | (setq gnus-use-adaptive-scoring t) |
| 1111 | @end example | 1005 | @end example |
| 1112 | |||
| 1113 | @noindent | 1006 | @noindent |
| 1114 | in ~/.gnus. | ||
| 1115 | |||
| 1116 | @ifnottex | ||
| 1117 | @node [4.10], [4.11], [4.9], FAQ 4 - Reading messages | ||
| 1118 | @end ifnottex | ||
| 1119 | @subsubheading Question 4.10: | ||
| 1120 | 1007 | ||
| 1121 | How can I disable threading in some (e.g. mail-) groups, or | 1008 | in ~/.gnus.el. |
| 1122 | set other variables specific for some groups? | ||
| 1123 | |||
| 1124 | 1009 | ||
| 1125 | Answer: | 1010 | @node [4.10] |
| 1011 | @subsubheading Question 4.10 | ||
| 1126 | 1012 | ||
| 1127 | While in group buffer move point over the group and hit | 1013 | How can I disable threading in some (e.g. mail-) groups, or |
| 1128 | @samp{G c}, this opens a buffer where you | 1014 | set other variables specific for some groups? |
| 1129 | can set options for the group. At the bottom of the buffer | ||
| 1130 | you'll find an item that allows you to set variables | ||
| 1131 | locally for the group. To disable threading enter | ||
| 1132 | gnus-show-threads as name of variable and nil as | ||
| 1133 | value. Hit button done at the top of the buffer when | ||
| 1134 | you're ready. | ||
| 1135 | |||
| 1136 | @ifnottex | ||
| 1137 | @node [4.11], [4.12], [4.10], FAQ 4 - Reading messages | ||
| 1138 | @end ifnottex | ||
| 1139 | @subsubheading Question 4.11: | ||
| 1140 | 1015 | ||
| 1141 | Can I highlight messages written by me and follow-ups to | 1016 | @subsubheading Answer |
| 1142 | those? | ||
| 1143 | |||
| 1144 | 1017 | ||
| 1145 | Answer: | 1018 | While in group buffer move point over the group and hit |
| 1019 | @samp{G c}, this opens a buffer where you | ||
| 1020 | can set options for the group. At the bottom of the buffer | ||
| 1021 | you'll find an item that allows you to set variables | ||
| 1022 | locally for the group. To disable threading enter | ||
| 1023 | gnus-show-threads as name of variable and nil as | ||
| 1024 | value. Hit button done at the top of the buffer when | ||
| 1025 | you're ready. | ||
| 1146 | 1026 | ||
| 1147 | Stop those "Can I ..." questions, the answer is always yes | 1027 | @node [4.11] |
| 1148 | in Gnus Country :-). It's a three step process: First we | 1028 | @subsubheading Question 4.11 |
| 1149 | make faces (specifications of how summary-line shall look | ||
| 1150 | like) for those postings, then we'll give them some | ||
| 1151 | special score and finally we'll tell Gnus to use the new | ||
| 1152 | faces. You can find detailed instructions on how to do it on | ||
| 1153 | @uref{http://my.gnus.org/Members/dzimmerm/HowTo%2C2002-07-25%2C1027619165012198456/view,my.gnus.org} | ||
| 1154 | |||
| 1155 | @ifnottex | ||
| 1156 | @node [4.12], [4.13], [4.11], FAQ 4 - Reading messages | ||
| 1157 | @end ifnottex | ||
| 1158 | @subsubheading Question 4.12: | ||
| 1159 | |||
| 1160 | The number of total messages in a group which Gnus | ||
| 1161 | displays in group buffer is by far to high, especially in | ||
| 1162 | mail groups. Is this a bug? | ||
| 1163 | |||
| 1164 | 1029 | ||
| 1165 | Answer: | 1030 | Can I highlight messages written by me and follow-ups to |
| 1166 | 1031 | those? | |
| 1167 | No, that's a matter of design of Gnus, fixing this would | ||
| 1168 | mean reimplementation of major parts of Gnus' | ||
| 1169 | back ends. Gnus thinks "highest-article-number - | ||
| 1170 | lowest-article-number = total-number-of-articles". This | ||
| 1171 | works OK for Usenet groups, but if you delete and move | ||
| 1172 | many messages in mail groups, this fails. To cure the | ||
| 1173 | symptom, enter the group via @samp{C-u RET} | ||
| 1174 | (this makes Gnus get all messages), then | ||
| 1175 | hit @samp{M P b} to mark all messages and | ||
| 1176 | then say @samp{B m name.of.group} to move | ||
| 1177 | all messages to the group they have been in before, they | ||
| 1178 | get new message numbers in this process and the count is | ||
| 1179 | right again (until you delete and move your mail to other | ||
| 1180 | groups again). | ||
| 1181 | |||
| 1182 | @ifnottex | ||
| 1183 | @node [4.13], [4.14], [4.12], FAQ 4 - Reading messages | ||
| 1184 | @end ifnottex | ||
| 1185 | @subsubheading Question 4.13: | ||
| 1186 | 1032 | ||
| 1187 | I don't like the layout of summary and article buffer, how | 1033 | @subsubheading Answer |
| 1188 | to change it? Perhaps even a three pane display? | ||
| 1189 | |||
| 1190 | 1034 | ||
| 1191 | Answer: | 1035 | Stop those "Can I ..." questions, the answer is always yes |
| 1036 | in Gnus Country :-). It's a three step process: First we | ||
| 1037 | make faces (specifications of how summary-line shall look | ||
| 1038 | like) for those postings, then we'll give them some | ||
| 1039 | special score and finally we'll tell Gnus to use the new | ||
| 1040 | faces. You can find detailed instructions on how to do it on | ||
| 1041 | @uref{http://my.gnus.org/node/view/224, my.gnus.org} | ||
| 1192 | 1042 | ||
| 1193 | You can control the windows configuration by calling the | 1043 | @node [4.12] |
| 1194 | function gnus-add-configuration. The syntax is a bit | 1044 | @subsubheading Question 4.12 |
| 1195 | complicated but explained very well in the manual node | ||
| 1196 | "Window Layout". Some popular examples: | ||
| 1197 | |||
| 1198 | 1045 | ||
| 1199 | Instead 25% summary 75% article buffer 35% summary and 65% | 1046 | The number of total messages in a group which Gnus |
| 1200 | article (the 1.0 for article means "take the remaining | 1047 | displays in group buffer is by far to high, especially in |
| 1201 | space"): | 1048 | mail groups. Is this a bug? |
| 1202 | 1049 | ||
| 1050 | @subsubheading Answer | ||
| 1051 | |||
| 1052 | No, that's a matter of design of Gnus, fixing this would | ||
| 1053 | mean reimplementation of major parts of Gnus' | ||
| 1054 | back ends. Gnus thinks "highest-article-number - | ||
| 1055 | lowest-article-number = total-number-of-articles". This | ||
| 1056 | works OK for Usenet groups, but if you delete and move | ||
| 1057 | many messages in mail groups, this fails. To cure the | ||
| 1058 | symptom, enter the group via @samp{C-u RET} | ||
| 1059 | (this makes Gnus get all messages), then | ||
| 1060 | hit @samp{M P b} to mark all messages and | ||
| 1061 | then say @samp{B m name.of.group} to move | ||
| 1062 | all messages to the group they have been in before, they | ||
| 1063 | get new message numbers in this process and the count is | ||
| 1064 | right again (until you delete and move your mail to other | ||
| 1065 | groups again). | ||
| 1066 | |||
| 1067 | @node [4.13] | ||
| 1068 | @subsubheading Question 4.13 | ||
| 1069 | |||
| 1070 | I don't like the layout of summary and article buffer, how | ||
| 1071 | to change it? Perhaps even a three pane display? | ||
| 1072 | |||
| 1073 | @subsubheading Answer | ||
| 1074 | |||
| 1075 | You can control the windows configuration by calling the | ||
| 1076 | function gnus-add-configuration. The syntax is a bit | ||
| 1077 | complicated but explained very well in the manual node | ||
| 1078 | "Window Layout". Some popular examples: | ||
| 1079 | |||
| 1080 | Instead 25% summary 75% article buffer 35% summary and 65% | ||
| 1081 | article (the 1.0 for article means "take the remaining | ||
| 1082 | space"): | ||
| 1203 | 1083 | ||
| 1204 | @example | 1084 | @example |
| 1205 | (gnus-add-configuration | 1085 | (gnus-add-configuration |
| 1206 | '(article (vertical 1.0 | 1086 | '(article (vertical 1.0 (summary .35 point) (article 1.0)))) |
| 1207 | (summary .35 point) | ||
| 1208 | (article 1.0)))) | ||
| 1209 | @end example | 1087 | @end example |
| 1210 | 1088 | @noindent | |
| 1211 | 1089 | ||
| 1212 | A three pane layout, Group buffer on the left, summary | 1090 | A three pane layout, Group buffer on the left, summary |
| 1213 | buffer top-right, article buffer bottom-right: | 1091 | buffer top-right, article buffer bottom-right: |
| 1214 | |||
| 1215 | 1092 | ||
| 1216 | @example | 1093 | @example |
| 1217 | (gnus-add-configuration | 1094 | (gnus-add-configuration |
| @@ -1228,46 +1105,40 @@ Answer: | |||
| 1228 | (vertical 25 | 1105 | (vertical 25 |
| 1229 | (group 1.0)) | 1106 | (group 1.0)) |
| 1230 | (vertical 1.0 | 1107 | (vertical 1.0 |
| 1231 | (summary 1.0 point))))) | 1108 | (summary 1.0 point))))) |
| 1232 | @end example | 1109 | @end example |
| 1233 | 1110 | @noindent | |
| 1234 | @ifnottex | ||
| 1235 | @node [4.14], [4.15], [4.13], FAQ 4 - Reading messages | ||
| 1236 | @end ifnottex | ||
| 1237 | @subsubheading Question 4.14: | ||
| 1238 | 1111 | ||
| 1239 | I don't like the way the Summary buffer looks, how to tweak it? | 1112 | @node [4.14] |
| 1240 | 1113 | @subsubheading Question 4.14 | |
| 1241 | 1114 | ||
| 1242 | Answer: | 1115 | I don't like the way the Summary buffer looks, how to tweak it? |
| 1243 | |||
| 1244 | You've got to play around with the variable | ||
| 1245 | gnus-summary-line-format. It's value is a string of | ||
| 1246 | symbols which stand for things like author, date, subject | ||
| 1247 | etc. A list of the available specifiers can be found in the | ||
| 1248 | manual node "Summary Buffer Lines" and the often forgotten | ||
| 1249 | node "Formatting Variables" and it's sub-nodes. There | ||
| 1250 | you'll find useful things like positioning the cursor and | ||
| 1251 | tabulators which allow you a summary in table form, but | ||
| 1252 | sadly hard tabulators are broken in 5.8.8. | ||
| 1253 | |||
| 1254 | 1116 | ||
| 1255 | Since 5.10, Gnus offers you some very nice new specifiers, | 1117 | @subsubheading Answer |
| 1256 | e.g. %B which draws a thread-tree and %&user-date which | 1118 | |
| 1257 | gives you a date where the details are dependent of the | 1119 | You've got to play around with the variable |
| 1258 | articles age. Here's an example which uses both: | 1120 | gnus-summary-line-format. It's value is a string of |
| 1259 | 1121 | symbols which stand for things like author, date, subject | |
| 1122 | etc. A list of the available specifiers can be found in the | ||
| 1123 | manual node "Summary Buffer Lines" and the often forgotten | ||
| 1124 | node "Formatting Variables" and it's sub-nodes. There | ||
| 1125 | you'll find useful things like positioning the cursor and | ||
| 1126 | tabulators which allow you a summary in table form, but | ||
| 1127 | sadly hard tabulators are broken in 5.8.8. | ||
| 1128 | |||
| 1129 | Since 5.10, Gnus offers you some very nice new specifiers, | ||
| 1130 | e.g. %B which draws a thread-tree and %&user-date which | ||
| 1131 | gives you a date where the details are dependent of the | ||
| 1132 | articles age. Here's an example which uses both: | ||
| 1260 | 1133 | ||
| 1261 | @example | 1134 | @example |
| 1262 | (setq gnus-summary-line-format | 1135 | (setq gnus-summary-line-format ":%U%R %B %s %-60=|%4L |%-20,20f |%&user-date; \n") |
| 1263 | ":%U%R %B %s %-60=|%4L |%-20,20f |%&user-date; \n") | ||
| 1264 | @end example | 1136 | @end example |
| 1265 | |||
| 1266 | @noindent | 1137 | @noindent |
| 1267 | resulting in: | ||
| 1268 | |||
| 1269 | 1138 | ||
| 1270 | @smallexample | 1139 | resulting in: |
| 1140 | |||
| 1141 | @example | ||
| 1271 | :O Re: [Richard Stallman] rfc2047.el | 13 |Lars Magne Ingebrigt |Sat 23:06 | 1142 | :O Re: [Richard Stallman] rfc2047.el | 13 |Lars Magne Ingebrigt |Sat 23:06 |
| 1272 | :O Re: Revival of the ding-patches list | 13 |Lars Magne Ingebrigt |Sat 23:12 | 1143 | :O Re: Revival of the ding-patches list | 13 |Lars Magne Ingebrigt |Sat 23:12 |
| 1273 | :R > Re: Find correct list of articles for a gro| 25 |Lars Magne Ingebrigt |Sat 23:16 | 1144 | :R > Re: Find correct list of articles for a gro| 25 |Lars Magne Ingebrigt |Sat 23:16 |
| @@ -1280,54 +1151,48 @@ Answer: | |||
| 1280 | :R > Re: Gnus still doesn't count messages prope| 23 |Lars Magne Ingebrigt |Sat 23:57 | 1151 | :R > Re: Gnus still doesn't count messages prope| 23 |Lars Magne Ingebrigt |Sat 23:57 |
| 1281 | :O \-> ... | 18 |Kai Grossjohann | 0:35 | 1152 | :O \-> ... | 18 |Kai Grossjohann | 0:35 |
| 1282 | :O \-> ... | 13 |Lars Magne Ingebrigt | 0:56 | 1153 | :O \-> ... | 13 |Lars Magne Ingebrigt | 0:56 |
| 1283 | @end smallexample | 1154 | @end example |
| 1284 | 1155 | @noindent | |
| 1285 | @ifnottex | ||
| 1286 | @node [4.15], , [4.14], FAQ 4 - Reading messages | ||
| 1287 | @end ifnottex | ||
| 1288 | @subsubheading Question 4.15: | ||
| 1289 | 1156 | ||
| 1290 | How to split incoming mails in several groups? | 1157 | @node [4.15] |
| 1291 | 1158 | @subsubheading Question 4.15 | |
| 1292 | 1159 | ||
| 1293 | Answer: | 1160 | How to split incoming mails in several groups? |
| 1294 | 1161 | ||
| 1295 | Gnus offers two possibilities for splitting mail, the easy | 1162 | @subsubheading Answer |
| 1296 | nnmail-split-methods and the more powerful Fancy Mail | ||
| 1297 | Splitting. I'll only talk about the first one, refer to | ||
| 1298 | the manual, node "Fancy Mail Splitting" for the latter. | ||
| 1299 | |||
| 1300 | 1163 | ||
| 1301 | The value of nnmail-split-methods is a list, each element | 1164 | Gnus offers two possibilities for splitting mail, the easy |
| 1302 | is a list which stands for a splitting rule. Each rule has | 1165 | nnmail-split-methods and the more powerful Fancy Mail |
| 1303 | the form "group where matching articles should go to", | 1166 | Splitting. I'll only talk about the first one, refer to |
| 1304 | "regular expression which has to be matched", the first | 1167 | the manual, node "Fancy Mail Splitting" for the latter. |
| 1305 | rule which matches wins. The last rule must always be a | 1168 | |
| 1306 | general rule (regular expression .*) which denotes where | 1169 | The value of nnmail-split-methods is a list, each element |
| 1307 | articles should go which don't match any other rule. If | 1170 | is a list which stands for a splitting rule. Each rule has |
| 1308 | the folder doesn't exist yet, it will be created as soon | 1171 | the form "group where matching articles should go to", |
| 1309 | as an article lands there. By default the mail will be | 1172 | "regular expression which has to be matched", the first |
| 1310 | send to all groups whose rules match. If you | 1173 | rule which matches wins. The last rule must always be a |
| 1311 | don't want that (you probably don't want), say | 1174 | general rule (regular expression .*) which denotes where |
| 1312 | 1175 | articles should go which don't match any other rule. If | |
| 1176 | the folder doesn't exist yet, it will be created as soon | ||
| 1177 | as an article lands there. By default the mail will be | ||
| 1178 | send to all groups whose rules match. If you | ||
| 1179 | don't want that (you probably don't want), say | ||
| 1313 | 1180 | ||
| 1314 | @example | 1181 | @example |
| 1315 | (setq nnmail-crosspost nil) | 1182 | (setq nnmail-crosspost nil) |
| 1316 | @end example | 1183 | @end example |
| 1317 | |||
| 1318 | @noindent | 1184 | @noindent |
| 1319 | in ~/.gnus. | ||
| 1320 | |||
| 1321 | 1185 | ||
| 1322 | An example might be better than thousand words, so here's | 1186 | in ~/.gnus.el. |
| 1323 | my nnmail-split-methods. Note that I send duplicates in a | 1187 | |
| 1324 | special group and that the default group is spam, since I | 1188 | An example might be better than thousand words, so here's |
| 1325 | filter all mails out which are from some list I'm | 1189 | my nnmail-split-methods. Note that I send duplicates in a |
| 1326 | subscribed to or which are addressed directly to me | 1190 | special group and that the default group is spam, since I |
| 1327 | before. Those rules kill about 80% of the Spam which | 1191 | filter all mails out which are from some list I'm |
| 1328 | reaches me (Email addresses are changed to prevent spammers | 1192 | subscribed to or which are addressed directly to me |
| 1329 | from using them): | 1193 | before. Those rules kill about 80% of the Spam which |
| 1330 | 1194 | reaches me (Email addresses are changed to prevent spammers | |
| 1195 | from using them): | ||
| 1331 | 1196 | ||
| 1332 | @example | 1197 | @example |
| 1333 | (setq nnmail-split-methods | 1198 | (setq nnmail-split-methods |
| @@ -1336,133 +1201,114 @@ Answer: | |||
| 1336 | ("Gnus-Tut" "^\\(To:\\|CC:\\).*localpart@@socha.bla.*") | 1201 | ("Gnus-Tut" "^\\(To:\\|CC:\\).*localpart@@socha.bla.*") |
| 1337 | ("tcsh" "^\\(To:\\|CC:\\).*localpart@@mx.gw.bla.*") | 1202 | ("tcsh" "^\\(To:\\|CC:\\).*localpart@@mx.gw.bla.*") |
| 1338 | ("BAfH" "^\\(To:\\|CC:\\).*localpart@@.*uni-muenchen.bla.*") | 1203 | ("BAfH" "^\\(To:\\|CC:\\).*localpart@@.*uni-muenchen.bla.*") |
| 1339 | ("Hamster-src" | 1204 | ("Hamster-src" "^\\(CC:\\|To:\\).*hamster-sourcen@@yahoogroups.\\(de\\|com\\).*") |
| 1340 | "^\\(CC:\\|To:\\).*hamster-sourcen@@yahoogroups.\\(de\\|com\\).*") | ||
| 1341 | ("Tagesschau" "^From: tagesschau <localpart@@www.tagesschau.bla>$") | 1205 | ("Tagesschau" "^From: tagesschau <localpart@@www.tagesschau.bla>$") |
| 1342 | ("Replies" "^\\(CC:\\|To:\\).*localpart@@Frank-Schmitt.bla.*") | 1206 | ("Replies" "^\\(CC:\\|To:\\).*localpart@@Frank-Schmitt.bla.*") |
| 1343 | ("EK" | 1207 | ("EK" "^From:.*\\(localpart@@privateprovider.bla\\|localpart@@workplace.bla\\).*") |
| 1344 | "^From:.*\\(localpart@@privateprovider.bla\\|localpart@@workplace.bla\\).*") | 1208 | ("Spam" "^Content-Type:.*\\(ks_c_5601-1987\\|EUC-KR\\|big5\\|iso-2022-jp\\).*") |
| 1345 | ("Spam" | 1209 | ("Spam" "^Subject:.*\\(This really work\\|XINGA\\|ADV:\\|XXX\\|adult\\|sex\\).*") |
| 1346 | "^Content-Type:.*\\(ks_c_5601-1987\\|EUC-KR\\|big5\\|iso-2022-jp\\).*") | 1210 | ("Spam" "^Subject:.*\\(\=\?ks_c_5601-1987\?\\|\=\?euc-kr\?\\|\=\?big5\?\\).*") |
| 1347 | ("Spam" | ||
| 1348 | "^Subject:.*\\(This really work\\|XINGA\\|ADV:\\|XXX\\|adult\\|sex\\).*") | ||
| 1349 | ("Spam" | ||
| 1350 | "^Subject:.*\\(\=\?ks_c_5601-1987\?\\|\=\?euc-kr\?\\|\=\?big5\?\\).*") | ||
| 1351 | ("Spam" "^X-Mailer:\\(.*BulkMailer.*\\|.*MIME::Lite.*\\|\\)") | 1211 | ("Spam" "^X-Mailer:\\(.*BulkMailer.*\\|.*MIME::Lite.*\\|\\)") |
| 1352 | ("Spam" | 1212 | ("Spam" "^X-Mailer:\\(.*CyberCreek Avalanche\\|.*http\:\/\/GetResponse\.com\\)") |
| 1353 | "^X-Mailer:\\(.*CyberCreek Avalanche\\|.*http\:\/\/GetResponse\.com\\)") | 1213 | ("Spam" "^From:.*\\(verizon\.net\\|prontomail\.com\\|money\\|ConsumerDirect\\).*") |
| 1354 | ("Spam" | ||
| 1355 | "^From:.*\\(verizon\.net\\|prontomail\.com\\|money\\|ConsumerDirect\\).*") | ||
| 1356 | ("Spam" "^Delivered-To: GMX delivery to spamtrap@@gmx.bla$") | 1214 | ("Spam" "^Delivered-To: GMX delivery to spamtrap@@gmx.bla$") |
| 1357 | ("Spam" "^Received: from link2buy.com") | 1215 | ("Spam" "^Received: from link2buy.com") |
| 1358 | ("Spam" "^CC: .*azzrael@@t-online.bla") | 1216 | ("Spam" "^CC: .*azzrael@@t-online.bla") |
| 1359 | ("Spam" "^X-Mailer-Version: 1.50 BETA") | 1217 | ("Spam" "^X-Mailer-Version: 1.50 BETA") |
| 1360 | ("Uni" "^\\(CC:\\|To:\\).*localpart@@uni-koblenz.bla.*") | 1218 | ("Uni" "^\\(CC:\\|To:\\).*localpart@@uni-koblenz.bla.*") |
| 1361 | ("Inbox" | 1219 | ("Inbox" "^\\(CC:\\|To:\\).*\\(my\ name\\|address@@one.bla\\|adress@@two.bla\\)") |
| 1362 | "^\\(CC:\\|To:\\).*\\(my\ name\\|address@@one.bla\\|adress@@two.bla\\)") | ||
| 1363 | ("Spam" ""))) | 1220 | ("Spam" ""))) |
| 1364 | @end example | 1221 | @end example |
| 1365 | 1222 | @noindent | |
| 1366 | 1223 | ||
| 1367 | @ifnottex | 1224 | @node FAQ 5 - Composing messages |
| 1368 | @node FAQ 5 - Composing messages, FAQ 6 - Old messages, FAQ 4 - Reading messages, Frequently Asked Questions | ||
| 1369 | @end ifnottex | ||
| 1370 | @subsection Composing messages | 1225 | @subsection Composing messages |
| 1371 | 1226 | ||
| 1372 | @menu | 1227 | @menu |
| 1373 | * [5.1]:: What are the basic commands I need to know for sending mail and | 1228 | * [5.1]:: What are the basic commands I need to know for sending |
| 1374 | postings? | 1229 | mail and postings? |
| 1375 | * [5.2]:: How to enable automatic word-wrap when composing messages? | 1230 | * [5.2]:: How to enable automatic word-wrap when composing messages? |
| 1376 | * [5.3]:: How to set stuff like From, Organization, Reply-To, signature...? | 1231 | * [5.3]:: How to set stuff like From, Organization, Reply-To, |
| 1377 | * [5.4]:: Can I set things like From, Signature etc group based on the | 1232 | signature...? |
| 1378 | group I post too? | 1233 | * [5.4]:: Can I set things like From, Signature etc group based on |
| 1379 | * [5.5]:: Is there a spell-checker? Perhaps even on-the-fly spell-checking? | 1234 | the group I post too? |
| 1380 | * [5.6]:: Can I set the dictionary based on the group I'm posting to? | 1235 | * [5.5]:: Is there a spell-checker? Perhaps even on-the-fly |
| 1381 | * [5.7]:: Is there some kind of address-book, so I needn't remember all | 1236 | spell-checking? |
| 1382 | those email addresses? | 1237 | * [5.6]:: Can I set the dictionary based on the group I'm posting |
| 1383 | * [5.8]:: Sometimes I see little images at the top of article buffer. | 1238 | to? |
| 1384 | What's that and how can I send one with my postings, too? | 1239 | * [5.7]:: Is there some kind of address-book, so I needn't remember |
| 1385 | * [5.9]:: Sometimes I accidentally hit r instead of f in newsgroups. | 1240 | all those email addresses? |
| 1386 | Can Gnus warn me, when I'm replying by mail in newsgroups? | 1241 | * [5.8]:: Sometimes I see little images at the top of article |
| 1387 | * [5.10]:: How to tell Gnus not to generate a sender header? | 1242 | buffer. What's that and how can I send one with my postings, too? |
| 1388 | * [5.11]:: I want Gnus to locally store copies of my send mail and news, | 1243 | * [5.9]:: Sometimes I accidentally hit r instead of f in newsgroups. |
| 1389 | how to do it? | 1244 | Can Gnus warn me, when I'm replying by mail in newsgroups? |
| 1390 | * [5.12]:: People tell me my Message-IDs are not correct, | 1245 | * [5.10]:: How to tell Gnus not to generate a sender header? |
| 1391 | why aren't they and how to fix it? | 1246 | * [5.11]:: I want Gnus to locally store copies of my send mail and |
| 1247 | news, how to do it? | ||
| 1248 | * [5.12]:: People tell me my Message-IDs are not correct, why aren't | ||
| 1249 | they and how to fix it? | ||
| 1392 | @end menu | 1250 | @end menu |
| 1393 | 1251 | ||
| 1394 | @ifnottex | 1252 | @node [5.1] |
| 1395 | @node [5.1], [5.2], FAQ 5 - Composing messages, FAQ 5 - Composing messages | 1253 | @subsubheading Question 5.1 |
| 1396 | @end ifnottex | ||
| 1397 | @subsubheading Question 5.1: | ||
| 1398 | 1254 | ||
| 1399 | What are the basic commands I need to know for sending mail and postings? | 1255 | What are the basic commands I need to know for sending mail and postings? |
| 1400 | |||
| 1401 | 1256 | ||
| 1402 | Answer: | 1257 | @subsubheading Answer |
| 1403 | |||
| 1404 | To start composing a new mail hit @samp{m} | ||
| 1405 | either in Group or Summary buffer, for a posting, it's | ||
| 1406 | either @samp{a} in Group buffer and | ||
| 1407 | filling the Newsgroups header manually | ||
| 1408 | or @samp{a} in the Summary buffer of the | ||
| 1409 | group where the posting shall be send to. Replying by mail | ||
| 1410 | is | ||
| 1411 | @samp{r} if you don't want to cite the | ||
| 1412 | author, or import the cited text manually and | ||
| 1413 | @samp{R} to cite the text of the original | ||
| 1414 | message. For a follow up to a newsgroup, it's | ||
| 1415 | @samp{f} and @samp{F} | ||
| 1416 | (analog to @samp{r} and | ||
| 1417 | @samp{R}). | ||
| 1418 | |||
| 1419 | 1258 | ||
| 1420 | Enter new headers above the line saying "--text follows | 1259 | To start composing a new mail hit @samp{m} |
| 1421 | this line--", enter the text below the line. When ready | 1260 | either in Group or Summary buffer, for a posting, it's |
| 1422 | hit @samp{C-c C-c}, to send the message, | 1261 | either @samp{a} in Group buffer and |
| 1423 | if you want to finish it later hit @samp{C-c | 1262 | filling the Newsgroups header manually |
| 1424 | C-d} to save it in the drafts group, where you | 1263 | or @samp{a} in the Summary buffer of the |
| 1425 | can start editing it again by saying @samp{D | 1264 | group where the posting shall be send to. Replying by mail |
| 1426 | e}. | 1265 | is |
| 1427 | 1266 | @samp{r} if you don't want to cite the | |
| 1428 | @ifnottex | 1267 | author, or import the cited text manually and |
| 1429 | @node [5.2], [5.3], [5.1], FAQ 5 - Composing messages | 1268 | @samp{R} to cite the text of the original |
| 1430 | @end ifnottex | 1269 | message. For a follow up to a newsgroup, it's |
| 1431 | @subsubheading Question 5.2: | 1270 | @samp{f} and @samp{F} |
| 1271 | (analogously to @samp{r} and | ||
| 1272 | @samp{R}). | ||
| 1432 | 1273 | ||
| 1433 | How to enable automatic word-wrap when composing messages? | 1274 | Enter new headers above the line saying "--text follows |
| 1434 | 1275 | this line--", enter the text below the line. When ready | |
| 1276 | hit @samp{C-c C-c}, to send the message, | ||
| 1277 | if you want to finish it later hit @samp{C-c | ||
| 1278 | C-d} to save it in the drafts group, where you | ||
| 1279 | can start editing it again by saying @samp{D | ||
| 1280 | e}. | ||
| 1435 | 1281 | ||
| 1436 | Answer: | 1282 | @node [5.2] |
| 1283 | @subsubheading Question 5.2 | ||
| 1437 | 1284 | ||
| 1438 | Say | 1285 | How to enable automatic word-wrap when composing messages? |
| 1439 | 1286 | ||
| 1287 | @subsubheading Answer | ||
| 1288 | |||
| 1289 | Say | ||
| 1440 | 1290 | ||
| 1441 | @example | 1291 | @example |
| 1442 | (add-hook 'message-mode-hook | 1292 | (add-hook 'message-mode-hook |
| 1443 | (lambda () | 1293 | (lambda () |
| 1444 | (setq fill-column 72) | 1294 | (setq fill-column 72) |
| 1445 | (turn-on-auto-fill))) | 1295 | (turn-on-auto-fill))) |
| 1446 | @end example | 1296 | @end example |
| 1447 | |||
| 1448 | @noindent | 1297 | @noindent |
| 1449 | in ~/.gnus. You can reformat a paragraph by hitting | ||
| 1450 | @samp{M-q} (as usual) | ||
| 1451 | |||
| 1452 | @ifnottex | ||
| 1453 | @node [5.3], [5.4], [5.2], FAQ 5 - Composing messages | ||
| 1454 | @end ifnottex | ||
| 1455 | @subsubheading Question 5.3: | ||
| 1456 | 1298 | ||
| 1457 | How to set stuff like From, Organization, Reply-To, signature...? | 1299 | in ~/.gnus.el. You can reformat a paragraph by hitting |
| 1458 | 1300 | @samp{M-q} (as usual) | |
| 1459 | 1301 | ||
| 1460 | Answer: | 1302 | @node [5.3] |
| 1303 | @subsubheading Question 5.3 | ||
| 1461 | 1304 | ||
| 1462 | There are other ways, but you should use posting styles | 1305 | How to set stuff like From, Organization, Reply-To, signature...? |
| 1463 | for this. (See below why). | 1306 | |
| 1464 | This example should make the syntax clear: | 1307 | @subsubheading Answer |
| 1465 | 1308 | ||
| 1309 | There are other ways, but you should use posting styles | ||
| 1310 | for this. (See below why). | ||
| 1311 | This example should make the syntax clear: | ||
| 1466 | 1312 | ||
| 1467 | @example | 1313 | @example |
| 1468 | (setq gnus-posting-styles | 1314 | (setq gnus-posting-styles |
| @@ -1474,146 +1320,121 @@ Answer: | |||
| 1474 | ("X-SampleHeader" "foobar") | 1320 | ("X-SampleHeader" "foobar") |
| 1475 | (eval (setq some-variable "Foo bar"))))) | 1321 | (eval (setq some-variable "Foo bar"))))) |
| 1476 | @end example | 1322 | @end example |
| 1477 | |||
| 1478 | @noindent | 1323 | @noindent |
| 1479 | The ".*" means that this settings are the default ones | ||
| 1480 | (see below), valid values for the first element of the | ||
| 1481 | following lists are signature, signature-file, | ||
| 1482 | organization, address, name or body. The attribute name | ||
| 1483 | can also be a string. In that case, this will be used as | ||
| 1484 | a header name, and the value will be inserted in the | ||
| 1485 | headers of the article; if the value is `nil', the header | ||
| 1486 | name will be removed. You can also say (eval (foo bar)), | ||
| 1487 | then the function foo will be evaluated with argument bar | ||
| 1488 | and the result will be thrown away. | ||
| 1489 | |||
| 1490 | @ifnottex | ||
| 1491 | @node [5.4], [5.5], [5.3], FAQ 5 - Composing messages | ||
| 1492 | @end ifnottex | ||
| 1493 | @subsubheading Question 5.4: | ||
| 1494 | |||
| 1495 | Can I set things like From, Signature etc group based on the group I post too? | ||
| 1496 | |||
| 1497 | 1324 | ||
| 1498 | Answer: | 1325 | The ".*" means that this settings are the default ones |
| 1499 | 1326 | (see below), valid values for the first element of the | |
| 1500 | That's the strength of posting styles. Before, we used ".*" | 1327 | following lists are signature, signature-file, |
| 1501 | to set the default for all groups. You can use a regexp | 1328 | organization, address, name or body. The attribute name |
| 1502 | like "^gmane" and the following settings are only applied | 1329 | can also be a string. In that case, this will be used as |
| 1503 | to postings you send to the gmane hierarchy, use | 1330 | a header name, and the value will be inserted in the |
| 1504 | ".*binaries" instead and they will be applied to postings | 1331 | headers of the article; if the value is `nil', the header |
| 1505 | send to groups containing the string binaries in their | 1332 | name will be removed. You can also say (eval (foo bar)), |
| 1506 | name etc. | 1333 | then the function foo will be evaluated with argument bar |
| 1507 | 1334 | and the result will be thrown away. | |
| 1508 | 1335 | ||
| 1509 | You can instead of specifying a regexp specify a function | 1336 | @node [5.4] |
| 1510 | which is evaluated, only if it returns true, the | 1337 | @subsubheading Question 5.4 |
| 1511 | corresponding settings take effect. Two interesting | 1338 | |
| 1512 | candidates for this are message-news-p which returns t if | 1339 | Can I set things like From, Signature etc group based on the group I post too? |
| 1513 | the current Group is a newsgroup and the corresponding | 1340 | |
| 1514 | message-mail-p. | 1341 | @subsubheading Answer |
| 1515 | 1342 | ||
| 1516 | 1343 | That's the strength of posting styles. Before, we used ".*" | |
| 1517 | Note that all forms that match are applied, that means in | 1344 | to set the default for all groups. You can use a regexp |
| 1518 | the example below, when I post to | 1345 | like "^gmane" and the following settings are only applied |
| 1519 | gmane.mail.spam.spamassassin.general, the settings under | 1346 | to postings you send to the gmane hierarchy, use |
| 1520 | ".*" are applied and the settings under message-news-p and | 1347 | ".*binaries" instead and they will be applied to postings |
| 1521 | those under "^gmane" and those under | 1348 | send to groups containing the string binaries in their |
| 1522 | "^gmane\\.mail\\.spam\\.spamassassin\\.general$". Because | 1349 | name etc. |
| 1523 | of this put general settings at the top and specific ones | 1350 | |
| 1524 | at the bottom. | 1351 | You can instead of specifying a regexp specify a function |
| 1525 | 1352 | which is evaluated, only if it returns true, the | |
| 1353 | corresponding settings take effect. Two interesting | ||
| 1354 | candidates for this are message-news-p which returns t if | ||
| 1355 | the current Group is a newsgroup and the corresponding | ||
| 1356 | message-mail-p. | ||
| 1357 | |||
| 1358 | Note that all forms that match are applied, that means in | ||
| 1359 | the example below, when I post to | ||
| 1360 | gmane.mail.spam.spamassassin.general, the settings under | ||
| 1361 | ".*" are applied and the settings under message-news-p and | ||
| 1362 | those under "^gmane" and those under | ||
| 1363 | "^gmane\\.mail\\.spam\\.spamassassin\\.general$". Because | ||
| 1364 | of this put general settings at the top and specific ones | ||
| 1365 | at the bottom. | ||
| 1526 | 1366 | ||
| 1527 | @example | 1367 | @example |
| 1528 | (setq gnus-posting-styles | 1368 | (setq gnus-posting-styles |
| 1529 | '((".*" ;;default | 1369 | '((".*" ;;default |
| 1530 | (name "Frank Schmitt") | 1370 | (name "Frank Schmitt") |
| 1531 | (organization "Hamme net, kren mer och nimmi") | 1371 | (organization "Hamme net, kren mer och nimmi") |
| 1532 | (signature-file "~/.signature")) | 1372 | (signature-file "~/.signature") ) |
| 1533 | ((message-news-p) ;;Usenet news? | 1373 | ((message-news-p) ;;Usenet news? |
| 1534 | (address "mySpamTrap@@Frank-Schmitt.bla") | 1374 | (address "mySpamTrap@@Frank-Schmitt.bla") |
| 1535 | ("Reply-To" "hereRealRepliesOnlyPlease@@Frank-Schmitt.bla")) | 1375 | ("Reply-To" "hereRealRepliesOnlyPlease@@Frank-Schmitt.bla") ) |
| 1536 | ((message-mail-p) ;;mail? | 1376 | ((message-mail-p) ;;mail? |
| 1537 | (address "usedForMails@@Frank-Schmitt.bla")) | 1377 | (address "usedForMails@@Frank-Schmitt.bla") ) |
| 1538 | ("^gmane" ;;this is mail, too in fact | 1378 | ("^gmane" ;;this is mail, too in fact |
| 1539 | (address "usedForMails@@Frank-Schmitt.net") | 1379 | (address "usedForMails@@Frank-Schmitt.net") |
| 1540 | ("Reply-To" nil)) | 1380 | ("Reply-To" nil) ) |
| 1541 | ("^gmane.mail.spam.spamassassin.general$" | 1381 | ("^gmane.mail.spam.spamassassin.general$" |
| 1542 | (eval (setq mail-envelope-from "Azzrael@@rz-online.de")) | 1382 | (eval (setq mail-envelope-from "Azzrael@@rz-online.de")) |
| 1543 | (address "Azzrael@@rz-online.de")))) | 1383 | (address "Azzrael@@rz-online.de")) )) |
| 1544 | @end example | 1384 | @end example |
| 1545 | 1385 | @noindent | |
| 1546 | @ifnottex | ||
| 1547 | @node [5.5], [5.6], [5.4], FAQ 5 - Composing messages | ||
| 1548 | @end ifnottex | ||
| 1549 | @subsubheading Question 5.5: | ||
| 1550 | 1386 | ||
| 1551 | Is there a spell-checker? Perhaps even on-the-fly spell-checking? | 1387 | @node [5.5] |
| 1552 | 1388 | @subsubheading Question 5.5 | |
| 1553 | 1389 | ||
| 1554 | Answer: | 1390 | Is there a spell-checker? Perhaps even on-the-fly spell-checking? |
| 1555 | 1391 | ||
| 1556 | You can use ispell.el to spell-check stuff in Emacs. So the first | 1392 | @subsubheading Answer |
| 1557 | thing to do is to make sure that you've got either | ||
| 1558 | @itemize @bullet | ||
| 1559 | @item | ||
| 1560 | @uref{http://fmg-www.cs.ucla.edu/fmg-members/geoff/ispell.html,ispell} | ||
| 1561 | or | ||
| 1562 | @item | ||
| 1563 | @uref{http://aspell.sourceforge.net/,aspell} | ||
| 1564 | @end itemize | ||
| 1565 | @noindent | ||
| 1566 | installed and in your Path. | ||
| 1567 | |||
| 1568 | Then you need | ||
| 1569 | @uref{http://www.kdstevens.com/~stevens/ispell-page.html,ispell.el,ispell.el} | ||
| 1570 | and for on-the-fly spell-checking | ||
| 1571 | @uref{http://www-sop.inria.fr/mimosa/personnel/Manuel.Serrano/flyspell/flyspell.html,flyspell.el,flyspell.el}. | ||
| 1572 | Ispell.el is shipped with Gnus Emacs and available through the Emacs | ||
| 1573 | package system, flyspell.el is shipped with Emacs and part of XEmacs | ||
| 1574 | text-modes package which is available through the package system, so | ||
| 1575 | there should be no need to install them manually. | ||
| 1576 | |||
| 1577 | 1393 | ||
| 1578 | Ispell.el assumes you use ispell, if you choose aspell say | 1394 | You can use ispell.el to spell-check stuff in Emacs. So the |
| 1579 | 1395 | first thing to do is to make sure that you've got either | |
| 1396 | @uref{http://fmg-www.cs.ucla.edu/fmg-members/geoff/ispell.html, ispell} | ||
| 1397 | or @uref{http://aspell.sourceforge.net/, aspell} | ||
| 1398 | installed and in your Path. Then you need | ||
| 1399 | @uref{http://www.kdstevens.com/~stevens/ispell-page.html, ispell.el} | ||
| 1400 | and for on-the-fly spell-checking | ||
| 1401 | @uref{http://www-sop.inria.fr/mimosa/personnel/Manuel.Serrano/flyspell/flyspell.html, flyspell.el}. | ||
| 1402 | Ispell.el is shipped with Emacs and available through the XEmacs package system, | ||
| 1403 | flyspell.el is shipped with Emacs and part of XEmacs text-modes package which is | ||
| 1404 | available through the package system, so there should be no need to install them | ||
| 1405 | manually. | ||
| 1406 | |||
| 1407 | Ispell.el assumes you use ispell, if you choose aspell say | ||
| 1580 | 1408 | ||
| 1581 | @example | 1409 | @example |
| 1582 | (setq ispell-program-name "aspell") | 1410 | (setq ispell-program-name "aspell") |
| 1583 | @end example | 1411 | @end example |
| 1584 | |||
| 1585 | |||
| 1586 | @noindent | 1412 | @noindent |
| 1587 | in your Emacs configuration file. | ||
| 1588 | 1413 | ||
| 1414 | in your Emacs configuration file. | ||
| 1589 | 1415 | ||
| 1590 | If you want your outgoing messages to be spell-checked, say | 1416 | If you want your outgoing messages to be spell-checked, say |
| 1591 | |||
| 1592 | 1417 | ||
| 1593 | @example | 1418 | @example |
| 1594 | (add-hook 'message-send-hook 'ispell-message) | 1419 | (add-hook 'message-send-hook 'ispell-message) |
| 1595 | @end example | 1420 | @end example |
| 1596 | |||
| 1597 | @noindent | 1421 | @noindent |
| 1598 | In your ~/.gnus, if you prefer on-the-fly spell-checking say | 1422 | |
| 1599 | 1423 | In your ~/.gnus.el, if you prefer on-the-fly spell-checking say | |
| 1600 | 1424 | ||
| 1601 | @example | 1425 | @example |
| 1602 | (add-hook 'message-mode-hook (lambda () (flyspell-mode 1))) | 1426 | (add-hook 'message-mode-hook (lambda () (flyspell-mode 1))) |
| 1603 | @end example | 1427 | @end example |
| 1604 | 1428 | @noindent | |
| 1605 | @ifnottex | ||
| 1606 | @node [5.6], [5.7], [5.5], FAQ 5 - Composing messages | ||
| 1607 | @end ifnottex | ||
| 1608 | @subsubheading Question 5.6: | ||
| 1609 | 1429 | ||
| 1610 | Can I set the dictionary based on the group I'm posting to? | 1430 | @node [5.6] |
| 1611 | 1431 | @subsubheading Question 5.6 | |
| 1612 | 1432 | ||
| 1613 | Answer: | 1433 | Can I set the dictionary based on the group I'm posting to? |
| 1614 | 1434 | ||
| 1615 | Yes, say something like | 1435 | @subsubheading Answer |
| 1616 | 1436 | ||
| 1437 | Yes, say something like | ||
| 1617 | 1438 | ||
| 1618 | @example | 1439 | @example |
| 1619 | (add-hook 'gnus-select-group-hook | 1440 | (add-hook 'gnus-select-group-hook |
| @@ -1625,55 +1446,47 @@ Answer: | |||
| 1625 | (t | 1446 | (t |
| 1626 | (ispell-change-dictionary "english"))))) | 1447 | (ispell-change-dictionary "english"))))) |
| 1627 | @end example | 1448 | @end example |
| 1628 | |||
| 1629 | |||
| 1630 | @noindent | 1449 | @noindent |
| 1631 | in ~/.gnus. Change "^de\\." and "deutsch8" to something | ||
| 1632 | that suits your needs. | ||
| 1633 | 1450 | ||
| 1634 | @ifnottex | 1451 | in ~/.gnus.el. Change "^de\\." and "deutsch8" to something |
| 1635 | @node [5.7], [5.8], [5.6], FAQ 5 - Composing messages | 1452 | that suits your needs. |
| 1636 | @end ifnottex | ||
| 1637 | @subsubheading Question 5.7: | ||
| 1638 | 1453 | ||
| 1639 | Is there some kind of address-book, so I needn't remember | 1454 | @node [5.7] |
| 1640 | all those email addresses? | 1455 | @subsubheading Question 5.7 |
| 1641 | |||
| 1642 | 1456 | ||
| 1643 | Answer: | 1457 | Is there some kind of address-book, so I needn't remember |
| 1458 | all those email addresses? | ||
| 1644 | 1459 | ||
| 1645 | There's an very basic solution for this, mail aliases. | 1460 | @subsubheading Answer |
| 1646 | You can store your mail addresses in a ~/.mailrc file using a simple | 1461 | |
| 1647 | alias syntax: | 1462 | There's an very basic solution for this, mail aliases. |
| 1648 | 1463 | You can store your mail addresses in a ~/.mailrc file using a simple | |
| 1464 | alias syntax: | ||
| 1649 | 1465 | ||
| 1650 | @example | 1466 | @example |
| 1651 | alias al "Al <al@@english-heritage.bla>" | 1467 | alias al "Al <al@@english-heritage.bla>" |
| 1652 | @end example | 1468 | @end example |
| 1653 | |||
| 1654 | @noindent | 1469 | @noindent |
| 1655 | Then typing your alias (followed by a space or punctuation | ||
| 1656 | character) on a To: or Cc: line in the message buffer will | ||
| 1657 | cause Gnus to insert the full address for you. See the | ||
| 1658 | node "Mail Aliases" in Message (not Gnus) manual for | ||
| 1659 | details. | ||
| 1660 | |||
| 1661 | 1470 | ||
| 1662 | However, what you really want is the Insidious Big Brother | 1471 | Then typing your alias (followed by a space or punctuation |
| 1663 | Database bbdb. Get it through the XEmacs package system or from | 1472 | character) on a To: or Cc: line in the message buffer will |
| 1664 | @uref{http://bbdb.sourceforge.net/,bbdb's homepage}. | 1473 | cause Gnus to insert the full address for you. See the |
| 1665 | Now place the following in ~/.gnus, to activate bbdb for Gnus: | 1474 | node "Mail Aliases" in Message (not Gnus) manual for |
| 1666 | 1475 | details. | |
| 1476 | |||
| 1477 | However, what you really want is the Insidious Big Brother | ||
| 1478 | Database bbdb. Get it through the XEmacs package system or from | ||
| 1479 | @uref{http://bbdb.sourceforge.net/, bbdb's homepage}. | ||
| 1480 | Now place the following in ~/.gnus.el, to activate bbdb for Gnus: | ||
| 1667 | 1481 | ||
| 1668 | @example | 1482 | @example |
| 1669 | (require 'bbdb) | 1483 | (require 'bbdb) |
| 1670 | (bbdb-initialize 'gnus 'message) | 1484 | (bbdb-initialize 'gnus 'message) |
| 1671 | @end example | 1485 | @end example |
| 1672 | |||
| 1673 | @noindent | 1486 | @noindent |
| 1674 | Now you probably want some general bbdb configuration, | 1487 | |
| 1675 | place them in ~/.emacs: | 1488 | Now you probably want some general bbdb configuration, |
| 1676 | 1489 | place them in ~/.emacs: | |
| 1677 | 1490 | ||
| 1678 | @example | 1491 | @example |
| 1679 | (require 'bbdb) | 1492 | (require 'bbdb) |
| @@ -1689,56 +1502,50 @@ alias al "Al <al@@english-heritage.bla>" | |||
| 1689 | ;;No popup-buffers | 1502 | ;;No popup-buffers |
| 1690 | (setq bbdb-use-pop-up nil) | 1503 | (setq bbdb-use-pop-up nil) |
| 1691 | @end example | 1504 | @end example |
| 1692 | |||
| 1693 | @noindent | 1505 | @noindent |
| 1694 | Now you should be ready to go. Say @samp{M-x bbdb RET | ||
| 1695 | RET} to open a bbdb buffer showing all | ||
| 1696 | entries. Say @samp{c} to create a new | ||
| 1697 | entry, @samp{b} to search your BBDB and | ||
| 1698 | @samp{C-o} to add a new field to an | ||
| 1699 | entry. If you want to add a sender to the BBDB you can | ||
| 1700 | also just hit `:' on the posting in the summary buffer and | ||
| 1701 | you are done. When you now compose a new mail, | ||
| 1702 | hit @samp{TAB} to cycle through know | ||
| 1703 | recipients. | ||
| 1704 | |||
| 1705 | @ifnottex | ||
| 1706 | @node [5.8], [5.9], [5.7], FAQ 5 - Composing messages | ||
| 1707 | @end ifnottex | ||
| 1708 | @subsubheading Question 5.8: | ||
| 1709 | |||
| 1710 | Sometimes I see little images at the top of article | ||
| 1711 | buffer. What's that and how can I send one with my | ||
| 1712 | postings, too? | ||
| 1713 | |||
| 1714 | 1506 | ||
| 1715 | Answer: | 1507 | Now you should be ready to go. Say @samp{M-x bbdb RET |
| 1716 | 1508 | RET} to open a bbdb buffer showing all | |
| 1717 | Those images are called X-Faces. They are 48*48 pixel b/w | 1509 | entries. Say @samp{c} to create a new |
| 1718 | pictures, encoded in a header line. If you want to include | 1510 | entry, @samp{b} to search your BBDB and |
| 1719 | one in your posts, you've got to convert some image to a | 1511 | @samp{C-o} to add a new field to an |
| 1720 | X-Face. So fire up some image manipulation program (say | 1512 | entry. If you want to add a sender to the BBDB you can |
| 1721 | Gimp), open the image you want to include, cut out the | 1513 | also just hit `:' on the posting in the summary buffer and |
| 1722 | relevant part, reduce color depth to 1 bit, resize to | 1514 | you are done. When you now compose a new mail, |
| 1723 | 48*48 and save as bitmap. Now you should get the compface | 1515 | hit @samp{TAB} to cycle through know |
| 1724 | package from | 1516 | recipients. |
| 1725 | @uref{ftp://ftp.cs.indiana.edu:/pub/faces/,this site}. | 1517 | |
| 1726 | and create the actual X-face by saying | 1518 | @node [5.8] |
| 1727 | 1519 | @subsubheading Question 5.8 | |
| 1520 | |||
| 1521 | Sometimes I see little images at the top of article | ||
| 1522 | buffer. What's that and how can I send one with my | ||
| 1523 | postings, too? | ||
| 1524 | |||
| 1525 | @subsubheading Answer | ||
| 1526 | |||
| 1527 | Those images are called X-Faces. They are 48*48 pixel b/w | ||
| 1528 | pictures, encoded in a header line. If you want to include | ||
| 1529 | one in your posts, you've got to convert some image to a | ||
| 1530 | X-Face. So fire up some image manipulation program (say | ||
| 1531 | Gimp), open the image you want to include, cut out the | ||
| 1532 | relevant part, reduce color depth to 1 bit, resize to | ||
| 1533 | 48*48 and save as bitmap. Now you should get the compface | ||
| 1534 | package from | ||
| 1535 | @uref{ftp://ftp.cs.indiana.edu:/pub/faces/, this site}. | ||
| 1536 | and create the actual X-face by saying | ||
| 1728 | 1537 | ||
| 1729 | @example | 1538 | @example |
| 1730 | cat file.xbm | xbm2ikon |compface > file.face | 1539 | cat file.xbm | xbm2ikon | compface > file.face |
| 1731 | cat ./file.face | sed 's/\\/\\\\/g' | sed 's/\"/\\\"/g' > ./file.face.quoted | 1540 | cat file.face | sed 's/\\/\\\\/g;s/\"/\\\"/g;' > file.face.quoted |
| 1732 | @end example | 1541 | @end example |
| 1733 | |||
| 1734 | @noindent | 1542 | @noindent |
| 1735 | If you can't use compface, there's an online X-face converter at@* | ||
| 1736 | @uref{http://www.dairiki.org/xface/}. If you use MS Windows, you | ||
| 1737 | could also use the WinFace program from | ||
| 1738 | @uref{http://www.xs4all.nl/~walterln/winface/}. | ||
| 1739 | 1543 | ||
| 1740 | Now you only have to tell Gnus to include the X-face in your postings | 1544 | If you can't use compface, there's an online X-face converter at |
| 1741 | by saying | 1545 | @uref{http://www.dairiki.org/xface/}. |
| 1546 | If you use MS Windows, you could also use the WinFace program from | ||
| 1547 | @uref{http://www.xs4all.nl/~walterln/winface/}. | ||
| 1548 | Now you only have to tell Gnus to include the X-face in your postings by saying | ||
| 1742 | 1549 | ||
| 1743 | @example | 1550 | @example |
| 1744 | (setq message-default-headers | 1551 | (setq message-default-headers |
| @@ -1747,33 +1554,28 @@ by saying | |||
| 1747 | (insert-file-contents "~/.xemacs/xface") | 1554 | (insert-file-contents "~/.xemacs/xface") |
| 1748 | (buffer-string))) | 1555 | (buffer-string))) |
| 1749 | @end example | 1556 | @end example |
| 1750 | |||
| 1751 | @noindent | 1557 | @noindent |
| 1752 | in ~/.gnus. | ||
| 1753 | |||
| 1754 | @ifnottex | ||
| 1755 | @node [5.9], [5.10], [5.8], FAQ 5 - Composing messages | ||
| 1756 | @end ifnottex | ||
| 1757 | @subsubheading Question 5.9: | ||
| 1758 | |||
| 1759 | Sometimes I accidentally hit r instead of f in | ||
| 1760 | newsgroups. Can Gnus warn me, when I'm replying by mail in | ||
| 1761 | newsgroups? | ||
| 1762 | |||
| 1763 | 1558 | ||
| 1764 | Answer: | 1559 | in ~/.gnus.el. |
| 1765 | 1560 | ||
| 1766 | Put this in ~/.gnus: | 1561 | @node [5.9] |
| 1767 | 1562 | @subsubheading Question 5.9 | |
| 1563 | |||
| 1564 | Sometimes I accidentally hit r instead of f in | ||
| 1565 | newsgroups. Can Gnus warn me, when I'm replying by mail in | ||
| 1566 | newsgroups? | ||
| 1567 | |||
| 1568 | @subsubheading Answer | ||
| 1569 | |||
| 1570 | Put this in ~/.gnus.el: | ||
| 1768 | 1571 | ||
| 1769 | @example | 1572 | @example |
| 1770 | (setq gnus-confirm-mail-reply-to-news t) | 1573 | (setq gnus-confirm-mail-reply-to-news t) |
| 1771 | @end example | 1574 | @end example |
| 1772 | |||
| 1773 | @noindent | 1575 | @noindent |
| 1774 | if you already use Gnus 5.10, if you still use 5.8.8 or | 1576 | |
| 1775 | 5.9 try this instead: | 1577 | if you already use Gnus 5.10, if you still use 5.8.8 or |
| 1776 | 1578 | 5.9 try this instead: | |
| 1777 | 1579 | ||
| 1778 | @example | 1580 | @example |
| 1779 | (eval-after-load "gnus-msg" | 1581 | (eval-after-load "gnus-msg" |
| @@ -1785,44 +1587,37 @@ Answer: | |||
| 1785 | (y-or-n-p "Really reply by mail to article author? ")) | 1587 | (y-or-n-p "Really reply by mail to article author? ")) |
| 1786 | ad-do-it)))) | 1588 | ad-do-it)))) |
| 1787 | @end example | 1589 | @end example |
| 1788 | 1590 | @noindent | |
| 1789 | @ifnottex | ||
| 1790 | @node [5.10], [5.11], [5.9], FAQ 5 - Composing messages | ||
| 1791 | @end ifnottex | ||
| 1792 | @subsubheading Question 5.10: | ||
| 1793 | 1591 | ||
| 1794 | How to tell Gnus not to generate a sender header? | 1592 | @node [5.10] |
| 1795 | 1593 | @subsubheading Question 5.10 | |
| 1796 | 1594 | ||
| 1797 | Answer: | 1595 | How to tell Gnus not to generate a sender header? |
| 1798 | 1596 | ||
| 1799 | Since 5.10 Gnus doesn't generate a sender header by | 1597 | @subsubheading Answer |
| 1800 | default. For older Gnus' try this in ~/.gnus: | 1598 | |
| 1801 | 1599 | Since 5.10 Gnus doesn't generate a sender header by | |
| 1600 | default. For older Gnus' try this in ~/.gnus.el: | ||
| 1802 | 1601 | ||
| 1803 | @example | 1602 | @example |
| 1804 | (eval-after-load "message" | 1603 | (eval-after-load "message" |
| 1805 | '(add-to-list 'message-syntax-checks '(sender . disabled))) | 1604 | '(add-to-list 'message-syntax-checks '(sender . disabled))) |
| 1806 | @end example | 1605 | @end example |
| 1807 | 1606 | @noindent | |
| 1808 | |||
| 1809 | @ifnottex | ||
| 1810 | @node [5.11], [5.12], [5.10], FAQ 5 - Composing messages | ||
| 1811 | @end ifnottex | ||
| 1812 | @subsubheading Question 5.11: | ||
| 1813 | 1607 | ||
| 1814 | I want gnus to locally store copies of my send mail and | 1608 | @node [5.11] |
| 1815 | news, how to do it? | 1609 | @subsubheading Question 5.11 |
| 1816 | |||
| 1817 | 1610 | ||
| 1818 | Answer: | 1611 | I want Gnus to locally store copies of my send mail and |
| 1612 | news, how to do it? | ||
| 1819 | 1613 | ||
| 1820 | You must set the variable gnus-message-archive-group to do | 1614 | @subsubheading Answer |
| 1821 | this. You can set it to a string giving the name of the | 1615 | |
| 1822 | group where the copies shall go or like in the example | 1616 | You must set the variable gnus-message-archive-group to do |
| 1823 | below use a function which is evaluated and which returns | 1617 | this. You can set it to a string giving the name of the |
| 1824 | the group to use. | 1618 | group where the copies shall go or like in the example |
| 1825 | 1619 | below use a function which is evaluated and which returns | |
| 1620 | the group to use. | ||
| 1826 | 1621 | ||
| 1827 | @example | 1622 | @example |
| 1828 | (setq gnus-message-archive-group | 1623 | (setq gnus-message-archive-group |
| @@ -1830,31 +1625,31 @@ Answer: | |||
| 1830 | "nnml:Send-News" | 1625 | "nnml:Send-News" |
| 1831 | "nnml:Send-Mail"))) | 1626 | "nnml:Send-Mail"))) |
| 1832 | @end example | 1627 | @end example |
| 1833 | 1628 | @noindent | |
| 1834 | |||
| 1835 | @ifnottex | ||
| 1836 | @node [5.12], , [5.11], FAQ 5 - Composing messages | ||
| 1837 | @end ifnottex | ||
| 1838 | @subsubheading Question 5.12: | ||
| 1839 | 1629 | ||
| 1840 | People tell me my Message-IDs are not correct, why | 1630 | @node [5.12] |
| 1841 | aren't they and how to fix it? | 1631 | @subsubheading Question 5.12 |
| 1842 | 1632 | ||
| 1633 | People tell me my Message-IDs are not correct, why | ||
| 1634 | aren't they and how to fix it? | ||
| 1843 | 1635 | ||
| 1844 | Answer: | 1636 | @subsubheading Answer |
| 1637 | |||
| 1638 | The message-ID is an unique identifier for messages you | ||
| 1639 | send. To make it unique, Gnus need to know which machine | ||
| 1640 | name to put after the "@@". If the name of the machine | ||
| 1641 | where Gnus is running isn't suitable (it probably isn't | ||
| 1642 | at most private machines) you can tell Gnus what to use | ||
| 1643 | by saying: | ||
| 1845 | 1644 | ||
| 1846 | The message-ID is an unique identifier for messages you | ||
| 1847 | send. To make it unique, Gnus need to know which machine | ||
| 1848 | name to put after the "@@". If the name of the machine | ||
| 1849 | where Gnus is running isn't suitable (it probably isn't | ||
| 1850 | at most private machines) you can tell Gnus what to use | ||
| 1851 | by saying | ||
| 1852 | @example | 1645 | @example |
| 1853 | (setq message-user-fqdn "yourmachine.yourdomain.tld") | 1646 | (setq message-user-fqdn "yourmachine.yourdomain.tld") |
| 1854 | @end example | 1647 | @end example |
| 1855 | @noindent | 1648 | @noindent |
| 1856 | in ~/.gnus. If you use Gnus 5.9 or ealier, you can use this | 1649 | |
| 1857 | instead (works for newer versions a well): | 1650 | in ~/.gnus.el. If you use Gnus 5.9 or ealier, you can use this |
| 1651 | instead (works for newer versions a well): | ||
| 1652 | |||
| 1858 | @example | 1653 | @example |
| 1859 | (eval-after-load "message" | 1654 | (eval-after-load "message" |
| 1860 | '(let ((fqdn "yourmachine.yourdomain.tld"));; <-- Edit this! | 1655 | '(let ((fqdn "yourmachine.yourdomain.tld"));; <-- Edit this! |
| @@ -1865,110 +1660,97 @@ instead (works for newer versions a well): | |||
| 1865 | "Return user's fully qualified domain name." | 1660 | "Return user's fully qualified domain name." |
| 1866 | fqdn)))) | 1661 | fqdn)))) |
| 1867 | @end example | 1662 | @end example |
| 1663 | @noindent | ||
| 1868 | 1664 | ||
| 1869 | If you have no idea what to insert for | 1665 | If you have no idea what to insert for |
| 1870 | "yourmachine.yourdomain.tld", you've got several | 1666 | "yourmachine.yourdomain.tld", you've got several |
| 1871 | choices. You can either ask your provider if he allows | 1667 | choices. You can either ask your provider if he allows |
| 1872 | you to use something like | 1668 | you to use something like |
| 1873 | yourUserName.userfqdn.provider.net, or you can use | 1669 | yourUserName.userfqdn.provider.net, or you can use |
| 1874 | somethingUnique.yourdomain.tld if you own the domain | 1670 | somethingUnique.yourdomain.tld if you own the domain |
| 1875 | yourdomain.tld, or you can register at a service which | 1671 | yourdomain.tld, or you can register at a service which |
| 1876 | gives private users a FQDN for free, e.g. | 1672 | gives private users a FQDN for free, e.g. |
| 1877 | @uref{http://www.stura.tu-freiberg.de/~dlx/addfqdn.html}. | 1673 | @uref{http://www.stura.tu-freiberg.de/~dlx/addfqdn.html}. |
| 1878 | (Sorry but this website is in German, if you know of an | 1674 | (Sorry but this website is in German, if you know of an |
| 1879 | English one offering the same, drop me a note). | 1675 | English one offering the same, drop me a note). |
| 1880 | 1676 | ||
| 1881 | 1677 | Finally you can tell Gnus not to generate a Message-ID | |
| 1882 | Finally you can tell Gnus not to generate a Message-ID | 1678 | for News at all (and letting the server do the job) by saying |
| 1883 | for News at all (and letting the server do the job) by saying | ||
| 1884 | |||
| 1885 | 1679 | ||
| 1886 | @example | 1680 | @example |
| 1887 | (setq message-required-news-headers | 1681 | (setq message-required-news-headers |
| 1888 | (remove' Message-ID message-required-news-headers)) | 1682 | (remove' Message-ID message-required-news-headers)) |
| 1889 | @end example | 1683 | @end example |
| 1890 | |||
| 1891 | @noindent | 1684 | @noindent |
| 1892 | you can also tell Gnus not to generate Message-IDs for mail by saying | 1685 | |
| 1893 | 1686 | you can also tell Gnus not to generate Message-IDs for mail by saying | |
| 1894 | 1687 | ||
| 1895 | @example | 1688 | @example |
| 1896 | (setq message-required-mail-headers | 1689 | (setq message-required-mail-headers |
| 1897 | (remove' Message-ID message-required-mail-headers)) | 1690 | (remove' Message-ID message-required-mail-headers)) |
| 1898 | @end example | 1691 | @end example |
| 1899 | |||
| 1900 | @noindent | 1692 | @noindent |
| 1901 | , however some mail servers don't generate proper | ||
| 1902 | Message-IDs, too, so test if your Mail Server behaves | ||
| 1903 | correctly by sending yourself a Mail and looking at the Message-ID. | ||
| 1904 | |||
| 1905 | 1693 | ||
| 1906 | @ifnottex | 1694 | , however some mail servers don't generate proper |
| 1907 | @node FAQ 6 - Old messages, FAQ 7 - Gnus in a dial-up environment, FAQ 5 - Composing messages, Frequently Asked Questions | 1695 | Message-IDs, too, so test if your Mail Server behaves |
| 1908 | @end ifnottex | 1696 | correctly by sending yourself a Mail and looking at the Message-ID. |
| 1697 | |||
| 1698 | @node FAQ 6 - Old messages | ||
| 1909 | @subsection Old messages | 1699 | @subsection Old messages |
| 1910 | 1700 | ||
| 1911 | @menu | 1701 | @menu |
| 1912 | * [6.1]:: How to import my old mail into Gnus? | 1702 | * [6.1]:: How to import my old mail into Gnus? |
| 1913 | * [6.2]:: How to archive interesting messages? | 1703 | * [6.2]:: How to archive interesting messages? |
| 1914 | * [6.3]:: How to search for a specific message? | 1704 | * [6.3]:: How to search for a specific message? |
| 1915 | * [6.4]:: How to get rid of old unwanted mail? | 1705 | * [6.4]:: How to get rid of old unwanted mail? |
| 1916 | * [6.5]:: I want that all read messages are expired (at least in some | 1706 | * [6.5]:: I want that all read messages are expired (at least in some |
| 1917 | groups). How to do it? | 1707 | groups). How to do it? |
| 1918 | * [6.6]:: I don't want expiration to delete my mails but to move them | 1708 | * [6.6]:: I don't want expiration to delete my mails but to move them |
| 1919 | to another group. | 1709 | to another group. |
| 1920 | @end menu | 1710 | @end menu |
| 1921 | 1711 | ||
| 1922 | @ifnottex | 1712 | @node [6.1] |
| 1923 | @node [6.1], [6.2], FAQ 6 - Old messages, FAQ 6 - Old messages | 1713 | @subsubheading Question 6.1 |
| 1924 | @end ifnottex | 1714 | |
| 1925 | @subsubheading Question 6.1: | 1715 | How to import my old mail into Gnus? |
| 1926 | 1716 | ||
| 1927 | How to import my old mail into Gnus? | 1717 | @subsubheading Answer |
| 1928 | 1718 | ||
| 1929 | 1719 | The easiest way is to tell your old mail program to | |
| 1930 | Answer: | 1720 | export the messages in mbox format. Most Unix mailers |
| 1931 | 1721 | are able to do this, if you come from the MS Windows | |
| 1932 | The easiest way is to tell your old mail program to | 1722 | world, you may find tools at |
| 1933 | export the messages in mbox format. Most Unix mailers | 1723 | @uref{http://mbx2mbox.sourceforge.net/}. |
| 1934 | are able to do this, if you come from the MS Windows | 1724 | |
| 1935 | world, you may find tools at | 1725 | Now you've got to import this mbox file into Gnus. To do |
| 1936 | @uref{http://mbx2mbox.sourceforge.net/}. | 1726 | this, create a nndoc group based on the mbox file by |
| 1937 | 1727 | saying @samp{G f /path/file.mbox RET} in | |
| 1938 | 1728 | Group buffer. You now have read-only access to your | |
| 1939 | Now you've got to import this mbox file into Gnus. To do | 1729 | mail. If you want to import the messages to your normal |
| 1940 | this, create a nndoc group based on the mbox file by | 1730 | Gnus mail groups hierarchy, enter the nndoc group you've |
| 1941 | saying @samp{G f /path/file.mbox RET} in | 1731 | just created by saying @samp{C-u RET} |
| 1942 | Group buffer. You now have read-only access to your | 1732 | (thus making sure all messages are retrieved), mark all |
| 1943 | mail. If you want to import the messages to your normal | 1733 | messages by saying @samp{M P b} and |
| 1944 | Gnus mail groups hierarchy, enter the nndoc group you've | 1734 | either copy them to the desired group by saying |
| 1945 | just created by saying @samp{C-u RET} | 1735 | @samp{B c name.of.group RET} or send them |
| 1946 | (thus making sure all messages are retrieved), mark all | 1736 | through nnmail-split-methods (respool them) by saying |
| 1947 | messages by saying @samp{M P b} and | 1737 | @samp{B r}. |
| 1948 | either copy them to the desired group by saying | 1738 | |
| 1949 | @samp{B c name.of.group RET} or send them | 1739 | @node [6.2] |
| 1950 | through nnmail-split-methods (respool them) by saying | 1740 | @subsubheading Question 6.2 |
| 1951 | @samp{B r}. | 1741 | |
| 1952 | 1742 | How to archive interesting messages? | |
| 1953 | @ifnottex | 1743 | |
| 1954 | @node [6.2], [6.3], [6.1], FAQ 6 - Old messages | 1744 | @subsubheading Answer |
| 1955 | @end ifnottex | 1745 | |
| 1956 | @subsubheading Question 6.2: | 1746 | If you stumble across an interesting message, say in |
| 1957 | 1747 | gnu.emacs.gnus and want to archive it there are several | |
| 1958 | How to archive interesting messages? | 1748 | solutions. The first and easiest is to save it to a file |
| 1959 | 1749 | by saying @samp{O f}. However, wouldn't | |
| 1960 | 1750 | it be much more convenient to have more direct access to | |
| 1961 | Answer: | 1751 | the archived message from Gnus? If you say yes, put this |
| 1962 | 1752 | snippet by Frank Haun <pille3003@@fhaun.de> in | |
| 1963 | If you stumble across an interesting message, say in | 1753 | ~/.gnus.el: |
| 1964 | gnu.emacs.gnus and want to archive it there are several | ||
| 1965 | solutions. The first and easiest is to save it to a file | ||
| 1966 | by saying @samp{O f}. However, wouldn't | ||
| 1967 | it be much more convenient to have more direct access to | ||
| 1968 | the archived message from Gnus? If you say yes, put this | ||
| 1969 | snippet by Frank Haun <pille3003@@fhaun.de> in | ||
| 1970 | ~/.gnus: | ||
| 1971 | |||
| 1972 | 1754 | ||
| 1973 | @example | 1755 | @example |
| 1974 | (defun my-archive-article (&optional n) | 1756 | (defun my-archive-article (&optional n) |
| @@ -1987,624 +1769,531 @@ more then one article." | |||
| 1987 | (replace-regexp-in-string "^.*:" "" gnus-newsgroup-name))))) | 1769 | (replace-regexp-in-string "^.*:" "" gnus-newsgroup-name))))) |
| 1988 | (gnus-summary-copy-article n archive-name))) | 1770 | (gnus-summary-copy-article n archive-name))) |
| 1989 | @end example | 1771 | @end example |
| 1990 | |||
| 1991 | @noindent | 1772 | @noindent |
| 1992 | You can now say @samp{M-x | ||
| 1993 | my-archive-article} in summary buffer to | ||
| 1994 | archive the article under the cursor in a nnml | ||
| 1995 | group. (Change nnml to your preferred back end) | ||
| 1996 | |||
| 1997 | 1773 | ||
| 1998 | Of course you can also make sure the cache is enabled by saying | 1774 | You can now say @samp{M-x |
| 1999 | 1775 | my-archive-article} in summary buffer to | |
| 1776 | archive the article under the cursor in a nnml | ||
| 1777 | group. (Change nnml to your preferred back end) | ||
| 1778 | |||
| 1779 | Of course you can also make sure the cache is enabled by saying | ||
| 2000 | 1780 | ||
| 2001 | @example | 1781 | @example |
| 2002 | (setq gnus-use-cache t) | 1782 | (setq gnus-use-cache t) |
| 2003 | @end example | 1783 | @end example |
| 2004 | |||
| 2005 | @noindent | 1784 | @noindent |
| 2006 | then you only have to set either the tick or the dormant | ||
| 2007 | mark for articles you want to keep, setting the read | ||
| 2008 | mark will remove them from cache. | ||
| 2009 | |||
| 2010 | @ifnottex | ||
| 2011 | @node [6.3], [6.4], [6.2], FAQ 6 - Old messages | ||
| 2012 | @end ifnottex | ||
| 2013 | @subsubheading Question 6.3: | ||
| 2014 | |||
| 2015 | How to search for a specific message? | ||
| 2016 | |||
| 2017 | |||
| 2018 | Answer: | ||
| 2019 | |||
| 2020 | There are several ways for this, too. For a posting from | ||
| 2021 | a Usenet group the easiest solution is probably to ask | ||
| 2022 | @uref{http://groups.google.com,groups.google.com}, | ||
| 2023 | if you found the posting there, tell Google to display | ||
| 2024 | the raw message, look for the message-id, and say | ||
| 2025 | @samp{M-^ the@@message.id RET} in a | ||
| 2026 | summary buffer. | ||
| 2027 | Since Gnus 5.10 there's also a Gnus interface for | ||
| 2028 | groups.google.com which you can call with | ||
| 2029 | @samp{G W}) in group buffer. | ||
| 2030 | |||
| 2031 | |||
| 2032 | Another idea which works for both mail and news groups | ||
| 2033 | is to enter the group where the message you are | ||
| 2034 | searching is and use the standard Emacs search | ||
| 2035 | @samp{C-s}, it's smart enough to look at | ||
| 2036 | articles in collapsed threads, too. If you want to | ||
| 2037 | search bodies, too try @samp{M-s} | ||
| 2038 | instead. Further on there are the | ||
| 2039 | gnus-summary-limit-to-foo functions, which can help you, | ||
| 2040 | too. | ||
| 2041 | |||
| 2042 | 1785 | ||
| 2043 | Of course you can also use grep to search through your | 1786 | then you only have to set either the tick or the dormant |
| 2044 | local mail, but this is both slow for big archives and | 1787 | mark for articles you want to keep, setting the read |
| 2045 | inconvenient since you are not displaying the found mail | 1788 | mark will remove them from cache. |
| 2046 | in Gnus. Here comes nnir into action. Nnir is a front end | 1789 | |
| 2047 | to search engines like swish-e or swish++ and | 1790 | @node [6.3] |
| 2048 | others. You index your mail with one of those search | 1791 | @subsubheading Question 6.3 |
| 2049 | engines and with the help of nnir you can search trough | 1792 | |
| 2050 | the indexed mail and generate a temporary group with all | 1793 | How to search for a specific message? |
| 2051 | messages which met your search criteria. If this sound | 1794 | |
| 2052 | cool to you get nnir.el from the contrib directory of the Gnus | 1795 | @subsubheading Answer |
| 2053 | distribution or | 1796 | |
| 2054 | @uref{http://quimby.gnus.org/cgi-bin/cvsweb.cgi/~checkout~/gnus/contrib/nnir.el?rev=HEAD&content-type=text/plain} | 1797 | There are several ways for this, too. For a posting from |
| 2055 | Instructions on how to use it are at the top of the file. | 1798 | a Usenet group the easiest solution is probably to ask |
| 2056 | 1799 | @uref{http://groups.google.com, groups.google.com}, | |
| 2057 | @ifnottex | 1800 | if you found the posting there, tell Google to display |
| 2058 | @node [6.4], [6.5], [6.3], FAQ 6 - Old messages | 1801 | the raw message, look for the message-id, and say |
| 2059 | @end ifnottex | 1802 | @samp{M-^ the@@message.id RET} in a |
| 2060 | @subsubheading Question 6.4: | 1803 | summary buffer. |
| 2061 | 1804 | Since Gnus 5.10 there's also a Gnus interface for | |
| 2062 | How to get rid of old unwanted mail? | 1805 | groups.google.com which you can call with |
| 2063 | 1806 | @samp{G W}) in group buffer. | |
| 2064 | 1807 | ||
| 2065 | Answer: | 1808 | Another idea which works for both mail and news groups |
| 2066 | 1809 | is to enter the group where the message you are | |
| 2067 | You can of course just mark the mail you don't need | 1810 | searching is and use the standard Emacs search |
| 2068 | anymore by saying @samp{#} with point | 1811 | @samp{C-s}, it's smart enough to look at |
| 2069 | over the mail and then say @samp{B DEL} | 1812 | articles in collapsed threads, too. If you want to |
| 2070 | to get rid of them forever. You could also instead of | 1813 | search bodies, too try @samp{M-s} |
| 2071 | actually deleting them, send them to a junk-group by | 1814 | instead. Further on there are the |
| 2072 | saying @samp{B m nnml:trash-bin} which | 1815 | gnus-summary-limit-to-foo functions, which can help you, |
| 2073 | you clear from time to time, but both are not the intended | 1816 | too. |
| 2074 | way in Gnus. | 1817 | |
| 2075 | 1818 | Of course you can also use grep to search through your | |
| 2076 | 1819 | local mail, but this is both slow for big archives and | |
| 2077 | In Gnus, we let mail expire like news expires on a news | 1820 | inconvenient since you are not displaying the found mail |
| 2078 | server. That means you tell Gnus the message is | 1821 | in Gnus. Here comes nnir into action. Nnir is a front end |
| 2079 | expirable (you tell Gnus "I don't need this mail | 1822 | to search engines like swish-e or swish++ and |
| 2080 | anymore") by saying @samp{E} with point | 1823 | others. You index your mail with one of those search |
| 2081 | over the mail in summary buffer. Now when you leave the | 1824 | engines and with the help of nnir you can search trough |
| 2082 | group, Gnus looks at all messages which you marked as | 1825 | the indexed mail and generate a temporary group with all |
| 2083 | expirable before and if they are old enough (default is | 1826 | messages which met your search criteria. If this sound |
| 2084 | older than a week) they are deleted. | 1827 | cool to you get nnir.el from |
| 2085 | 1828 | @uref{ftp://ls6-ftp.cs.uni-dortmund.de/pub/src/emacs/} | |
| 2086 | @ifnottex | 1829 | or @uref{ftp://ftp.is.informatik.uni-duisburg.de/pub/src/emacs/}. |
| 2087 | @node [6.5], [6.6], [6.4], FAQ 6 - Old messages | 1830 | Instructions on how to use it are at the top of the file. |
| 2088 | @end ifnottex | 1831 | |
| 2089 | @subsubheading Question 6.5: | 1832 | @node [6.4] |
| 2090 | 1833 | @subsubheading Question 6.4 | |
| 2091 | I want that all read messages are expired (at least in | 1834 | |
| 2092 | some groups). How to do it? | 1835 | How to get rid of old unwanted mail? |
| 2093 | 1836 | ||
| 2094 | 1837 | @subsubheading Answer | |
| 2095 | Answer: | 1838 | |
| 2096 | 1839 | You can of course just mark the mail you don't need | |
| 2097 | If you want all read messages to be expired (e.g. in | 1840 | anymore by saying @samp{#} with point |
| 2098 | mailing lists where there's an online archive), you've | 1841 | over the mail and then say @samp{B DEL} |
| 2099 | got two choices: auto-expire and | 1842 | to get rid of them forever. You could also instead of |
| 2100 | total-expire. Auto-expire means, that every article | 1843 | actually deleting them, send them to a junk-group by |
| 2101 | which has no marks set and is selected for reading is | 1844 | saying @samp{B m nnml:trash-bin} which |
| 2102 | marked as expirable, Gnus hits @samp{E} | 1845 | you clear from time to time, but both are not the intended |
| 2103 | for you every time you read a message. Total-expire | 1846 | way in Gnus. |
| 2104 | follows a slightly different approach, here all article | 1847 | |
| 2105 | where the read mark is set are expirable. | 1848 | In Gnus, we let mail expire like news expires on a news |
| 2106 | 1849 | server. That means you tell Gnus the message is | |
| 2107 | 1850 | expirable (you tell Gnus "I don't need this mail | |
| 2108 | To activate auto-expire, include auto-expire in the | 1851 | anymore") by saying @samp{E} with point |
| 2109 | Group parameters for the group. (Hit @samp{G | 1852 | over the mail in summary buffer. Now when you leave the |
| 2110 | c} in summary buffer with point over the | 1853 | group, Gnus looks at all messages which you marked as |
| 2111 | group to change group parameters). For total-expire add | 1854 | expirable before and if they are old enough (default is |
| 2112 | total-expire to the group-parameters. | 1855 | older than a week) they are deleted. |
| 2113 | 1856 | ||
| 2114 | 1857 | @node [6.5] | |
| 2115 | Which method you choose is merely a matter of taste: | 1858 | @subsubheading Question 6.5 |
| 2116 | Auto-expire is faster, but it doesn't play together with | 1859 | |
| 2117 | Adaptive Scoring, so if you want to use this feature, | 1860 | I want that all read messages are expired (at least in |
| 2118 | you should use total-expire. | 1861 | some groups). How to do it? |
| 2119 | 1862 | ||
| 2120 | 1863 | @subsubheading Answer | |
| 2121 | If you want a message to be excluded from expiration in | 1864 | |
| 2122 | a group where total or auto expire is active, set either | 1865 | If you want all read messages to be expired (e.g. in |
| 2123 | tick (hit @samp{u}) or dormant mark (hit | 1866 | mailing lists where there's an online archive), you've |
| 2124 | @samp{u}), when you use auto-expire, you | 1867 | got two choices: auto-expire and |
| 2125 | can also set the read mark (hit | 1868 | total-expire. Auto-expire means, that every article |
| 2126 | @samp{d}). | 1869 | which has no marks set and is selected for reading is |
| 2127 | 1870 | marked as expirable, Gnus hits @samp{E} | |
| 2128 | @ifnottex | 1871 | for you every time you read a message. Total-expire |
| 2129 | @node [6.6], , [6.5], FAQ 6 - Old messages | 1872 | follows a slightly different approach, here all article |
| 2130 | @end ifnottex | 1873 | where the read mark is set are expirable. |
| 2131 | @subsubheading Question 6.6: | 1874 | |
| 2132 | 1875 | To activate auto-expire, include auto-expire in the | |
| 2133 | I don't want expiration to delete my mails but to move them | 1876 | Group parameters for the group. (Hit @samp{G |
| 2134 | to another group. | 1877 | c} in summary buffer with point over the |
| 2135 | 1878 | group to change group parameters). For total-expire add | |
| 2136 | 1879 | total-expire to the group-parameters. | |
| 2137 | Answer: | 1880 | |
| 2138 | 1881 | Which method you choose is merely a matter of taste: | |
| 2139 | Say something like this in ~/.gnus: | 1882 | Auto-expire is faster, but it doesn't play together with |
| 2140 | 1883 | Adaptive Scoring, so if you want to use this feature, | |
| 1884 | you should use total-expire. | ||
| 1885 | |||
| 1886 | If you want a message to be excluded from expiration in | ||
| 1887 | a group where total or auto expire is active, set either | ||
| 1888 | tick (hit @samp{u}) or dormant mark (hit | ||
| 1889 | @samp{u}), when you use auto-expire, you | ||
| 1890 | can also set the read mark (hit | ||
| 1891 | @samp{d}). | ||
| 1892 | |||
| 1893 | @node [6.6] | ||
| 1894 | @subsubheading Question 6.6 | ||
| 1895 | |||
| 1896 | I don't want expiration to delete my mails but to move them | ||
| 1897 | to another group. | ||
| 1898 | |||
| 1899 | @subsubheading Answer | ||
| 1900 | |||
| 1901 | Say something like this in ~/.gnus.el: | ||
| 2141 | 1902 | ||
| 2142 | @example | 1903 | @example |
| 2143 | (setq nnmail-expiry-target "nnml:expired") | 1904 | (setq nnmail-expiry-target "nnml:expired") |
| 2144 | @end example | 1905 | @end example |
| 2145 | |||
| 2146 | @noindent | 1906 | @noindent |
| 2147 | (If you want to change the value of nnmail-expiry-target | ||
| 2148 | on a per group basis see the question "How can I disable | ||
| 2149 | threading in some (e.g. mail-) groups, or set other | ||
| 2150 | variables specific for some groups?") | ||
| 2151 | |||
| 2152 | 1907 | ||
| 2153 | @ifnottex | 1908 | (If you want to change the value of nnmail-expiry-target |
| 2154 | @node FAQ 7 - Gnus in a dial-up environment, FAQ 8 - Getting help, FAQ 6 - Old messages, Frequently Asked Questions | 1909 | on a per group basis see the question "How can I disable |
| 2155 | @end ifnottex | 1910 | threading in some (e.g. mail-) groups, or set other |
| 1911 | variables specific for some groups?") | ||
| 1912 | |||
| 1913 | @node FAQ 7 - Gnus in a dial-up environment | ||
| 2156 | @subsection Gnus in a dial-up environment | 1914 | @subsection Gnus in a dial-up environment |
| 2157 | 1915 | ||
| 2158 | @menu | 1916 | @menu |
| 2159 | * [7.1]:: I don't have a permanent connection to the net, how can I | 1917 | * [7.1]:: I don't have a permanent connection to the net, how can I |
| 2160 | minimize the time I've got to be connected? | 1918 | minimize the time I've got to be connected? |
| 2161 | * [7.2]:: So what was this thing about the Agent? | 1919 | * [7.2]:: So what was this thing about the Agent? |
| 2162 | * [7.3]:: I want to store article bodies on disk, too. How to do it? | 1920 | * [7.3]:: I want to store article bodies on disk, too. How to do it? |
| 2163 | * [7.4]:: How to tell Gnus not to try to send mails / postings while | 1921 | * [7.4]:: How to tell Gnus not to try to send mails / postings while |
| 2164 | I'm offline? | 1922 | I'm offline? |
| 2165 | @end menu | 1923 | @end menu |
| 2166 | 1924 | ||
| 2167 | 1925 | @node [7.1] | |
| 2168 | @ifnottex | 1926 | @subsubheading Question 7.1 |
| 2169 | @node [7.1], [7.2], FAQ 7 - Gnus in a dial-up environment, FAQ 7 - Gnus in a dial-up environment | 1927 | |
| 2170 | @end ifnottex | 1928 | I don't have a permanent connection to the net, how can |
| 2171 | @subsubheading Question 7.1: | 1929 | I minimize the time I've got to be connected? |
| 2172 | 1930 | ||
| 2173 | I don't have a permanent connection to the net, how can | 1931 | @subsubheading Answer |
| 2174 | I minimize the time I've got to be connected? | 1932 | |
| 2175 | 1933 | You've got basically two options: Either you use the | |
| 2176 | 1934 | Gnus Agent (see below) for this, or you can install | |
| 2177 | Answer: | 1935 | programs which fetch your news and mail to your local |
| 2178 | 1936 | disk and Gnus reads the stuff from your local | |
| 2179 | You've got basically two options: Either you use the | 1937 | machine. |
| 2180 | Gnus Agent (see below) for this, or you can install | 1938 | |
| 2181 | programs which fetch your news and mail to your local | 1939 | If you want to follow the second approach, you need a |
| 2182 | disk and Gnus reads the stuff from your local | 1940 | program which fetches news and offers them to Gnus, a |
| 2183 | machine. | 1941 | program which does the same for mail and a program which |
| 2184 | 1942 | receives the mail you write from Gnus and sends them | |
| 2185 | 1943 | when you're online. | |
| 2186 | If you want to follow the second approach, you need a | 1944 | |
| 2187 | program which fetches news and offers them to Gnus, a | 1945 | Let's talk about Unix systems first: For the news part, |
| 2188 | program which does the same for mail and a program which | 1946 | the easiest solution is a small nntp server like |
| 2189 | receives the mail you write from Gnus and sends them | 1947 | @uref{http://www.leafnode.org/, Leafnode} or |
| 2190 | when you're online. | 1948 | @uref{http://infa.abo.fi/~patrik/sn/, sn}, |
| 2191 | 1949 | of course you can also install a full featured news | |
| 2192 | 1950 | server like | |
| 2193 | Let's talk about Unix systems first: For the news part, the easiest | 1951 | @uref{http://www.isc.org/products/INN/, inn}. |
| 2194 | solution is a small nntp server like | 1952 | Then you want to fetch your Mail, popular choices |
| 2195 | @uref{http://www.leafnode.org/,Leafnode} or | 1953 | are @uref{http://www.catb.org/~esr/fetchmail/, fetchmail} |
| 2196 | @uref{http://infa.abo.fi/~patrik/sn/,sn}, of course you can also | 1954 | and @uref{http://www.qcc.ca/~charlesc/software/getmail-3.0/, getmail}. |
| 2197 | install a full featured news server like | 1955 | You should tell those to write the mail to your disk and |
| 2198 | @uref{http://www.isc.org/products/INN/,inn}. | 1956 | Gnus to read it from there. Last but not least the mail |
| 2199 | 1957 | sending part: This can be done with every MTA like | |
| 2200 | Then you want to fetch your Mail, popular choices are | 1958 | @uref{http://www.sendmail.org/, sendmail}, |
| 2201 | @itemize @bullet | 1959 | @uref{http://www.qmail.org/, postfix}, |
| 2202 | @item | 1960 | @uref{http://www.exim.org/, exim} or |
| 2203 | @uref{http://www.catb.org/~esr/fetchmail/,fetchmail} and | 1961 | @uref{http://www.qmail.org/, qmail}. |
| 2204 | @item | 1962 | |
| 2205 | @uref{http://www.qcc.ca/~charlesc/software/getmail-3.0/,getmail}. | 1963 | On windows boxes I'd vote for |
| 2206 | @end itemize | 1964 | @uref{http://www.tglsoft.de/, Hamster}, |
| 2207 | You should tell those to write the mail to your disk and Gnus to read | 1965 | it's a small freeware, open-source program which fetches |
| 2208 | it from there. Last but not least the mail sending part: This can be | 1966 | your mail and news from remote servers and offers them |
| 2209 | done with every MTA like @uref{http://www.sendmail.org/,sendmail}, | 1967 | to Gnus (or any other mail and/or news reader) via nntp |
| 2210 | @uref{http://www.qmail.org/,postfix}, @uref{http://www.exim.org/,exim} | 1968 | respectively POP3 or IMAP. It also includes a smtp |
| 2211 | or @uref{http://www.qmail.org/,qmail}. | 1969 | server for receiving mails from Gnus. |
| 2212 | 1970 | ||
| 2213 | 1971 | @node [7.2] | |
| 2214 | On windows boxes I'd vote for | 1972 | @subsubheading Question 7.2 |
| 2215 | @uref{http://www.tglsoft.de/,Hamster}, | 1973 | |
| 2216 | it's a small freeware, open-source program which fetches | 1974 | So what was this thing about the Agent? |
| 2217 | your mail and news from remote servers and offers them | 1975 | |
| 2218 | to Gnus (or any other mail and/or news reader) via nntp | 1976 | @subsubheading Answer |
| 2219 | respectively POP3 or IMAP. It also includes a smtp | 1977 | |
| 2220 | server for receiving mails from Gnus. | 1978 | The Gnus agent is part of Gnus, it allows you to fetch |
| 2221 | 1979 | mail and news and store them on disk for reading them | |
| 2222 | @ifnottex | 1980 | later when you're offline. It kind of mimics offline |
| 2223 | @node [7.2], [7.3], [7.1], FAQ 7 - Gnus in a dial-up environment | 1981 | newsreaders like e.g. Forte Agent. If you want to use |
| 2224 | @end ifnottex | 1982 | the Agent place the following in ~/.gnus.el if you are |
| 2225 | @subsubheading Question 7.2: | 1983 | still using 5.8.8 or 5.9 (it's the default since 5.10): |
| 2226 | |||
| 2227 | So what was this thing about the Agent? | ||
| 2228 | |||
| 2229 | |||
| 2230 | Answer: | ||
| 2231 | |||
| 2232 | The Gnus agent is part of Gnus, it allows you to fetch | ||
| 2233 | mail and news and store them on disk for reading them | ||
| 2234 | later when you're offline. It kind of mimics offline | ||
| 2235 | newsreaders like e.g. Forte Agent. If you want to use | ||
| 2236 | the Agent place the following in ~/.gnus if you are | ||
| 2237 | still using 5.8.8 or 5.9 (it's the default since 5.10): | ||
| 2238 | |||
| 2239 | 1984 | ||
| 2240 | @example | 1985 | @example |
| 2241 | (setq gnus-agent t) | 1986 | (setq gnus-agent t) |
| 2242 | @end example | 1987 | @end example |
| 2243 | 1988 | @noindent | |
| 2244 | 1989 | ||
| 2245 | Now you've got to select the servers whose groups can be | 1990 | Now you've got to select the servers whose groups can be |
| 2246 | stored locally. To do this, open the server buffer | 1991 | stored locally. To do this, open the server buffer |
| 2247 | (that is press @samp{^} while in the | 1992 | (that is press @samp{^} while in the |
| 2248 | group buffer). Now select a server by moving point to | 1993 | group buffer). Now select a server by moving point to |
| 2249 | the line naming that server. Finally, agentize the | 1994 | the line naming that server. Finally, agentize the |
| 2250 | server by typing @samp{J a}. If you | 1995 | server by typing @samp{J a}. If you |
| 2251 | make a mistake, or change your mind, you can undo this | 1996 | make a mistake, or change your mind, you can undo this |
| 2252 | action by typing @samp{J r}. When | 1997 | action by typing @samp{J r}. When |
| 2253 | you're done, type 'q' to return to the group buffer. | 1998 | you're done, type 'q' to return to the group buffer. |
| 2254 | Now the next time you enter a group on a agentized | 1999 | Now the next time you enter a group on a agentized |
| 2255 | server, the headers will be stored on disk and read from | 2000 | server, the headers will be stored on disk and read from |
| 2256 | there the next time you enter the group. | 2001 | there the next time you enter the group. |
| 2257 | 2002 | ||
| 2258 | @ifnottex | 2003 | @node [7.3] |
| 2259 | @node [7.3], [7.4], [7.2], FAQ 7 - Gnus in a dial-up environment | 2004 | @subsubheading Question 7.3 |
| 2260 | @end ifnottex | 2005 | |
| 2261 | @subsubheading Question 7.3: | 2006 | I want to store article bodies on disk, too. How to do it? |
| 2007 | |||
| 2008 | @subsubheading Answer | ||
| 2009 | |||
| 2010 | You can tell the agent to automatically fetch the bodies | ||
| 2011 | of articles which fulfill certain predicates, this is | ||
| 2012 | done in a special buffer which can be reached by | ||
| 2013 | saying @samp{J c} in group | ||
| 2014 | buffer. Please refer to the documentation for | ||
| 2015 | information which predicates are possible and how | ||
| 2016 | exactly to do it. | ||
| 2017 | |||
| 2018 | Further on you can tell the agent manually which | ||
| 2019 | articles to store on disk. There are two ways to do | ||
| 2020 | this: Number one: In the summary buffer, process mark a | ||
| 2021 | set of articles that shall be stored in the agent by | ||
| 2022 | saying @samp{#} with point over the | ||
| 2023 | article and then type @samp{J s}. The | ||
| 2024 | other possibility is to set, again in the summary | ||
| 2025 | buffer, downloadable (%) marks for the articles you | ||
| 2026 | want by typing @samp{@@} with point over | ||
| 2027 | the article and then typing @samp{J u}. | ||
| 2028 | What's the difference? Well, process marks are erased as | ||
| 2029 | soon as you exit the summary buffer while downloadable | ||
| 2030 | marks are permanent. You can actually set downloadable | ||
| 2031 | marks in several groups then use fetch session ('J s' in | ||
| 2032 | the GROUP buffer) to fetch all of those articles. The | ||
| 2033 | only downside is that fetch session also fetches all of | ||
| 2034 | the headers for every selected group on an agentized | ||
| 2035 | server. Depending on the volume of headers, the initial | ||
| 2036 | fetch session could take hours. | ||
| 2037 | |||
| 2038 | @node [7.4] | ||
| 2039 | @subsubheading Question 7.4 | ||
| 2040 | |||
| 2041 | How to tell Gnus not to try to send mails / postings | ||
| 2042 | while I'm offline? | ||
| 2043 | |||
| 2044 | @subsubheading Answer | ||
| 2045 | |||
| 2046 | All you've got to do is to tell Gnus when you are online | ||
| 2047 | (plugged) and when you are offline (unplugged), the rest | ||
| 2048 | works automatically. You can toggle plugged/unplugged | ||
| 2049 | state by saying @samp{J j} in group | ||
| 2050 | buffer. To start Gnus unplugged say @samp{M-x | ||
| 2051 | gnus-unplugged} instead of | ||
| 2052 | @samp{M-x gnus}. Note that for this to | ||
| 2053 | work, the agent must be active. | ||
| 2054 | |||
| 2055 | @node FAQ 8 - Getting help | ||
| 2056 | @subsection Getting help | ||
| 2262 | 2057 | ||
| 2263 | I want to store article bodies on disk, too. How to do it? | 2058 | @menu |
| 2264 | 2059 | * [8.1]:: How to find information and help inside Emacs? | |
| 2060 | * [8.2]:: I can't find anything in the Gnus manual about X (e.g. | ||
| 2061 | attachments, PGP, MIME...), is it not documented? | ||
| 2062 | * [8.3]:: Which websites should I know? | ||
| 2063 | * [8.4]:: Which mailing lists and newsgroups are there? | ||
| 2064 | * [8.5]:: Where to report bugs? | ||
| 2065 | * [8.6]:: I need real-time help, where to find it? | ||
| 2066 | @end menu | ||
| 2265 | 2067 | ||
| 2266 | Answer: | 2068 | @node [8.1] |
| 2069 | @subsubheading Question 8.1 | ||
| 2267 | 2070 | ||
| 2268 | You can tell the agent to automatically fetch the bodies | 2071 | How to find information and help inside Emacs? |
| 2269 | of articles which fulfill certain predicates, this is | ||
| 2270 | done in a special buffer which can be reached by | ||
| 2271 | saying @samp{J c} in group | ||
| 2272 | buffer. Please refer to the documentation for | ||
| 2273 | information which predicates are possible and how | ||
| 2274 | exactly to do it. | ||
| 2275 | |||
| 2276 | 2072 | ||
| 2277 | Further on you can tell the agent manually which | 2073 | @subsubheading Answer |
| 2278 | articles to store on disk. There are two ways to do | ||
| 2279 | this: Number one: In the summary buffer, process mark a | ||
| 2280 | set of articles that shall be stored in the agent by | ||
| 2281 | saying @samp{#} with point over the | ||
| 2282 | article and then type @samp{J s}. The | ||
| 2283 | other possibility is to set, again in the summary | ||
| 2284 | buffer, downloadable (%) marks for the articles you | ||
| 2285 | want by typing @samp{@@} with point over | ||
| 2286 | the article and then typing @samp{J u}. | ||
| 2287 | What's the difference? Well, process marks are erased as | ||
| 2288 | soon as you exit the summary buffer while downloadable | ||
| 2289 | marks are permanent. You can actually set downloadable | ||
| 2290 | marks in several groups then use fetch session ('J s' in | ||
| 2291 | the GROUP buffer) to fetch all of those articles. The | ||
| 2292 | only downside is that fetch session also fetches all of | ||
| 2293 | the headers for every selected group on an agentized | ||
| 2294 | server. Depending on the volume of headers, the initial | ||
| 2295 | fetch session could take hours. | ||
| 2296 | |||
| 2297 | @ifnottex | ||
| 2298 | @node [7.4], , [7.3], FAQ 7 - Gnus in a dial-up environment | ||
| 2299 | @end ifnottex | ||
| 2300 | @subsubheading Question 7.4: | ||
| 2301 | 2074 | ||
| 2302 | How to tell Gnus not to try to send mails / postings | 2075 | The first stop should be the Gnus manual (Say |
| 2303 | while I'm offline? | 2076 | @samp{C-h i d m Gnus RET} to start the |
| 2304 | 2077 | Gnus manual, then walk through the menus or do a | |
| 2078 | full-text search with @samp{s}). Then | ||
| 2079 | there are the general Emacs help commands starting with | ||
| 2080 | C-h, type @samp{C-h ? ?} to get a list | ||
| 2081 | of all available help commands and their meaning. Finally | ||
| 2082 | @samp{M-x apropos-command} lets you | ||
| 2083 | search through all available functions and @samp{M-x | ||
| 2084 | apropos} searches the bound variables. | ||
| 2305 | 2085 | ||
| 2306 | Answer: | 2086 | @node [8.2] |
| 2087 | @subsubheading Question 8.2 | ||
| 2307 | 2088 | ||
| 2308 | All you've got to do is to tell Gnus when you are online | 2089 | I can't find anything in the Gnus manual about X |
| 2309 | (plugged) and when you are offline (unplugged), the rest | 2090 | (e.g. attachments, PGP, MIME...), is it not documented? |
| 2310 | works automatically. You can toggle plugged/unplugged | ||
| 2311 | state by saying @samp{J j} in group | ||
| 2312 | buffer. To start Gnus unplugged say @samp{M-x | ||
| 2313 | gnus-unplugged} instead of | ||
| 2314 | @samp{M-x gnus}. Note that for this to | ||
| 2315 | work, the agent must be active. | ||
| 2316 | |||
| 2317 | 2091 | ||
| 2318 | @ifnottex | 2092 | @subsubheading Answer |
| 2319 | @node FAQ 8 - Getting help, FAQ 9 - Tuning Gnus, FAQ 7 - Gnus in a dial-up environment, Frequently Asked Questions | ||
| 2320 | @end ifnottex | ||
| 2321 | @subsection Getting help | ||
| 2322 | 2093 | ||
| 2323 | @menu | 2094 | There's not only the Gnus manual but also the manuals |
| 2324 | * [8.1]:: How to find information and help inside Emacs? | 2095 | for message, emacs-mime, sieve and pgg. Those packages |
| 2325 | * [8.2]:: I can't find anything in the Gnus manual about X | 2096 | are distributed with Gnus and used by Gnus but aren't |
| 2326 | (e.g. attachments, PGP, MIME...), is it not documented? | 2097 | really part of core Gnus, so they are documented in |
| 2327 | * [8.3]:: Which websites should I know? | 2098 | different info files, you should have a look in those |
| 2328 | * [8.4]:: Which mailing lists and newsgroups are there? | 2099 | manuals, too. |
| 2329 | * [8.5]:: Where to report bugs? | ||
| 2330 | * [8.6]:: I need real-time help, where to find it? | ||
| 2331 | @end menu | ||
| 2332 | 2100 | ||
| 2333 | @ifnottex | 2101 | @node [8.3] |
| 2334 | @node [8.1], [8.2], FAQ 8 - Getting help, FAQ 8 - Getting help | 2102 | @subsubheading Question 8.3 |
| 2335 | @end ifnottex | ||
| 2336 | @subsubheading Question 8.1: | ||
| 2337 | 2103 | ||
| 2338 | How to find information and help inside Emacs? | 2104 | Which websites should I know? |
| 2339 | |||
| 2340 | 2105 | ||
| 2341 | Answer: | 2106 | @subsubheading Answer |
| 2342 | |||
| 2343 | The first stop should be the Gnus manual (Say | ||
| 2344 | @samp{C-h i d m Gnus RET} to start the | ||
| 2345 | Gnus manual, then walk through the menus or do a | ||
| 2346 | full-text search with @samp{s}). Then | ||
| 2347 | there are the general Emacs help commands starting with | ||
| 2348 | C-h, type @samp{C-h ? ?} to get a list | ||
| 2349 | of all available help commands and their meaning. Finally | ||
| 2350 | @samp{M-x apropos-command} lets you | ||
| 2351 | search through all available functions and @samp{M-x | ||
| 2352 | apropos} searches the bound variables. | ||
| 2353 | |||
| 2354 | @ifnottex | ||
| 2355 | @node [8.2], [8.3], [8.1], FAQ 8 - Getting help | ||
| 2356 | @end ifnottex | ||
| 2357 | @subsubheading Question 8.2: | ||
| 2358 | 2107 | ||
| 2359 | I can't find anything in the Gnus manual about X | 2108 | The two most important ones are the |
| 2360 | (e.g. attachments, PGP, MIME...), is it not documented? | 2109 | @uref{http://www.gnus.org, official Gnus website}. |
| 2361 | 2110 | and it's sister site | |
| 2111 | @uref{http://my.gnus.org, my.gnus.org (MGO)}, | ||
| 2112 | hosting an archive of lisp snippets, howtos, a (not | ||
| 2113 | really finished) tutorial and this FAQ. | ||
| 2362 | 2114 | ||
| 2363 | Answer: | 2115 | Tell me about other sites which are interesting. |
| 2364 | 2116 | ||
| 2365 | There's not only the Gnus manual but also the manuals | 2117 | @node [8.4] |
| 2366 | for message, emacs-mime, sieve and pgg. Those packages | 2118 | @subsubheading Question 8.4 |
| 2367 | are distributed with Gnus and used by Gnus but aren't | ||
| 2368 | really part of core Gnus, so they are documented in | ||
| 2369 | different info files, you should have a look in those | ||
| 2370 | manuals, too. | ||
| 2371 | |||
| 2372 | @ifnottex | ||
| 2373 | @node [8.3], [8.4], [8.2], FAQ 8 - Getting help | ||
| 2374 | @end ifnottex | ||
| 2375 | @subsubheading Question 8.3: | ||
| 2376 | 2119 | ||
| 2377 | Which websites should I know? | 2120 | Which mailing lists and newsgroups are there? |
| 2378 | |||
| 2379 | 2121 | ||
| 2380 | Answer: | 2122 | @subsubheading Answer |
| 2381 | 2123 | ||
| 2382 | The two most important ones are the | 2124 | There's the newsgroup gnu.emacs.gnus (pull it from |
| 2383 | @uref{http://www.gnus.org,official Gnus website}. | 2125 | e.g. news.gnus.org) which deals with general questions and the |
| 2384 | and it's sister site | 2126 | ding mailing list (ding@@gnus.org) dealing with development of |
| 2385 | @uref{http://my.gnus.org,my.gnus.org (MGO)}, | 2127 | Gnus. You can read the ding list via NNTP, too under the name |
| 2386 | hosting an archive of lisp snippets, howtos, a (not | 2128 | gmane.emacs.gnus.general from news.gmane.org. |
| 2387 | really finished) tutorial and this FAQ. | ||
| 2388 | |||
| 2389 | 2129 | ||
| 2390 | Tell me about other sites which are interesting. | 2130 | If you want to stay in the big8, |
| 2391 | 2131 | news.software.newssreaders is also read by some Gnus | |
| 2392 | @ifnottex | 2132 | users (but chances for qualified help are much better in |
| 2393 | @node [8.4], [8.5], [8.3], FAQ 8 - Getting help | 2133 | the above groups) and if you speak German, there's |
| 2394 | @end ifnottex | 2134 | de.comm.software.gnus. |
| 2395 | @subsubheading Question 8.4: | ||
| 2396 | 2135 | ||
| 2397 | Which mailing lists and newsgroups are there? | 2136 | @node [8.5] |
| 2398 | 2137 | @subsubheading Question 8.5 | |
| 2399 | 2138 | ||
| 2400 | Answer: | 2139 | Where to report bugs? |
| 2401 | 2140 | ||
| 2402 | There's the newsgroup gnu.emacs.gnus (pull it from | 2141 | @subsubheading Answer |
| 2403 | e.g. news.gnus.org) which deals with general questions | ||
| 2404 | and the ding mailing list (ding@@gnus.org) dealing with | ||
| 2405 | development of Gnus. You can read the ding list via | ||
| 2406 | NNTP, too under the name gnus.ding from news.gnus.org. | ||
| 2407 | |||
| 2408 | 2142 | ||
| 2409 | If you want to stay in the big8, | 2143 | Say @samp{M-x gnus-bug}, this will start |
| 2410 | news.software.newssreaders is also read by some Gnus | 2144 | a message to the |
| 2411 | users (but chances for qualified help are much better in | 2145 | @email{bugs@@gnus.org, gnus bug mailing list} |
| 2412 | the above groups) and if you speak German, there's | 2146 | including information about your environment which make |
| 2413 | de.comm.software.gnus. | 2147 | it easier to help you. |
| 2414 | |||
| 2415 | @ifnottex | ||
| 2416 | @node [8.5], [8.6], [8.4], FAQ 8 - Getting help | ||
| 2417 | @end ifnottex | ||
| 2418 | @subsubheading Question 8.5: | ||
| 2419 | 2148 | ||
| 2420 | Where to report bugs? | 2149 | @node [8.6] |
| 2421 | 2150 | @subsubheading Question 8.6 | |
| 2422 | 2151 | ||
| 2423 | Answer: | 2152 | I need real-time help, where to find it? |
| 2424 | 2153 | ||
| 2425 | Say @samp{M-x gnus-bug}, this will start a message to the | 2154 | @subsubheading Answer |
| 2426 | @email{bugs@@gnus.org,gnus bug mailing list} including information | ||
| 2427 | about your environment which make it easier to help you. | ||
| 2428 | |||
| 2429 | @ifnottex | ||
| 2430 | @node [8.6], , [8.5], FAQ 8 - Getting help | ||
| 2431 | @end ifnottex | ||
| 2432 | @subsubheading Question 8.6: | ||
| 2433 | 2155 | ||
| 2434 | I need real-time help, where to find it? | 2156 | Point your IRC client to irc.my.gnus.org channel |
| 2435 | 2157 | #mygnus. Don't be afraid if people there speak German, | |
| 2436 | 2158 | they are willing and capable of switching to | |
| 2437 | Answer: | 2159 | English when people from outside Germany enter. |
| 2438 | |||
| 2439 | Point your IRC client to irc.my.gnus.org channel | ||
| 2440 | #mygnus. Don't be afraid if people there speak German, | ||
| 2441 | they are willing and capable of switching to | ||
| 2442 | English when people from outside Germany enter. | ||
| 2443 | |||
| 2444 | 2160 | ||
| 2445 | @ifnottex | 2161 | @node FAQ 9 - Tuning Gnus |
| 2446 | @node FAQ 9 - Tuning Gnus, FAQ - Glossary, FAQ 8 - Getting help, Frequently Asked Questions | ||
| 2447 | @end ifnottex | ||
| 2448 | @subsection Tuning Gnus | 2162 | @subsection Tuning Gnus |
| 2449 | 2163 | ||
| 2450 | @menu | 2164 | @menu |
| 2451 | * [9.1]:: Starting Gnus is really slow, how to speed it up? | 2165 | * [9.1]:: Starting Gnus is really slow, how to speed it up? |
| 2452 | * [9.2]:: How to speed up the process of entering a group? | 2166 | * [9.2]:: How to speed up the process of entering a group? |
| 2453 | * [9.3]:: Sending mail becomes slower and slower, what's up? | 2167 | * [9.3]:: Sending mail becomes slower and slower, what's up? |
| 2454 | @end menu | 2168 | @end menu |
| 2455 | 2169 | ||
| 2456 | @ifnottex | 2170 | @node [9.1] |
| 2457 | @node [9.1], [9.2], FAQ 9 - Tuning Gnus, FAQ 9 - Tuning Gnus | 2171 | @subsubheading Question 9.1 |
| 2458 | @end ifnottex | ||
| 2459 | @subsubheading Question 9.1: | ||
| 2460 | 2172 | ||
| 2461 | Starting Gnus is really slow, how to speed it up? | 2173 | Starting Gnus is really slow, how to speed it up? |
| 2462 | |||
| 2463 | 2174 | ||
| 2464 | Answer: | 2175 | @subsubheading Answer |
| 2465 | 2176 | ||
| 2466 | The reason for this could be the way Gnus reads it's | 2177 | The reason for this could be the way Gnus reads it's |
| 2467 | active file, see the node "The Active File" in the Gnus | 2178 | active file, see the node "The Active File" in the Gnus |
| 2468 | manual for things you might try to speed the process up. | 2179 | manual for things you might try to speed the process up. |
| 2469 | An other idea would be to byte compile your ~/.gnus (say | 2180 | An other idea would be to byte compile your ~/.gnus.el (say |
| 2470 | @samp{M-x byte-compile-file RET ~/.gnus | 2181 | @samp{M-x byte-compile-file RET ~/.gnus.el |
| 2471 | RET} to do it). Finally, if you have require | 2182 | RET} to do it). Finally, if you have require |
| 2472 | statements in your .gnus, you could replace them with | 2183 | statements in your .gnus, you could replace them with |
| 2473 | eval-after-load, which loads the stuff not at startup | 2184 | eval-after-load, which loads the stuff not at startup |
| 2474 | time, but when it's needed. Say you've got this in your | 2185 | time, but when it's needed. Say you've got this in your |
| 2475 | ~/.gnus: | 2186 | ~/.gnus.el: |
| 2476 | |||
| 2477 | 2187 | ||
| 2478 | @example | 2188 | @example |
| 2479 | (require 'message) | 2189 | (require 'message) |
| 2480 | (add-to-list 'message-syntax-checks '(sender . disabled)) | 2190 | (add-to-list 'message-syntax-checks '(sender . disabled)) |
| 2481 | @end example | 2191 | @end example |
| 2482 | |||
| 2483 | @noindent | 2192 | @noindent |
| 2484 | then as soon as you start Gnus, message.el is loaded. If | 2193 | |
| 2485 | you replace it with | 2194 | then as soon as you start Gnus, message.el is loaded. If |
| 2486 | 2195 | you replace it with | |
| 2487 | 2196 | ||
| 2488 | @example | 2197 | @example |
| 2489 | (eval-after-load "message" | 2198 | (eval-after-load "message" |
| 2490 | '(add-to-list 'message-syntax-checks '(sender . disabled))) | 2199 | '(add-to-list 'message-syntax-checks '(sender . disabled))) |
| 2491 | @end example | 2200 | @end example |
| 2492 | |||
| 2493 | @noindent | 2201 | @noindent |
| 2494 | it's loaded when it's needed. | ||
| 2495 | |||
| 2496 | @ifnottex | ||
| 2497 | @node [9.2], [9.3], [9.1], FAQ 9 - Tuning Gnus | ||
| 2498 | @end ifnottex | ||
| 2499 | @subsubheading Question 9.2: | ||
| 2500 | 2202 | ||
| 2501 | How to speed up the process of entering a group? | 2203 | it's loaded when it's needed. |
| 2502 | |||
| 2503 | 2204 | ||
| 2504 | Answer: | 2205 | @node [9.2] |
| 2206 | @subsubheading Question 9.2 | ||
| 2505 | 2207 | ||
| 2506 | A speed killer is setting the variable | 2208 | How to speed up the process of entering a group? |
| 2507 | gnus-fetch-old-headers to anything different from nil, | 2209 | |
| 2508 | so don't do this if speed is an issue. To speed up | 2210 | @subsubheading Answer |
| 2509 | building of summary say | 2211 | |
| 2510 | 2212 | A speed killer is setting the variable | |
| 2213 | gnus-fetch-old-headers to anything different from nil, | ||
| 2214 | so don't do this if speed is an issue. To speed up | ||
| 2215 | building of summary say | ||
| 2511 | 2216 | ||
| 2512 | @example | 2217 | @example |
| 2513 | (gnus-compile) | 2218 | (gnus-compile) |
| 2514 | @end example | 2219 | @end example |
| 2515 | |||
| 2516 | @noindent | 2220 | @noindent |
| 2517 | at the bottom of your ~/.gnus, this will make gnus | 2221 | |
| 2518 | byte-compile things like | 2222 | at the bottom of your ~/.gnus.el, this will make gnus |
| 2519 | gnus-summary-line-format. | 2223 | byte-compile things like |
| 2520 | then you could increase the value of gc-cons-threshold | 2224 | gnus-summary-line-format. |
| 2521 | by saying something like | 2225 | then you could increase the value of gc-cons-threshold |
| 2522 | 2226 | by saying something like | |
| 2523 | 2227 | ||
| 2524 | @example | 2228 | @example |
| 2525 | (setq gc-cons-threshold 3500000) | 2229 | (setq gc-cons-threshold 3500000) |
| 2526 | @end example | 2230 | @end example |
| 2527 | |||
| 2528 | @noindent | 2231 | @noindent |
| 2529 | in ~/.emacs. If you don't care about width of CJK | 2232 | |
| 2530 | characters or use Gnus 5.10 or younger together with a | 2233 | in ~/.emacs. If you don't care about width of CJK |
| 2531 | recent GNU Emacs, you should say | 2234 | characters or use Gnus 5.10 or younger together with a |
| 2532 | 2235 | recent GNU Emacs, you should say | |
| 2533 | 2236 | ||
| 2534 | @example | 2237 | @example |
| 2535 | (setq gnus-use-correct-string-widths nil) | 2238 | (setq gnus-use-correct-string-widths nil) |
| 2536 | @end example | 2239 | @end example |
| 2537 | |||
| 2538 | |||
| 2539 | @noindent | 2240 | @noindent |
| 2540 | in ~/.gnus (thanks to Jesper harder for the last | ||
| 2541 | two suggestions). Finally if you are still using 5.8.8 | ||
| 2542 | or 5.9 and experience speed problems with summary | ||
| 2543 | buffer generation, you definitely should update to | ||
| 2544 | 5.10 since there quite some work on improving it has | ||
| 2545 | been done. | ||
| 2546 | 2241 | ||
| 2547 | @ifnottex | 2242 | in ~/.gnus.el (thanks to Jesper harder for the last |
| 2548 | @node [9.3], , [9.2], FAQ 9 - Tuning Gnus | 2243 | two suggestions). Finally if you are still using 5.8.8 |
| 2549 | @end ifnottex | 2244 | or 5.9 and experience speed problems with summary |
| 2550 | @subsubheading Question 9.3: | 2245 | buffer generation, you definitely should update to |
| 2246 | 5.10 since there quite some work on improving it has | ||
| 2247 | been done. | ||
| 2551 | 2248 | ||
| 2552 | Sending mail becomes slower and slower, what's up? | 2249 | @node [9.3] |
| 2553 | 2250 | @subsubheading Question 9.3 | |
| 2554 | 2251 | ||
| 2555 | Answer: | 2252 | Sending mail becomes slower and slower, what's up? |
| 2556 | 2253 | ||
| 2557 | The reason could be that you told Gnus to archive the | 2254 | @subsubheading Answer |
| 2558 | messages you wrote by setting | ||
| 2559 | gnus-message-archive-group. Try to use a nnml group | ||
| 2560 | instead of an archive group, this should bring you back | ||
| 2561 | to normal speed. | ||
| 2562 | |||
| 2563 | 2255 | ||
| 2564 | @ifnottex | 2256 | The reason could be that you told Gnus to archive the |
| 2565 | @node FAQ - Glossary, , FAQ 9 - Tuning Gnus, Frequently Asked Questions | 2257 | messages you wrote by setting |
| 2566 | @end ifnottex | 2258 | gnus-message-archive-group. Try to use a nnml group |
| 2259 | instead of an archive group, this should bring you back | ||
| 2260 | to normal speed. | ||
| 2261 | |||
| 2262 | @node FAQ - Glossary | ||
| 2567 | @subsection Glossary | 2263 | @subsection Glossary |
| 2568 | 2264 | ||
| 2569 | @table @dfn | 2265 | @table @dfn |
| 2570 | 2266 | ||
| 2571 | @item ~/.gnus | 2267 | @item ~/.gnus.el |
| 2572 | When the term ~/.gnus is used it just means your Gnus | 2268 | When the term ~/.gnus.el is used it just means your Gnus |
| 2573 | configuration file. You might as well call it ~/.gnus.el or | 2269 | configuration file. You might as well call it ~/.gnus or |
| 2574 | specify another name. | 2270 | specify another name. |
| 2575 | |||
| 2576 | 2271 | ||
| 2577 | @item Back End | 2272 | @item Back End |
| 2578 | In Gnus terminology a back end is a virtual server, a layer | 2273 | In Gnus terminology a back end is a virtual server, a layer |
| 2579 | between core Gnus and the real NNTP-, POP3-, IMAP- or | 2274 | between core Gnus and the real NNTP-, POP3-, IMAP- or |
| 2580 | whatever-server which offers Gnus a standardized interface | 2275 | whatever-server which offers Gnus a standardized interface |
| 2581 | to functions like "get message", "get Headers" etc. | 2276 | to functions like "get message", "get Headers" etc. |
| 2582 | |||
| 2583 | 2277 | ||
| 2584 | @item Emacs | 2278 | @item Emacs |
| 2585 | When the term Emacs is used in this FAQ, it means either GNU | 2279 | When the term Emacs is used in this FAQ, it means either GNU |
| 2586 | Emacs or XEmacs. | 2280 | Emacs or XEmacs. |
| 2587 | |||
| 2588 | 2281 | ||
| 2589 | @item Message | 2282 | @item Message |
| 2590 | In this FAQ message means a either a mail or a posting to a | 2283 | In this FAQ message means a either a mail or a posting to a |
| 2591 | Usenet Newsgroup or to some other fancy back end, no matter | 2284 | Usenet Newsgroup or to some other fancy back end, no matter |
| 2592 | of which kind it is. | 2285 | of which kind it is. |
| 2593 | |||
| 2594 | 2286 | ||
| 2595 | @item MUA | 2287 | @item MUA |
| 2596 | MUA is an acronym for Mail User Agent, it's the program you | 2288 | MUA is an acronym for Mail User Agent, it's the program you |
| 2597 | use to read and write e-mails. | 2289 | use to read and write e-mails. |
| 2598 | |||
| 2599 | 2290 | ||
| 2600 | @item NUA | 2291 | @item NUA |
| 2601 | NUA is an acronym for News User Agent, it's the program you | 2292 | NUA is an acronym for News User Agent, it's the program you |
| 2602 | use to read and write Usenet news. | 2293 | use to read and write Usenet news. |
| 2603 | |||
| 2604 | @end table | ||
| 2605 | 2294 | ||
| 2606 | @c @bye | 2295 | @end table |
| 2607 | 2296 | ||
| 2608 | @ignore | 2297 | @ignore |
| 2609 | arch-tag: 64dc5692-edb4-4848-a965-7aa0181acbb8 | 2298 | arch-tag: 64dc5692-edb4-4848-a965-7aa0181acbb8 |
| 2610 | @end ignore | 2299 | @end ignore |
diff --git a/man/gnus.texi b/man/gnus.texi index 3a98f64baa1..c670da11b22 100644 --- a/man/gnus.texi +++ b/man/gnus.texi | |||
| @@ -8,7 +8,7 @@ | |||
| 8 | 8 | ||
| 9 | @copying | 9 | @copying |
| 10 | Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2001, | 10 | Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2001, |
| 11 | 2002, 2003, 2004 | 11 | 2002, 2003, 2004, 2005 |
| 12 | Free Software Foundation, Inc. | 12 | Free Software Foundation, Inc. |
| 13 | 13 | ||
| 14 | @quotation | 14 | @quotation |
| @@ -18594,7 +18594,7 @@ that most will look for it here, this variable tells the summary | |||
| 18594 | buffer how to maneuver around undownloaded (only headers stored in the | 18594 | buffer how to maneuver around undownloaded (only headers stored in the |
| 18595 | agent) and unfetched (neither article nor headers stored) articles. | 18595 | agent) and unfetched (neither article nor headers stored) articles. |
| 18596 | 18596 | ||
| 18597 | The legal values are @code{nil} (maneuver to any article), | 18597 | The valid values are @code{nil} (maneuver to any article), |
| 18598 | @code{undownloaded} (maneuvering while unplugged ignores articles that | 18598 | @code{undownloaded} (maneuvering while unplugged ignores articles that |
| 18599 | have not been fetched), @code{always-undownloaded} (maneuvering always | 18599 | have not been fetched), @code{always-undownloaded} (maneuvering always |
| 18600 | ignores articles that have not been fetched), @code{unfetched} | 18600 | ignores articles that have not been fetched), @code{unfetched} |
diff --git a/man/help.texi b/man/help.texi index 8f7eed4915c..29c06b499df 100644 --- a/man/help.texi +++ b/man/help.texi | |||
| @@ -172,6 +172,9 @@ documented (@code{Info-goto-emacs-key-command-node}). | |||
| 172 | @item C-h S @var{symbol} @key{RET} | 172 | @item C-h S @var{symbol} @key{RET} |
| 173 | Display the Info documentation on symbol @var{symbol} according to the | 173 | Display the Info documentation on symbol @var{symbol} according to the |
| 174 | programming language you are editing (@code{info-lookup-symbol}). | 174 | programming language you are editing (@code{info-lookup-symbol}). |
| 175 | @item C-h . | ||
| 176 | Display a help message associated with special text areas, such as | ||
| 177 | links in @samp{*Help*} buffers (@code{display-local-help}). | ||
| 175 | @end table | 178 | @end table |
| 176 | 179 | ||
| 177 | @node Key Help | 180 | @node Key Help |
| @@ -277,13 +280,14 @@ example, it would say that you can invoke @code{find-file} by typing | |||
| 277 | normally checks only commands (interactive functions); if you specify a | 280 | normally checks only commands (interactive functions); if you specify a |
| 278 | prefix argument, it checks noninteractive functions as well. | 281 | prefix argument, it checks noninteractive functions as well. |
| 279 | 282 | ||
| 280 | Because @kbd{C-h a} looks only for commands whose names contain the | 283 | Because @kbd{C-h a} looks only for commands matching the string you |
| 281 | string you specify, you must use ingenuity in choosing the string. If | 284 | specify, you may not find what you want on the first try. In that |
| 282 | you are looking for commands for killing backwards and @kbd{C-h a | 285 | case, don't just give up. You can give Apropos a list of words to |
| 283 | kill-backwards @key{RET}} doesn't reveal any, don't give up. Try just | 286 | search for. When more than one word is specified, at least two of |
| 284 | @kbd{kill}, or just @kbd{backwards}, or just @kbd{back}. Be | 287 | those words must be present for an item to match. If you are looking |
| 285 | persistent. Also note that you can use a regular expression as the | 288 | for commands to kill a chunk of text before point, try @kbd{C-h a kill |
| 286 | argument, for more flexibility (@pxref{Regexps}). | 289 | back behind before @key{RET}}. For even greater flexibility, you can |
| 290 | also supply a regular expression to Apropos (@pxref{Regexps}). | ||
| 287 | 291 | ||
| 288 | Here is a set of arguments to give to @kbd{C-h a} that covers many | 292 | Here is a set of arguments to give to @kbd{C-h a} that covers many |
| 289 | classes of Emacs commands, since there are strong conventions for naming | 293 | classes of Emacs commands, since there are strong conventions for naming |
| @@ -327,6 +331,13 @@ check them. | |||
| 327 | If the variable @code{apropos-do-all} is non-@code{nil}, the commands | 331 | If the variable @code{apropos-do-all} is non-@code{nil}, the commands |
| 328 | above all behave as if they had been given a prefix argument. | 332 | above all behave as if they had been given a prefix argument. |
| 329 | 333 | ||
| 334 | @vindex apropos-sort-by-scores | ||
| 335 | @cindex apropos search results, order by score | ||
| 336 | By default, Apropos lists the search results in alphabetical order. | ||
| 337 | If the variable @code{apropos-sort-by-scores} is non-@code{nil}, | ||
| 338 | Apropos tries to guess the relevance of each result, and displays the | ||
| 339 | most relevant ones first. | ||
| 340 | |||
| 330 | If you want more information about a function definition, variable or | 341 | If you want more information about a function definition, variable or |
| 331 | symbol property listed in the Apropos buffer, you can click on it with | 342 | symbol property listed in the Apropos buffer, you can click on it with |
| 332 | @kbd{Mouse-1} or @kbd{Mouse-2}, or move there and type @key{RET}. | 343 | @kbd{Mouse-1} or @kbd{Mouse-2}, or move there and type @key{RET}. |
| @@ -590,10 +601,20 @@ Emacs (@code{describe-no-warranty}). | |||
| 590 | @cindex balloon help | 601 | @cindex balloon help |
| 591 | When a region of text is ``active,'' so that you can select it with | 602 | When a region of text is ``active,'' so that you can select it with |
| 592 | the mouse or a key like @kbd{RET}, it often has associated help text. | 603 | the mouse or a key like @kbd{RET}, it often has associated help text. |
| 593 | Areas of the mode line are examples. This help will normally be | 604 | Areas of the mode line are examples. On most window systems, the help |
| 594 | shown in the echo area when you move point into the active text. In | 605 | text is displayed as a ``tooltip'' (sometimes known as ``balloon |
| 595 | a window system you can display the help text as a ``tooltip'' | 606 | help''). @xref{Tooltips}. Otherwise, it is shown in the echo area |
| 596 | (sometimes known as ``balloon help''). @xref{Tooltips}. | 607 | when you move point into the active text. |
| 608 | |||
| 609 | @kindex C-h . | ||
| 610 | @findex display-local-help | ||
| 611 | @vindex help-at-pt-display-when-idle | ||
| 612 | You can also access text region help info using the keyboard. The | ||
| 613 | command @kbd{C-h .} (@code{display-local-help}) displays any help text | ||
| 614 | associated with the text at point, using the echo area. If you want | ||
| 615 | help text to be displayed automatically whenever it is available at | ||
| 616 | point, set the variable @code{help-at-pt-display-when-idle} to | ||
| 617 | @code{t}. | ||
| 597 | 618 | ||
| 598 | @ignore | 619 | @ignore |
| 599 | arch-tag: 6f33ab62-bc75-4367-8057-fd67cc15c3a1 | 620 | arch-tag: 6f33ab62-bc75-4367-8057-fd67cc15c3a1 |
diff --git a/man/idlwave.texi b/man/idlwave.texi index 42b3bea4034..8226c0ac63f 100644 --- a/man/idlwave.texi +++ b/man/idlwave.texi | |||
| @@ -14,12 +14,11 @@ | |||
| 14 | @set IDLVERSION 6.1 | 14 | @set IDLVERSION 6.1 |
| 15 | @set NSYSROUTINES 1850 | 15 | @set NSYSROUTINES 1850 |
| 16 | @set NSYSKEYWORDS 7685 | 16 | @set NSYSKEYWORDS 7685 |
| 17 | @set DATE November, 2004 | 17 | @set DATE March, 2005 |
| 18 | @set AUTHOR J.D. Smith & Carsten Dominik | 18 | @set AUTHOR J.D. Smith & Carsten Dominik |
| 19 | @set AUTHOR-EMAIL jdsmith@@as.arizona.edu | 19 | @set AUTHOR-EMAIL jdsmith@@as.arizona.edu |
| 20 | @set MAINTAINER J.D. Smith | 20 | @set MAINTAINER J.D. Smith |
| 21 | @set MAINTAINER-EMAIL jdsmith@@as.arizona.edu | 21 | @set MAINTAINER-EMAIL jdsmith@@as.arizona.edu |
| 22 | @set IDLWAVE-HOMEPAGE http://idlwave.org/ | ||
| 23 | @c %**end of header | 22 | @c %**end of header |
| 24 | @finalout | 23 | @finalout |
| 25 | 24 | ||
| @@ -30,7 +29,7 @@ Emacs, and interacting with an IDL shell run as a subprocess. | |||
| 30 | This is edition @value{EDITION} of the IDLWAVE User Manual for IDLWAVE | 29 | This is edition @value{EDITION} of the IDLWAVE User Manual for IDLWAVE |
| 31 | @value{VERSION} | 30 | @value{VERSION} |
| 32 | 31 | ||
| 33 | Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004 Free Software | 32 | Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software |
| 34 | Foundation, Inc. | 33 | Foundation, Inc. |
| 35 | 34 | ||
| 36 | Permission is granted to copy, distribute and/or modify this document | 35 | Permission is granted to copy, distribute and/or modify this document |
| @@ -61,7 +60,7 @@ license to the document, as described in section 6 of the license. | |||
| 61 | This is edition @value{EDITION} of the @cite{IDLWAVE User Manual} for | 60 | This is edition @value{EDITION} of the @cite{IDLWAVE User Manual} for |
| 62 | IDLWAVE version @value{VERSION}, @value{DATE}. | 61 | IDLWAVE version @value{VERSION}, @value{DATE}. |
| 63 | @sp 2 | 62 | @sp 2 |
| 64 | Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004 Free Software | 63 | Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software |
| 65 | Foundation, Inc. | 64 | Foundation, Inc. |
| 66 | @sp 2 | 65 | @sp 2 |
| 67 | @cindex Copyright, of IDLWAVE | 66 | @cindex Copyright, of IDLWAVE |
| @@ -101,7 +100,6 @@ Interactive Data Language (IDL), and running IDL as an inferior shell. | |||
| 101 | * Getting Started:: Tutorial | 100 | * Getting Started:: Tutorial |
| 102 | * The IDLWAVE Major Mode:: The mode for editing IDL programs | 101 | * The IDLWAVE Major Mode:: The mode for editing IDL programs |
| 103 | * The IDLWAVE Shell:: The mode for running IDL as an inferior program | 102 | * The IDLWAVE Shell:: The mode for running IDL as an inferior program |
| 104 | * Installation:: How to Install or Upgrade | ||
| 105 | * Acknowledgements:: Who did what | 103 | * Acknowledgements:: Who did what |
| 106 | * Sources of Routine Info:: How does IDLWAVE know about routine XYZ | 104 | * Sources of Routine Info:: How does IDLWAVE know about routine XYZ |
| 107 | * HTML Help Browser Tips:: | 105 | * HTML Help Browser Tips:: |
| @@ -180,11 +178,6 @@ Debugging IDL Programs | |||
| 180 | * Walking the Calling Stack:: | 178 | * Walking the Calling Stack:: |
| 181 | * Electric Debug Mode:: | 179 | * Electric Debug Mode:: |
| 182 | 180 | ||
| 183 | Installation | ||
| 184 | |||
| 185 | * Installing IDLWAVE:: How to install the distribution | ||
| 186 | * Installing Online Help:: Where to get the additional files needed | ||
| 187 | |||
| 188 | Sources of Routine Info | 181 | Sources of Routine Info |
| 189 | 182 | ||
| 190 | * Routine Definitions:: Where IDL Routines are defined. | 183 | * Routine Definitions:: Where IDL Routines are defined. |
| @@ -204,8 +197,6 @@ Catalogs | |||
| 204 | @node Introduction, IDLWAVE in a Nutshell, Top, Top | 197 | @node Introduction, IDLWAVE in a Nutshell, Top, Top |
| 205 | @chapter Introduction | 198 | @chapter Introduction |
| 206 | @cindex Introduction | 199 | @cindex Introduction |
| 207 | @cindex CORBA (Common Object Request Broker Architecture) | ||
| 208 | @cindex Interface Definition Language | ||
| 209 | @cindex Interactive Data Language | 200 | @cindex Interactive Data Language |
| 210 | @cindex cc-mode.el | 201 | @cindex cc-mode.el |
| 211 | @cindex @file{idl.el} | 202 | @cindex @file{idl.el} |
| @@ -213,14 +204,13 @@ Catalogs | |||
| 213 | @cindex Feature overview | 204 | @cindex Feature overview |
| 214 | 205 | ||
| 215 | IDLWAVE is a package which supports editing source files written in | 206 | IDLWAVE is a package which supports editing source files written in |
| 216 | the Interactive Data Language (IDL@footnote{IDL is a registered | 207 | the Interactive Data Language, and running |
| 217 | trademark of Research Systems, Inc., a Kodak Company}), and running | ||
| 218 | IDL as an inferior shell@footnote{Note that this package has nothing | 208 | IDL as an inferior shell@footnote{Note that this package has nothing |
| 219 | to do with the Interface Definition Language, part of the Common | 209 | to do with the Interface Definition Language, part of the Common |
| 220 | Object Request Broker Architecture (CORBA)}@footnote{IDLWAVE can also | 210 | Object Request Broker Architecture (CORBA)}@footnote{IDLWAVE can also |
| 221 | be used for editing source files for the related WAVE/CL language, but | 211 | be used for editing source files for the related WAVE/CL language, but |
| 222 | with only limited support.}. It is a feature-rich replacement for the | 212 | with only limited support.}. It is a feature-rich replacement for the |
| 223 | IDLDE development environment bundled with IDL, and uses the full | 213 | IDLDE development environment included with IDL, and uses the full |
| 224 | power of Emacs to make editing and running IDL programs easier, | 214 | power of Emacs to make editing and running IDL programs easier, |
| 225 | quicker, and more structured. | 215 | quicker, and more structured. |
| 226 | 216 | ||
| @@ -421,11 +411,10 @@ be discovered by reading the entire manual, or hovering over the | |||
| 421 | shoulder of your nearest IDLWAVE guru for a few days. | 411 | shoulder of your nearest IDLWAVE guru for a few days. |
| 422 | 412 | ||
| 423 | It is assumed that you have access to Emacs or XEmacs with the full | 413 | It is assumed that you have access to Emacs or XEmacs with the full |
| 424 | IDLWAVE package including online help (@pxref{Installation}). We also | 414 | IDLWAVE package including online help. We also assume that you are |
| 425 | assume that you are familiar with Emacs and can read the nomenclature of | 415 | familiar with Emacs and can read the nomenclature of key presses in |
| 426 | key presses in Emacs (in particular, @kbd{C} stands for @key{CONTROL} | 416 | Emacs (in particular, @kbd{C} stands for @key{CONTROL} and @kbd{M} for |
| 427 | and @kbd{M} for @key{META} (often the @key{ALT} key carries this | 417 | @key{META} (often the @key{ALT} key carries this functionality)). |
| 428 | functionality)). | ||
| 429 | 418 | ||
| 430 | Open a new source file by typing: | 419 | Open a new source file by typing: |
| 431 | 420 | ||
| @@ -612,9 +601,8 @@ restart Emacs. | |||
| 612 | 601 | ||
| 613 | You likely have your own indentation preferences for IDL code. For | 602 | You likely have your own indentation preferences for IDL code. For |
| 614 | example, some like to indent the main block of an IDL program from the | 603 | example, some like to indent the main block of an IDL program from the |
| 615 | margin, different from the conventions used by RSI, and use only 3 | 604 | margin and use only 3 spaces as indentation between @code{BEGIN} and |
| 616 | spaces as indentation between @code{BEGIN} and @code{END}. Try the | 605 | @code{END}. Try the following lines in @file{.emacs}: |
| 617 | following lines in @file{.emacs}: | ||
| 618 | 606 | ||
| 619 | @lisp | 607 | @lisp |
| 620 | (setq idlwave-main-block-indent 2) | 608 | (setq idlwave-main-block-indent 2) |
| @@ -1279,19 +1267,18 @@ Maximum number of source files displayed in the Routine Info window. | |||
| 1279 | @cindex Online Help, Installation | 1267 | @cindex Online Help, Installation |
| 1280 | @cindex Speed, of online help | 1268 | @cindex Speed, of online help |
| 1281 | 1269 | ||
| 1282 | For IDL system routines, RSI provides extensive documentation. | 1270 | IDLWAVE can display help from an HTML version of the IDL documentation |
| 1283 | IDLWAVE can access an HTML version of this documentation very quickly | 1271 | if it is available. This is @emph{much} faster than using the IDL |
| 1284 | and accurately. This is @emph{much} faster than using the IDL online | 1272 | online help application, because IDLWAVE usually gets you to the right |
| 1285 | help application, because IDLWAVE usually gets you to the right place | 1273 | place in the documentation directly --- e.g. a specific keyword of a |
| 1286 | in the documentation directly --- e.g. a specific keyword of a routine | 1274 | routine --- without any additional browsing and scrolling. There are |
| 1287 | --- without any additional browsing and scrolling. For this online | 1275 | a variety of options for displaying the HTML help: see below. Help |
| 1288 | help to work, an HTML version of the IDL documentation, which is not | 1276 | for routines without HTML documentation is also available, using the |
| 1289 | part of the standalone IDLWAVE distribution, is required. The | 1277 | routine documentation header and/or source. |
| 1290 | necessary files can be downloaded from @uref{@value{IDLWAVE-HOMEPAGE}, | 1278 | |
| 1291 | the maintainers webpage}. There are a variety of options for | 1279 | To make this feature work, you should set |
| 1292 | displaying the HTML help: see below. Help for routines without HTML | 1280 | @code{idlwave-html-help-location} to the directory name of the |
| 1293 | documentation is also available, using the routine documentation | 1281 | directory where the IDL help files are installed. |
| 1294 | header and/or source. | ||
| 1295 | 1282 | ||
| 1296 | @kindex M-? | 1283 | @kindex M-? |
| 1297 | In any IDL program (or, as with most IDLWAVE commands, in the IDL | 1284 | In any IDL program (or, as with most IDLWAVE commands, in the IDL |
| @@ -1376,19 +1363,19 @@ sent to. This function is used to set the variable | |||
| 1376 | Customize this variable to see what choices of browsers your system | 1363 | Customize this variable to see what choices of browsers your system |
| 1377 | offers. | 1364 | offers. |
| 1378 | 1365 | ||
| 1379 | Certain browsers like @code{w3} (bundled with many versions of Emacs) | 1366 | Certain browsers like @code{w3} and @code{w3m} |
| 1380 | and @code{w3m} (@uref{http://emacs-w3m.namazu.org/}, the author's help | 1367 | (@uref{http://emacs-w3m.namazu.org/}, the author's help browser of |
| 1381 | browser of choice) are run within Emacs, and use Emacs buffers to | 1368 | choice) are run within Emacs, and use Emacs buffers to display the |
| 1382 | display the HTML help. This can be convenient, especially on small | 1369 | HTML help. This can be convenient, especially on small displays, and |
| 1383 | displays, and images can even be displayed in-line on new Emacs | 1370 | images can even be displayed in-line on new Emacs versions. However, |
| 1384 | versions. However, better formatting results are often achieved with | 1371 | better formatting results are often achieved with external browsers, |
| 1385 | external browsers, like Mozilla. IDLWAVE assumes any browser function | 1372 | like Mozilla. IDLWAVE assumes any browser function containing "w3" is |
| 1386 | containing "w3" is displayed in a local buffer. If you are using | 1373 | displayed in a local buffer. If you are using another Emacs-local |
| 1387 | another Emacs-local browser for which this is not true, set the | 1374 | browser for which this is not true, set the variable |
| 1388 | variable @code{idlwave-help-browser-is-local}. | 1375 | @code{idlwave-help-browser-is-local}. |
| 1389 | 1376 | ||
| 1390 | @emph{N.B. For Windows users}: IDLWAVE can bring up RSI help directly | 1377 | @emph{N.B. For Windows users}: IDLWAVE can bring up help directly |
| 1391 | in the Microsoft HTMLHelp documentation supplied with IDL: no | 1378 | from the Microsoft HTMLHelp documentation supplied with IDL: no |
| 1392 | additional help files are needed. Be sure to set | 1379 | additional help files are needed. Be sure to set |
| 1393 | @code{idlwave-system-directory} and the help file will be found | 1380 | @code{idlwave-system-directory} and the help file will be found |
| 1394 | automatically (or, alternatively, specify its location directly with | 1381 | automatically (or, alternatively, specify its location directly with |
| @@ -2217,7 +2204,7 @@ case of routines, keywords, classes, and methods as they are completed, see | |||
| 2217 | 2204 | ||
| 2218 | @defopt idlwave-abbrev-change-case (@code{nil}) | 2205 | @defopt idlwave-abbrev-change-case (@code{nil}) |
| 2219 | Non-@code{nil} means all abbrevs will be forced to either upper or lower | 2206 | Non-@code{nil} means all abbrevs will be forced to either upper or lower |
| 2220 | case. Legal values are @code{nil}, @code{t}, and @code{down}. | 2207 | case. Valid values are @code{nil}, @code{t}, and @code{down}. |
| 2221 | @end defopt | 2208 | @end defopt |
| 2222 | 2209 | ||
| 2223 | @defopt idlwave-reserved-word-upcase (@code{nil}) | 2210 | @defopt idlwave-reserved-word-upcase (@code{nil}) |
| @@ -2343,7 +2330,7 @@ Normal hook. Executed when @file{idlwave.el} is loaded. | |||
| 2343 | 2330 | ||
| 2344 | 2331 | ||
| 2345 | 2332 | ||
| 2346 | @node The IDLWAVE Shell, Installation, The IDLWAVE Major Mode, Top | 2333 | @node The IDLWAVE Shell, Acknowledgements, The IDLWAVE Major Mode, Top |
| 2347 | @chapter The IDLWAVE Shell | 2334 | @chapter The IDLWAVE Shell |
| 2348 | @cindex IDLWAVE shell | 2335 | @cindex IDLWAVE shell |
| 2349 | @cindex Major mode, @code{idlwave-shell-mode} | 2336 | @cindex Major mode, @code{idlwave-shell-mode} |
| @@ -2842,7 +2829,7 @@ provides faster access (@pxref{Electric Debug Mode}). | |||
| 2842 | 2829 | ||
| 2843 | @defopt idlwave-shell-mark-breakpoints (@code{t}) | 2830 | @defopt idlwave-shell-mark-breakpoints (@code{t}) |
| 2844 | Non-@code{nil} means mark breakpoints in the source file buffers. The | 2831 | Non-@code{nil} means mark breakpoints in the source file buffers. The |
| 2845 | value indicates the preferred method. Legal values are @code{nil}, | 2832 | value indicates the preferred method. Valid values are @code{nil}, |
| 2846 | @code{t}, @code{face}, and @code{glyph}. | 2833 | @code{t}, @code{face}, and @code{glyph}. |
| 2847 | @end defopt | 2834 | @end defopt |
| 2848 | 2835 | ||
| @@ -2879,7 +2866,7 @@ been set (or you give two prefix arguments), the last command on the | |||
| 2879 | 2866 | ||
| 2880 | @defopt idlwave-shell-mark-stop-line (@code{t}) | 2867 | @defopt idlwave-shell-mark-stop-line (@code{t}) |
| 2881 | Non-@code{nil} means mark the source code line where IDL is currently | 2868 | Non-@code{nil} means mark the source code line where IDL is currently |
| 2882 | stopped. The value specifies the preferred method. Legal values are | 2869 | stopped. The value specifies the preferred method. Valid values are |
| 2883 | @code{nil}, @code{t}, @code{arrow}, and @code{face}. | 2870 | @code{nil}, @code{t}, @code{arrow}, and @code{face}. |
| 2884 | @end defopt | 2871 | @end defopt |
| 2885 | 2872 | ||
| @@ -3209,59 +3196,7 @@ examine command strings to send, after all instances of @code{___} | |||
| 3209 | @end defopt | 3196 | @end defopt |
| 3210 | 3197 | ||
| 3211 | 3198 | ||
| 3212 | @node Installation, Acknowledgements, The IDLWAVE Shell, Top | 3199 | @node Acknowledgements, Sources of Routine Info, The IDLWAVE Shell, Top |
| 3213 | @chapter Installation | ||
| 3214 | @cindex Installation | ||
| 3215 | |||
| 3216 | @menu | ||
| 3217 | * Installing IDLWAVE:: How to install the distribution | ||
| 3218 | * Installing Online Help:: Where to get the additional files needed | ||
| 3219 | @end menu | ||
| 3220 | |||
| 3221 | @node Installing IDLWAVE, Installing Online Help, Installation, Installation | ||
| 3222 | @section Installing IDLWAVE | ||
| 3223 | |||
| 3224 | @cindex FTP site | ||
| 3225 | @cindex URL, homepage for IDLWAVE | ||
| 3226 | @cindex Homepage for IDLWAVE | ||
| 3227 | @cindex IDLWAVE, homepage | ||
| 3228 | @cindex XEmacs package IDLWAVE | ||
| 3229 | @cindex Emacs, distributed with IDLWAVE | ||
| 3230 | @cindex Copyright, of IDL manual | ||
| 3231 | IDLWAVE is part of Emacs 21.1 and later. It is also an XEmacs package | ||
| 3232 | and can be installed from | ||
| 3233 | @uref{ftp://ftp.xemacs.org/pub/xemacs/packages/,the XEmacs ftp site} | ||
| 3234 | with the normal package management system on XEmacs 21. These | ||
| 3235 | pre-installed versions should work out-of-the-box. However, the HTML | ||
| 3236 | files required for online HTML help are not distributed with | ||
| 3237 | XEmacs/Emacs and have to be installed separately@footnote{Due to | ||
| 3238 | copyright reasons, the HTML version of the IDL manual cannot be | ||
| 3239 | distributed under the GPL.} (@pxref{Installing Online Help}). | ||
| 3240 | |||
| 3241 | You can also download IDLWAVE and install it yourself from | ||
| 3242 | @uref{@value{IDLWAVE-HOMEPAGE}, the maintainers webpage}. Follow the | ||
| 3243 | instructions in the INSTALL file. | ||
| 3244 | |||
| 3245 | @node Installing Online Help, , Installing IDLWAVE, Installation | ||
| 3246 | @section Installing Online Help | ||
| 3247 | @cindex Installing online help | ||
| 3248 | @cindex Online Help, Installation | ||
| 3249 | |||
| 3250 | If you want to use the online help display, an additional set of files | ||
| 3251 | (HTML versions of the IDL documentation) must be installed. These | ||
| 3252 | files can also be downloaded from @uref{@value{IDLWAVE-HOMEPAGE}, the | ||
| 3253 | maintainers webpage}. You need to place the files somewhere on your | ||
| 3254 | system and tell IDLWAVE where they are with | ||
| 3255 | |||
| 3256 | @lisp | ||
| 3257 | (setq idlwave-html-help-location "/path/to/help/dir/") ;e.g. /usr/local/etc | ||
| 3258 | @end lisp | ||
| 3259 | |||
| 3260 | Note that the help package only changes with new versions of the IDL | ||
| 3261 | documentation, and need not be updated unless your version of IDL | ||
| 3262 | changes. | ||
| 3263 | |||
| 3264 | @node Acknowledgements, Sources of Routine Info, Installation, Top | ||
| 3265 | @chapter Acknowledgements | 3200 | @chapter Acknowledgements |
| 3266 | @cindex Acknowledgements | 3201 | @cindex Acknowledgements |
| 3267 | @cindex Maintainer, of IDLWAVE | 3202 | @cindex Maintainer, of IDLWAVE |
| @@ -3731,10 +3666,7 @@ IDLWAVE derives its knowledge about system routines from the IDL | |||
| 3731 | manuals. The file @file{idlw-rinfo.el} contains the routine information | 3666 | manuals. The file @file{idlw-rinfo.el} contains the routine information |
| 3732 | for the IDL system routines, and links to relevant sections of the HTML | 3667 | for the IDL system routines, and links to relevant sections of the HTML |
| 3733 | documentation. The Online Help feature of IDLWAVE requires HTML | 3668 | documentation. The Online Help feature of IDLWAVE requires HTML |
| 3734 | versions of the IDL manuals to be available; the HTML documentation is | 3669 | versions of the IDL manuals to be available. |
| 3735 | not distributed with IDLWAVE by default, but must be downloaded | ||
| 3736 | separately from the @uref{@value{IDLWAVE-HOMEPAGE}, the maintainers | ||
| 3737 | webpage}. | ||
| 3738 | 3670 | ||
| 3739 | The HTML files and related images can be produced from the | 3671 | The HTML files and related images can be produced from the |
| 3740 | @file{idl.chm} HTMLHelp file distributed with IDL using the free | 3672 | @file{idl.chm} HTMLHelp file distributed with IDL using the free |
| @@ -3755,22 +3687,19 @@ the online HTML help available with IDLWAVE (starting with version | |||
| 3755 | 5.0). Since IDLWAVE runs on a many different system types, a single | 3687 | 5.0). Since IDLWAVE runs on a many different system types, a single |
| 3756 | browser configuration is not possible, but choices abound. | 3688 | browser configuration is not possible, but choices abound. |
| 3757 | 3689 | ||
| 3758 | On many systems, the default browser configured in | 3690 | Unfortunately, the HTML manuals decompiled from the original |
| 3759 | @code{browse-url-browser-function}, and hence inherited by default by | 3691 | source contain formatting structures which Netscape 4.x does not |
| 3760 | @code{idlwave-help-browser-function}, is Netscape. Unfortunately, the | 3692 | handle well, though they are still readable. A much better choice is |
| 3761 | HTML manuals decompiled from the original RSI source contain | 3693 | Mozilla, or one of the Mozilla-derived browsers such as |
| 3762 | formatting structures which Netscape 4.x does not handle well, though | 3694 | @uref{http://galeon.sourceforge.net/,Galeon} (GNU/Linux), |
| 3763 | they are still readable. A much better choice is Mozilla, or one of | ||
| 3764 | the Mozilla-derived browsers such as | ||
| 3765 | @uref{http://galeon.sourceforge.net/,Galeon} (Linux), | ||
| 3766 | @uref{http://www.mozilla.org/projects/camino/,Camino} (MacOSX), or | 3695 | @uref{http://www.mozilla.org/projects/camino/,Camino} (MacOSX), or |
| 3767 | @uref{http://www.mozilla.org/projects/firebird/,Firebird} (all | 3696 | @uref{http://www.mozilla.org/projects/firebird/,Firebird} (all |
| 3768 | platforms). Newer versions of Emacs provide a browser-function choice | 3697 | platforms). Newer versions of Emacs provide a browser-function choice |
| 3769 | @code{browse-url-gnome-moz} which uses the Gnome-configured browser. | 3698 | @code{browse-url-gnome-moz} which uses the Gnome-configured browser. |
| 3770 | 3699 | ||
| 3771 | Note that the HTML files decompiled from RSI Microsoft Help sources | 3700 | Note that the HTML files decompiled from Microsoft Help sources |
| 3772 | contain specific references to the @samp{Symbol} font, which by default | 3701 | contain specific references to the @samp{Symbol} font, which by default |
| 3773 | is not permitted in normal encodings (it's technically illegal). Though | 3702 | is not permitted in normal encodings (it's invalid, technically). Though |
| 3774 | it only impacts a few symbols, you can trick Mozilla-based browsers into | 3703 | it only impacts a few symbols, you can trick Mozilla-based browsers into |
| 3775 | recognizing @samp{Symbol} by following the directions | 3704 | recognizing @samp{Symbol} by following the directions |
| 3776 | @uref{http://hutchinson.belmont.ma.us/tth/Xfonts.html, here}. With this | 3705 | @uref{http://hutchinson.belmont.ma.us/tth/Xfonts.html, here}. With this |
| @@ -3995,12 +3924,9 @@ IDLWAVE was developed on a UNIX system. However, thanks to the | |||
| 3995 | portability of Emacs, much of IDLWAVE does also work under different | 3924 | portability of Emacs, much of IDLWAVE does also work under different |
| 3996 | operating systems like Windows (with NTEmacs or NTXEmacs) or MacOS. | 3925 | operating systems like Windows (with NTEmacs or NTXEmacs) or MacOS. |
| 3997 | 3926 | ||
| 3998 | The only real problem is that RSI does not provide a command-line | 3927 | The only real problem is that there is no command-line |
| 3999 | version of IDL for Windows or MacOS(<=9) with which IDLWAVE can | 3928 | version of IDL for Windows or MacOS(<=9) with which IDLWAVE can |
| 4000 | interact@footnote{Call your RSI representative and complain --- it | 3929 | interact. As a result, the IDLWAVE Shell |
| 4001 | should be trivial for them to provide one. And if enough people ask for | ||
| 4002 | it, maybe they will. The new MacOSX version of IDL @emph{does} have a | ||
| 4003 | shell and works well with IDLWAVE.}. As a result, the IDLWAVE Shell | ||
| 4004 | does not work and you have to rely on IDLDE to run and debug your | 3930 | does not work and you have to rely on IDLDE to run and debug your |
| 4005 | programs. However, editing IDL source files with Emacs/IDLWAVE works | 3931 | programs. However, editing IDL source files with Emacs/IDLWAVE works |
| 4006 | with all bells and whistles, including routine info, completion and fast | 3932 | with all bells and whistles, including routine info, completion and fast |
| @@ -4018,7 +3944,7 @@ system. I am assuming that IDLWAVE has been installed in | |||
| 4018 | ;; the X/Emacs installation) | 3944 | ;; the X/Emacs installation) |
| 4019 | (setq load-path (cons "c:/program files/IDLWAVE" load-path)) | 3945 | (setq load-path (cons "c:/program files/IDLWAVE" load-path)) |
| 4020 | 3946 | ||
| 4021 | ;; The location of the IDL library files, both from RSI and your own. | 3947 | ;; The location of the IDL library files, both standard and your own. |
| 4022 | ;; note that the initial "+" expands the path recursively | 3948 | ;; note that the initial "+" expands the path recursively |
| 4023 | (setq idlwave-library-path | 3949 | (setq idlwave-library-path |
| 4024 | '("+c:/RSI/IDL55/lib/" "+c:/user/me/idllibs" )) | 3950 | '("+c:/RSI/IDL55/lib/" "+c:/user/me/idllibs" )) |
| @@ -4113,9 +4039,7 @@ in compiled lisp files. Presumably, you kept the original .elc files in | |||
| 4113 | place, and this is the source of the error. If you recompile (or just | 4039 | place, and this is the source of the error. If you recompile (or just |
| 4114 | "make; make install") from source, it should resolve this problem. | 4040 | "make; make install") from source, it should resolve this problem. |
| 4115 | Another option is to recompile the @file{idlw*.el} files by hand using | 4041 | Another option is to recompile the @file{idlw*.el} files by hand using |
| 4116 | @kbd{M-x byte-compile-file}. Why not take the opportunity to grab the | 4042 | @kbd{M-x byte-compile-file}. |
| 4117 | latest IDLWAVE version at @uref{@value{IDLWAVE-HOMEPAGE}, the | ||
| 4118 | maintainers webpage} | ||
| 4119 | 4043 | ||
| 4120 | @item @strong{@kbd{M-@key{TAB}} doesn't complete words, it switches | 4044 | @item @strong{@kbd{M-@key{TAB}} doesn't complete words, it switches |
| 4121 | windows on my desktop.} | 4045 | windows on my desktop.} |
| @@ -4214,7 +4138,7 @@ method, and the most recent information will be available to all users. | |||
| 4214 | @item @strong{All the Greek-font characters in the HTML help are | 4138 | @item @strong{All the Greek-font characters in the HTML help are |
| 4215 | displayed as Latin characters!} | 4139 | displayed as Latin characters!} |
| 4216 | 4140 | ||
| 4217 | Unfortunately, the HTMLHelp files RSI provides attempt to switch to | 4141 | Unfortunately, the HTMLHelp files attempt to switch to |
| 4218 | @samp{Symbol} font to display Greek characters, which is not really an | 4142 | @samp{Symbol} font to display Greek characters, which is not really an |
| 4219 | permitted method for doing this in HTML. There is a "workaround" for | 4143 | permitted method for doing this in HTML. There is a "workaround" for |
| 4220 | many browsers: @xref{HTML Help Browser Tips}. | 4144 | many browsers: @xref{HTML Help Browser Tips}. |
diff --git a/man/message.texi b/man/message.texi index 5e488b0e7cf..8a10ea2445d 100644 --- a/man/message.texi +++ b/man/message.texi | |||
| @@ -8,7 +8,7 @@ | |||
| 8 | @copying | 8 | @copying |
| 9 | This file documents Message, the Emacs message composition mode. | 9 | This file documents Message, the Emacs message composition mode. |
| 10 | 10 | ||
| 11 | Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 | 11 | Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 |
| 12 | Free Software Foundation, Inc. | 12 | Free Software Foundation, Inc. |
| 13 | 13 | ||
| 14 | @quotation | 14 | @quotation |
diff --git a/man/misc.texi b/man/misc.texi index 5ef15d45d87..f1e05cae89c 100644 --- a/man/misc.texi +++ b/man/misc.texi | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | @c This is part of the Emacs manual. | 1 | @c This is part of the Emacs manual. |
| 2 | @c Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 2000, 2001, 2004 | 2 | @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2004 |
| 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 | @iftex | 5 | @iftex |
| @@ -1247,6 +1247,14 @@ kills it if the file name matches the regular expression | |||
| 1247 | If you set the variable @code{server-window} to a window or a frame, | 1247 | If you set the variable @code{server-window} to a window or a frame, |
| 1248 | @kbd{C-x #} displays the server buffer in that window or in that frame. | 1248 | @kbd{C-x #} displays the server buffer in that window or in that frame. |
| 1249 | 1249 | ||
| 1250 | @vindex server-name | ||
| 1251 | You can run multiple Emacs servers on the same machine by giving | ||
| 1252 | each one a unique ``server name'', using the variable | ||
| 1253 | @code{server-name}. For example, @kbd{M-x set-variable @key{RET} | ||
| 1254 | server-name @key{RET} foo @key{RET}} sets the server name to | ||
| 1255 | @samp{foo}. The @code{emacsclient} program can visit a server by name | ||
| 1256 | using the @samp{-s} option. @xref{Invoking emacsclient}. | ||
| 1257 | |||
| 1250 | While @code{mail} or another application is waiting for | 1258 | While @code{mail} or another application is waiting for |
| 1251 | @code{emacsclient} to finish, @code{emacsclient} does not read terminal | 1259 | @code{emacsclient} to finish, @code{emacsclient} does not read terminal |
| 1252 | input. So the terminal that @code{mail} was using is effectively | 1260 | input. So the terminal that @code{mail} was using is effectively |
| @@ -1329,6 +1337,9 @@ open the given files with the option @samp{--display=@var{DISPLAY}}. | |||
| 1329 | This can be used typically when connecting from home to an Emacs | 1337 | This can be used typically when connecting from home to an Emacs |
| 1330 | server running on your machine at your workplace. | 1338 | server running on your machine at your workplace. |
| 1331 | 1339 | ||
| 1340 | If there is more than one Emacs server running, you can specify a | ||
| 1341 | server name with the option @samp{-s @var{name}}. | ||
| 1342 | |||
| 1332 | You can also use @code{emacsclient} to execute any piece of Emacs Lisp | 1343 | You can also use @code{emacsclient} to execute any piece of Emacs Lisp |
| 1333 | code, using the option @samp{--eval}. When this option is given, the | 1344 | code, using the option @samp{--eval}. When this option is given, the |
| 1334 | rest of the arguments is not taken as a list of files to visit but as | 1345 | rest of the arguments is not taken as a list of files to visit but as |
| @@ -1341,7 +1352,7 @@ a list of expressions to evaluate. | |||
| 1341 | The Emacs commands for making hardcopy let you print either an entire | 1352 | The Emacs commands for making hardcopy let you print either an entire |
| 1342 | buffer or just part of one, either with or without page headers. | 1353 | buffer or just part of one, either with or without page headers. |
| 1343 | See also the hardcopy commands of Dired (@pxref{Misc File Ops}) | 1354 | See also the hardcopy commands of Dired (@pxref{Misc File Ops}) |
| 1344 | and the diary (@pxref{Diary Commands}). | 1355 | and the diary (@pxref{Displaying the Diary}). |
| 1345 | 1356 | ||
| 1346 | @table @kbd | 1357 | @table @kbd |
| 1347 | @item M-x print-buffer | 1358 | @item M-x print-buffer |
diff --git a/man/mule.texi b/man/mule.texi index be71bd64402..c085839cbd8 100644 --- a/man/mule.texi +++ b/man/mule.texi | |||
| @@ -428,6 +428,9 @@ is the command @kbd{C-\} (@code{toggle-input-method}) used twice. | |||
| 428 | because it stops waiting for more characters to combine, and starts | 428 | because it stops waiting for more characters to combine, and starts |
| 429 | searching for what you have already entered. | 429 | searching for what you have already entered. |
| 430 | 430 | ||
| 431 | To find out how to input the character after point using the current | ||
| 432 | input method, type @kbd{C-u C-x =}. @xref{Position Info}. | ||
| 433 | |||
| 431 | @vindex input-method-verbose-flag | 434 | @vindex input-method-verbose-flag |
| 432 | @vindex input-method-highlight-flag | 435 | @vindex input-method-highlight-flag |
| 433 | The variables @code{input-method-highlight-flag} and | 436 | The variables @code{input-method-highlight-flag} and |
| @@ -928,6 +931,9 @@ files. | |||
| 928 | @item C-x @key{RET} X @var{coding} @key{RET} | 931 | @item C-x @key{RET} X @var{coding} @key{RET} |
| 929 | Use coding system @var{coding} for transferring @emph{one} | 932 | Use coding system @var{coding} for transferring @emph{one} |
| 930 | selection---the next one---to or from the window system. | 933 | selection---the next one---to or from the window system. |
| 934 | |||
| 935 | @item M-x recode-region | ||
| 936 | Convert the region from a previous coding system to a new one. | ||
| 931 | @end table | 937 | @end table |
| 932 | 938 | ||
| 933 | @kindex C-x RET f | 939 | @kindex C-x RET f |
| @@ -1056,6 +1062,12 @@ corresponding buffer. | |||
| 1056 | The default for translation of process input and output depends on the | 1062 | The default for translation of process input and output depends on the |
| 1057 | current language environment. | 1063 | current language environment. |
| 1058 | 1064 | ||
| 1065 | @findex recode-region | ||
| 1066 | If a piece of text has already been inserted into a buffer using the | ||
| 1067 | wrong coding system, you can decode it again using @kbd{M-x | ||
| 1068 | recode-region}. This prompts you for the old coding system and the | ||
| 1069 | desired coding system, and acts on the text in the region. | ||
| 1070 | |||
| 1059 | @vindex file-name-coding-system | 1071 | @vindex file-name-coding-system |
| 1060 | @cindex file names with non-@acronym{ASCII} characters | 1072 | @cindex file names with non-@acronym{ASCII} characters |
| 1061 | @findex set-file-name-coding-system | 1073 | @findex set-file-name-coding-system |
| @@ -1084,6 +1096,12 @@ these buffers under the visited file name, saving may use the wrong file | |||
| 1084 | name, or it may get an error. If such a problem happens, use @kbd{C-x | 1096 | name, or it may get an error. If such a problem happens, use @kbd{C-x |
| 1085 | C-w} to specify a new file name for that buffer. | 1097 | C-w} to specify a new file name for that buffer. |
| 1086 | 1098 | ||
| 1099 | @findex recode-file-name | ||
| 1100 | If a mistake occurs when encoding a file name, use the command | ||
| 1101 | command @kbd{M-x recode-file-name} to change the file name's coding | ||
| 1102 | system. This prompts for an existing file name, its old coding | ||
| 1103 | system, and the coding system to which you wish to convert. | ||
| 1104 | |||
| 1087 | @vindex locale-coding-system | 1105 | @vindex locale-coding-system |
| 1088 | @cindex decoding non-@acronym{ASCII} keyboard input on X | 1106 | @cindex decoding non-@acronym{ASCII} keyboard input on X |
| 1089 | The variable @code{locale-coding-system} specifies a coding system | 1107 | The variable @code{locale-coding-system} specifies a coding system |
| @@ -1333,62 +1351,52 @@ inclusive) are displayed as octal escapes. You can change this for | |||
| 1333 | non-standard ``extended'' versions of ISO-8859 character sets by using the | 1351 | non-standard ``extended'' versions of ISO-8859 character sets by using the |
| 1334 | function @code{standard-display-8bit} in the @code{disp-table} library. | 1352 | function @code{standard-display-8bit} in the @code{disp-table} library. |
| 1335 | 1353 | ||
| 1336 | There are several ways you can input single-byte non-@acronym{ASCII} | 1354 | There are two ways to input single-byte non-@acronym{ASCII} |
| 1337 | characters: | 1355 | characters: |
| 1338 | 1356 | ||
| 1339 | @itemize @bullet | 1357 | @itemize @bullet |
| 1340 | @cindex 8-bit input | 1358 | @cindex 8-bit input |
| 1341 | @item | 1359 | @item |
| 1360 | You can use an input method for the selected language environment. | ||
| 1361 | @xref{Input Methods}. When you use an input method in a unibyte buffer, | ||
| 1362 | the non-@acronym{ASCII} character you specify with it is converted to unibyte. | ||
| 1363 | |||
| 1364 | @item | ||
| 1342 | If your keyboard can generate character codes 128 (decimal) and up, | 1365 | If your keyboard can generate character codes 128 (decimal) and up, |
| 1343 | representing non-@acronym{ASCII} characters, you can type those character codes | 1366 | representing non-@acronym{ASCII} characters, you can type those character codes |
| 1344 | directly. | 1367 | directly. |
| 1345 | 1368 | ||
| 1346 | On a windowing terminal, you should not need to do anything special to | 1369 | On a window system, you should not need to do anything special to use |
| 1347 | use these keys; they should simply work. On a text-only terminal, you | 1370 | these keys; they should simply work. On a text-only terminal, you |
| 1348 | should use the command @code{M-x set-keyboard-coding-system} or the | 1371 | should use the command @code{M-x set-keyboard-coding-system} or the |
| 1349 | variable @code{keyboard-coding-system} to specify which coding | 1372 | variable @code{keyboard-coding-system} to specify which coding system |
| 1350 | system your keyboard uses (@pxref{Specify Coding}). Enabling this | 1373 | your keyboard uses (@pxref{Specify Coding}). Enabling this feature |
| 1351 | feature will probably require you to use @kbd{ESC} to type Meta | 1374 | will probably require you to use @kbd{ESC} to type Meta characters; |
| 1352 | characters; however, on a console terminal or in @code{xterm}, you can | 1375 | however, on a console terminal or in @code{xterm}, you can arrange for |
| 1353 | arrange for Meta to be converted to @kbd{ESC} and still be able type | 1376 | Meta to be converted to @kbd{ESC} and still be able type 8-bit |
| 1354 | 8-bit characters present directly on the keyboard or using | 1377 | characters present directly on the keyboard or using @kbd{Compose} or |
| 1355 | @kbd{Compose} or @kbd{AltGr} keys. @xref{User Input}. | 1378 | @kbd{AltGr} keys. @xref{User Input}. |
| 1356 | |||
| 1357 | @item | ||
| 1358 | You can use an input method for the selected language environment. | ||
| 1359 | @xref{Input Methods}. When you use an input method in a unibyte buffer, | ||
| 1360 | the non-@acronym{ASCII} character you specify with it is converted to unibyte. | ||
| 1361 | 1379 | ||
| 1362 | @kindex C-x 8 | 1380 | @kindex C-x 8 |
| 1363 | @cindex @code{iso-transl} library | 1381 | @cindex @code{iso-transl} library |
| 1364 | @cindex compose character | 1382 | @cindex compose character |
| 1365 | @cindex dead character | 1383 | @cindex dead character |
| 1366 | @item | 1384 | @item |
| 1367 | For Latin-1 only, you can use the | 1385 | For Latin-1 only, you can use the key @kbd{C-x 8} as a ``compose |
| 1368 | key @kbd{C-x 8} as a ``compose character'' prefix for entry of | 1386 | character'' prefix for entry of non-@acronym{ASCII} Latin-1 printing |
| 1369 | non-@acronym{ASCII} Latin-1 printing characters. @kbd{C-x 8} is good for | 1387 | characters. @kbd{C-x 8} is good for insertion (in the minibuffer as |
| 1370 | insertion (in the minibuffer as well as other buffers), for searching, | 1388 | well as other buffers), for searching, and in any other context where |
| 1371 | and in any other context where a key sequence is allowed. | 1389 | a key sequence is allowed. |
| 1372 | 1390 | ||
| 1373 | @kbd{C-x 8} works by loading the @code{iso-transl} library. Once that | 1391 | @kbd{C-x 8} works by loading the @code{iso-transl} library. Once that |
| 1374 | library is loaded, the @key{ALT} modifier key, if you have one, serves | 1392 | library is loaded, the @key{ALT} modifier key, if the keyboard has |
| 1375 | the same purpose as @kbd{C-x 8}; use @key{ALT} together with an accent | 1393 | one, serves the same purpose as @kbd{C-x 8}: use @key{ALT} together |
| 1376 | character to modify the following letter. In addition, if you have keys | 1394 | with an accent character to modify the following letter. In addition, |
| 1377 | for the Latin-1 ``dead accent characters,'' they too are defined to | 1395 | if the keyboard has keys for the Latin-1 ``dead accent characters,'' |
| 1378 | compose with the following character, once @code{iso-transl} is loaded. | 1396 | they too are defined to compose with the following character, once |
| 1379 | Use @kbd{C-x 8 C-h} to list the available translations as mnemonic | 1397 | @code{iso-transl} is loaded. |
| 1380 | command names. | 1398 | |
| 1381 | 1399 | Use @kbd{C-x 8 C-h} to list all the available @kbd{C-x 8} translations. | |
| 1382 | @item | ||
| 1383 | @cindex @code{iso-acc} library | ||
| 1384 | @cindex ISO Accents mode | ||
| 1385 | @findex iso-accents-mode | ||
| 1386 | @cindex Latin-1, Latin-2 and Latin-3 input mode | ||
| 1387 | For Latin-1, Latin-2 and Latin-3, @kbd{M-x iso-accents-mode} enables | ||
| 1388 | a minor mode that works much like the @code{latin-1-prefix} input | ||
| 1389 | method, but does not depend on having the input methods installed. This | ||
| 1390 | mode is buffer-local. It can be customized for various languages with | ||
| 1391 | @kbd{M-x iso-accents-customize}. | ||
| 1392 | @end itemize | 1400 | @end itemize |
| 1393 | 1401 | ||
| 1394 | @node Charsets | 1402 | @node Charsets |
diff --git a/man/org.texi b/man/org.texi index d461e9c1020..d1a388f958a 100644 --- a/man/org.texi +++ b/man/org.texi | |||
| @@ -3,8 +3,8 @@ | |||
| 3 | @setfilename ../info/org | 3 | @setfilename ../info/org |
| 4 | @settitle Org Mode Manual | 4 | @settitle Org Mode Manual |
| 5 | 5 | ||
| 6 | @set VERSION 3.04 | 6 | @set VERSION 3.05 |
| 7 | @set DATE December 2004 | 7 | @set DATE April 2005 |
| 8 | 8 | ||
| 9 | @dircategory Emacs | 9 | @dircategory Emacs |
| 10 | @direntry | 10 | @direntry |
| @@ -34,7 +34,7 @@ | |||
| 34 | @copying | 34 | @copying |
| 35 | This manual is for Org-mode (version @value{VERSION}). | 35 | This manual is for Org-mode (version @value{VERSION}). |
| 36 | 36 | ||
| 37 | Copyright @copyright{} 2004 Free Software Foundation | 37 | Copyright @copyright{} 2004, 2005 Free Software Foundation |
| 38 | 38 | ||
| 39 | @quotation | 39 | @quotation |
| 40 | Permission is granted to copy, distribute and/or modify this document | 40 | Permission is granted to copy, distribute and/or modify this document |
| @@ -184,7 +184,8 @@ top of outline-mode, which makes it possible to keep the content of | |||
| 184 | large files well structured. Visibility cycling and structure editing | 184 | large files well structured. Visibility cycling and structure editing |
| 185 | help to work with the tree. Tables are easily created with a built-in | 185 | help to work with the tree. Tables are easily created with a built-in |
| 186 | table editor. Org-mode supports ToDo items, deadlines, time stamps, | 186 | table editor. Org-mode supports ToDo items, deadlines, time stamps, |
| 187 | and scheduling. It dynamically compiles entries into an agenda. | 187 | and scheduling. It dynamically compiles entries into an agenda that |
| 188 | utilizes and smoothly integrates much of the Emacs calendar and diary. | ||
| 188 | Plain text URL-like links connect to websites, emails, usenet | 189 | Plain text URL-like links connect to websites, emails, usenet |
| 189 | messages, BBDB entries, and any files related to the projects. For | 190 | messages, BBDB entries, and any files related to the projects. For |
| 190 | printing and sharing of notes, an Org-mode file can be exported as a | 191 | printing and sharing of notes, an Org-mode file can be exported as a |
| @@ -203,15 +204,14 @@ different levels and in different ways, for example | |||
| 203 | @r{@bullet{} as a full agenda and planner with deadlines and work scheduling} | 204 | @r{@bullet{} as a full agenda and planner with deadlines and work scheduling} |
| 204 | @end example | 205 | @end example |
| 205 | 206 | ||
| 206 | The Org-mode table editor can be used integrated into any major mode | 207 | The Org-mode table editor can be integrated into any major mode by |
| 207 | by activating the minor Ortbl-mode. | 208 | activating the minor Orgtbl-mode. |
| 208 | 209 | ||
| 209 | There is a website for Org-mode which provides links to the newest | 210 | There is a website for Org-mode which provides links to the newest |
| 210 | version of Org-mode, as well as additional information, screen shots | 211 | version of Org-mode, as well as additional information, screen shots |
| 211 | and example files. This page is located at | 212 | and example files. This page is located at |
| 212 | @uref{http://www.astro.uva.nl/~dominik/Tools/org/}. | 213 | @uref{http://www.astro.uva.nl/~dominik/Tools/org/}. |
| 213 | 214 | ||
| 214 | |||
| 215 | @page | 215 | @page |
| 216 | 216 | ||
| 217 | @node Installation, , Summary, Introduction | 217 | @node Installation, , Summary, Introduction |
| @@ -352,6 +352,18 @@ Note that inside tables, @kbd{S-@key{TAB}} jumps to the previous field. | |||
| 352 | Show all. | 352 | Show all. |
| 353 | @end table | 353 | @end table |
| 354 | 354 | ||
| 355 | When Emacs firsts visits a Org-mode file, the global state is set to | ||
| 356 | OVERVIEW, i.e. only the top level headlines are visible. This can be | ||
| 357 | configured through the variable @code{org-startup-folded}, or on a | ||
| 358 | per-file basis by adding one of the following lines anywhere in the | ||
| 359 | buffer: | ||
| 360 | |||
| 361 | @example | ||
| 362 | #+STARTUP: fold | ||
| 363 | #+STARTUP: nofold | ||
| 364 | @end example | ||
| 365 | |||
| 366 | |||
| 355 | @node Motion, Structure editing, Visibility cycling, Document Structure | 367 | @node Motion, Structure editing, Visibility cycling, Document Structure |
| 356 | @section Motion | 368 | @section Motion |
| 357 | @cindex motion, between headlines | 369 | @cindex motion, between headlines |
| @@ -473,6 +485,17 @@ the match. | |||
| 473 | Other commands are using this feature as well. For example @kbd{C-c | 485 | Other commands are using this feature as well. For example @kbd{C-c |
| 474 | C-v} creates a sparse TODO tree (@pxref{TODO basics}). | 486 | C-v} creates a sparse TODO tree (@pxref{TODO basics}). |
| 475 | 487 | ||
| 488 | @kindex C-c C-x v | ||
| 489 | @cindex printing sparse trees | ||
| 490 | @cindex visible text, printing | ||
| 491 | To print a sparse tree, you can use the Emacs command | ||
| 492 | @code{ps-print-buffer-with-faces} which does not print invisible parts | ||
| 493 | of the document @footnote{this does not work under XEmacs, because | ||
| 494 | XEmacs uses selective display for outlining, not text properties}. | ||
| 495 | Or you can use the command @kbd{C-c C-x v} to copy the visible part of | ||
| 496 | the document to another file (extension @file{.txt}) which then can be | ||
| 497 | printed in any desired way. | ||
| 498 | |||
| 476 | @node TODO items, Tables, Document Structure, Top | 499 | @node TODO items, Tables, Document Structure, Top |
| 477 | @chapter TODO items | 500 | @chapter TODO items |
| 478 | @cindex TODO items | 501 | @cindex TODO items |
| @@ -611,7 +634,7 @@ persons. | |||
| 611 | @end lisp | 634 | @end lisp |
| 612 | 635 | ||
| 613 | In this case, different keywords do not indicate a sequence, but | 636 | In this case, different keywords do not indicate a sequence, but |
| 614 | rather different levels. This changes the behavior of the command | 637 | rather different types. This changes the behavior of the command |
| 615 | @kbd{C-c C-t} slightly. When used several times in succession, it | 638 | @kbd{C-c C-t} slightly. When used several times in succession, it |
| 616 | will still cycle through all names. But when when you return to the | 639 | will still cycle through all names. But when when you return to the |
| 617 | item after some time and execute @kbd{C-c C-t} again, it will switch | 640 | item after some time and execute @kbd{C-c C-t} again, it will switch |
| @@ -745,11 +768,6 @@ Re-align the table and move down to next row. Creates a new row if | |||
| 745 | necessary. At the beginning or end of a line, @key{RET} still does | 768 | necessary. At the beginning or end of a line, @key{RET} still does |
| 746 | NEWLINE, so it can be used to split a table. | 769 | NEWLINE, so it can be used to split a table. |
| 747 | 770 | ||
| 748 | @kindex S-@key{RET} | ||
| 749 | @item S-@key{RET} | ||
| 750 | Copy from first non-empty | ||
| 751 | field above current field. | ||
| 752 | |||
| 753 | @tsubheading{Column and row editing} | 771 | @tsubheading{Column and row editing} |
| 754 | @kindex M-@key{left} | 772 | @kindex M-@key{left} |
| 755 | @kindex M-@key{right} | 773 | @kindex M-@key{right} |
| @@ -796,7 +814,7 @@ Copy an rectangular region from a table to a special clipboard, and | |||
| 796 | blank all fields in the rectangle. | 814 | blank all fields in the rectangle. |
| 797 | @kindex C-c C-h C-y | 815 | @kindex C-c C-h C-y |
| 798 | @item C-c C-h C-y | 816 | @item C-c C-h C-y |
| 799 | Paste a rectangluar region into a table. | 817 | Paste a rectangular region into a table. |
| 800 | The upper right corner ends up in the current field. All involved fields | 818 | The upper right corner ends up in the current field. All involved fields |
| 801 | will be overwritten. If the rectangle does not fit into the present table, | 819 | will be overwritten. If the rectangle does not fit into the present table, |
| 802 | the table is enlarged as needed. The process ignores horizontal separator | 820 | the table is enlarged as needed. The process ignores horizontal separator |
| @@ -828,6 +846,14 @@ Sum the numbers in the current column, or in the rectangle defined by | |||
| 828 | the active region. The result is displayed in the echo area and can | 846 | the active region. The result is displayed in the echo area and can |
| 829 | be inserted with @kbd{C-y}. | 847 | be inserted with @kbd{C-y}. |
| 830 | 848 | ||
| 849 | @kindex S-@key{RET} | ||
| 850 | @item S-@key{RET} | ||
| 851 | When current field is empty, copy from first non-empty field above. | ||
| 852 | When not empty, copy current field down to next row and move cursor | ||
| 853 | along with it. Depending on the variable | ||
| 854 | @code{org-table-copy-increment}, integer field values will be | ||
| 855 | incremented during copy. | ||
| 856 | |||
| 831 | @cindex formula, in tables | 857 | @cindex formula, in tables |
| 832 | @cindex calculations, in tables | 858 | @cindex calculations, in tables |
| 833 | @kindex C-c = | 859 | @kindex C-c = |
| @@ -1063,7 +1089,7 @@ text has a headline, i.e. a first line that starts with a @samp{*}. | |||
| 1063 | If not, a headline is constructed from the current date and some | 1089 | If not, a headline is constructed from the current date and some |
| 1064 | additional data. If the variable @code{org-adapt-indentation} is | 1090 | additional data. If the variable @code{org-adapt-indentation} is |
| 1065 | non-nil, the entire text is also indented so that it starts in the | 1091 | non-nil, the entire text is also indented so that it starts in the |
| 1066 | same column as the headline (after the asterixes). | 1092 | same column as the headline (after the asterisks). |
| 1067 | 1093 | ||
| 1068 | @node Timestamps, Timeline and Agenda, Hyperlinks, Top | 1094 | @node Timestamps, Timeline and Agenda, Hyperlinks, Top |
| 1069 | @chapter Timestamps | 1095 | @chapter Timestamps |
| @@ -1404,11 +1430,12 @@ Sorting can be customized using the variable | |||
| 1404 | @node Agenda commands, Calendar/Diary integration, Agenda (multiple files), Timeline and Agenda | 1430 | @node Agenda commands, Calendar/Diary integration, Agenda (multiple files), Timeline and Agenda |
| 1405 | @section Commands in the agenda buffer | 1431 | @section Commands in the agenda buffer |
| 1406 | 1432 | ||
| 1407 | Entries in the agenda buffer are linked back to the org file. You are | 1433 | Entries in the agenda buffer are linked back to the org file or diary |
| 1408 | not allowed to edit the agenda buffer itself, but commands are provided | 1434 | file where they originate. You are not allowed to edit the agenda |
| 1409 | to edit the org-files ``remotely'' from the agenda buffer. In this | 1435 | buffer itself, but commands are provided to show and jump to the |
| 1410 | way, all information is stored only once, and you don't risk that your | 1436 | original entry location, and to edit the org-files ``remotely'' from |
| 1411 | agenda and note files diverge. | 1437 | the agenda buffer. In this way, all information is stored only once, |
| 1438 | and you don't risk that your agenda and note files diverge. | ||
| 1412 | 1439 | ||
| 1413 | Some commands can be executed with mouse clicks on agenda lines. For | 1440 | Some commands can be executed with mouse clicks on agenda lines. For |
| 1414 | the other commands, the cursor needs to be in the desired line. Most | 1441 | the other commands, the cursor needs to be in the desired line. Most |
| @@ -1468,7 +1495,7 @@ S-@key{right}. | |||
| 1468 | Display the following @code{org-agenda-ndays} days. For example, if | 1495 | Display the following @code{org-agenda-ndays} days. For example, if |
| 1469 | the display covers a week, switch to the following week. With prefix | 1496 | the display covers a week, switch to the following week. With prefix |
| 1470 | arg, go forward that many times @code{org-agenda-ndays} days. Not | 1497 | arg, go forward that many times @code{org-agenda-ndays} days. Not |
| 1471 | available in timlines. | 1498 | available in timelines. |
| 1472 | 1499 | ||
| 1473 | @kindex @key{left} | 1500 | @kindex @key{left} |
| 1474 | @item @key{left} | 1501 | @item @key{left} |
| @@ -1536,6 +1563,29 @@ Insert a new entry into the diary. Prompts for the type of entry | |||
| 1536 | entry in the diary, just like @kbd{i d} etc. would do in the calendar. | 1563 | entry in the diary, just like @kbd{i d} etc. would do in the calendar. |
| 1537 | The date is taken from the cursor position. | 1564 | The date is taken from the cursor position. |
| 1538 | 1565 | ||
| 1566 | @tsubheading{Calendar commands} | ||
| 1567 | @kindex c | ||
| 1568 | @item c | ||
| 1569 | Open the Emacs calendar and move to the date at the agenda cursor. | ||
| 1570 | |||
| 1571 | @kindex C | ||
| 1572 | @item C | ||
| 1573 | Convert the date at cursor into many other cultural and historic | ||
| 1574 | calendars. | ||
| 1575 | |||
| 1576 | @kindex M | ||
| 1577 | @item M | ||
| 1578 | Show the phases of the moon for three month around current date. | ||
| 1579 | |||
| 1580 | @kindex S | ||
| 1581 | @item S | ||
| 1582 | Show sunrise and sunset times. The location must be set with calendar | ||
| 1583 | variables, see documentation of the Emacs calendar. | ||
| 1584 | |||
| 1585 | @kindex H | ||
| 1586 | @item H | ||
| 1587 | Show holidays for three month around the cursor date. | ||
| 1588 | |||
| 1539 | @tsubheading{Quit and Exit} | 1589 | @tsubheading{Quit and Exit} |
| 1540 | @kindex q | 1590 | @kindex q |
| 1541 | @item q | 1591 | @item q |
| @@ -1564,8 +1614,9 @@ Org-mode. It can be very useful to combine output from Org-mode with | |||
| 1564 | the diary. | 1614 | the diary. |
| 1565 | 1615 | ||
| 1566 | The interaction between Org-mode and diary works both ways: You can | 1616 | The interaction between Org-mode and diary works both ways: You can |
| 1567 | list entries from the diary in the Org-mode agenda, or you can display | 1617 | list entries from the diary in the Org-mode agenda, from which many |
| 1568 | entries from the org agenda in the Emacs diary. | 1618 | calendar and diary commands are directly accessible. Or you can |
| 1619 | display entries from the org agenda in the Emacs diary. | ||
| 1569 | 1620 | ||
| 1570 | @menu | 1621 | @menu |
| 1571 | * Diary to agenda:: Agenda incorporates the diary | 1622 | * Diary to agenda:: Agenda incorporates the diary |
| @@ -1584,7 +1635,15 @@ agenda, you only need to customize the variable | |||
| 1584 | @end lisp | 1635 | @end lisp |
| 1585 | @noindent | 1636 | @noindent |
| 1586 | 1637 | ||
| 1587 | @noindent After that, everything will happen automatically. | 1638 | @noindent After that, everything will happen automatically. All diary |
| 1639 | entries including holidays, anniversaries etc will be included in the | ||
| 1640 | agenda buffer created by Org-mode. @key{SPC}, @key{TAB}, and | ||
| 1641 | @key{RET} can be used from the agenda buffer to jump to the diary | ||
| 1642 | file, in order to edit existing diary entries. Also the @kbd{i} | ||
| 1643 | command to insert new entries for the current date works in the agenda | ||
| 1644 | buffer, as well as the commands @kbd{S}, @kbd{M}, and @kbd{C} to | ||
| 1645 | display Sunrise/Sunset times, show lunar phases and to convert to | ||
| 1646 | other calendars, respectively. | ||
| 1588 | 1647 | ||
| 1589 | @node Agenda to diary, , Diary to agenda, Calendar/Diary integration | 1648 | @node Agenda to diary, , Diary to agenda, Calendar/Diary integration |
| 1590 | @subsection Including the agenda into the diary | 1649 | @subsection Including the agenda into the diary |
diff --git a/man/programs.texi b/man/programs.texi index 353cb85aa60..98e60d0385c 100644 --- a/man/programs.texi +++ b/man/programs.texi | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | @c This is part of the Emacs manual. | 1 | @c This is part of the Emacs manual. |
| 2 | @c Copyright (C) 1985,86,87,93,94,95,97,99,00,2001 Free Software Foundation, Inc. | 2 | @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000, |
| 3 | @c 2001, 2005 Free Software Foundation, Inc. | ||
| 3 | @c See file emacs.texi for copying conditions. | 4 | @c See file emacs.texi for copying conditions. |
| 4 | @node Programs, Building, Text, Top | 5 | @node Programs, Building, Text, Top |
| 5 | @chapter Editing Programs | 6 | @chapter Editing Programs |
| @@ -80,17 +81,19 @@ and you can select it by typing @kbd{M-x @var{l}-mode @key{RET}}. | |||
| 80 | @cindex Shell-script mode | 81 | @cindex Shell-script mode |
| 81 | @cindex Delphi mode | 82 | @cindex Delphi mode |
| 82 | @cindex PostScript mode | 83 | @cindex PostScript mode |
| 84 | @cindex Conf mode | ||
| 85 | @cindex DNS mode | ||
| 83 | The existing programming language major modes include Lisp, Scheme (a | 86 | The existing programming language major modes include Lisp, Scheme (a |
| 84 | variant of Lisp) and the Scheme-based DSSSL expression language, Ada, | 87 | variant of Lisp) and the Scheme-based DSSSL expression language, Ada, |
| 85 | ASM, AWK, C, C++, Delphi (Object Pascal), Fortran (free format and fixed | 88 | ASM, AWK, C, C++, Delphi (Object Pascal), Fortran (free format and fixed |
| 86 | format), Icon, IDL (CORBA), IDLWAVE, Java, Metafont (@TeX{}'s | 89 | format), Icon, IDL (CORBA), IDLWAVE, Java, Metafont (@TeX{}'s |
| 87 | companion for font creation), Modula2, Objective-C, Octave, Pascal, | 90 | companion for font creation), Modula2, Objective-C, Octave, Pascal, |
| 88 | Perl, Pike, PostScript, Prolog, Python, Simula, Tcl, and VHDL. There is | 91 | Perl, Pike, PostScript, Prolog, Python, Simula, Tcl, and VHDL. An |
| 89 | also a major mode for makefiles, called Makefile mode. An alternative | 92 | alternative mode for Perl is called CPerl mode. Modes are available for |
| 90 | mode for Perl is called CPerl mode. Modes are available for the | 93 | the scripting languages of the common GNU and Unix shells, VMS DCL, and |
| 91 | scripting languages of the common GNU and Unix shells, VMS DCL, and | ||
| 92 | MS-DOS/MS-Windows @samp{BAT} files. There are also major modes for | 94 | MS-DOS/MS-Windows @samp{BAT} files. There are also major modes for |
| 93 | editing various sorts of configuration files. | 95 | editing makefiles, DNS master files, and various sorts of configuration |
| 96 | files. | ||
| 94 | 97 | ||
| 95 | @kindex DEL @r{(programming modes)} | 98 | @kindex DEL @r{(programming modes)} |
| 96 | @findex c-electric-backspace | 99 | @findex c-electric-backspace |
| @@ -1801,11 +1804,11 @@ names. | |||
| 1801 | @cindex Fortran mode | 1804 | @cindex Fortran mode |
| 1802 | @cindex mode, Fortran | 1805 | @cindex mode, Fortran |
| 1803 | 1806 | ||
| 1804 | Fortran mode provides special motion commands for Fortran statements and | 1807 | Fortran mode provides special motion commands for Fortran statements |
| 1805 | subprograms, and indentation commands that understand Fortran conventions | 1808 | and subprograms, and indentation commands that understand Fortran |
| 1806 | of nesting, line numbers and continuation statements. Fortran mode has | 1809 | conventions of nesting, line numbers and continuation statements. |
| 1807 | its own Auto Fill mode that breaks long lines into proper Fortran | 1810 | Fortran mode has support for Auto Fill mode that breaks long lines into |
| 1808 | continuation lines. | 1811 | proper Fortran continuation lines. |
| 1809 | 1812 | ||
| 1810 | Special commands for comments are provided because Fortran comments | 1813 | Special commands for comments are provided because Fortran comments |
| 1811 | are unlike those of other languages. Built-in abbrevs optionally save | 1814 | are unlike those of other languages. Built-in abbrevs optionally save |
| @@ -1817,18 +1820,18 @@ runs the hook @code{fortran-mode-hook} (@pxref{Hooks}). | |||
| 1817 | @cindex Fortran77 and Fortran90 | 1820 | @cindex Fortran77 and Fortran90 |
| 1818 | @findex f90-mode | 1821 | @findex f90-mode |
| 1819 | @findex fortran-mode | 1822 | @findex fortran-mode |
| 1820 | Fortran mode is meant for editing Fortran77 ``fixed format'' source | 1823 | Fortran mode is meant for editing Fortran77 ``fixed format'' (and also |
| 1821 | code. For editing the modern Fortran90 ``free format'' source code, | 1824 | ``tab format'') source code. For editing the modern Fortran90 or |
| 1822 | use F90 mode (@code{f90-mode}). Emacs normally uses Fortran mode for | 1825 | Fortran95 ``free format'' source code, use F90 mode (@code{f90-mode}). |
| 1823 | files with extension @samp{.f}, @samp{.F} or @samp{.for}, and F90 mode | 1826 | Emacs normally uses Fortran mode for files with extension @samp{.f}, |
| 1824 | for the extension @samp{.f90}. GNU Fortran supports both kinds of | 1827 | @samp{.F} or @samp{.for}, and F90 mode for the extension @samp{.f90} and |
| 1825 | format. | 1828 | @samp{.f95}. GNU Fortran supports both kinds of format. |
| 1826 | 1829 | ||
| 1827 | @menu | 1830 | @menu |
| 1828 | * Motion: Fortran Motion. Moving point by statements or subprograms. | 1831 | * Motion: Fortran Motion. Moving point by statements or subprograms. |
| 1829 | * Indent: Fortran Indent. Indentation commands for Fortran. | 1832 | * Indent: Fortran Indent. Indentation commands for Fortran. |
| 1830 | * Comments: Fortran Comments. Inserting and aligning comments. | 1833 | * Comments: Fortran Comments. Inserting and aligning comments. |
| 1831 | * Autofill: Fortran Autofill. Auto fill minor mode for Fortran. | 1834 | * Autofill: Fortran Autofill. Auto fill support for Fortran. |
| 1832 | * Columns: Fortran Columns. Measuring columns for valid Fortran. | 1835 | * Columns: Fortran Columns. Measuring columns for valid Fortran. |
| 1833 | * Abbrev: Fortran Abbrev. Built-in abbrevs for Fortran keywords. | 1836 | * Abbrev: Fortran Abbrev. Built-in abbrevs for Fortran keywords. |
| 1834 | @end menu | 1837 | @end menu |
| @@ -1837,8 +1840,9 @@ format. | |||
| 1837 | @subsection Motion Commands | 1840 | @subsection Motion Commands |
| 1838 | 1841 | ||
| 1839 | In addition to the normal commands for moving by and operating on | 1842 | In addition to the normal commands for moving by and operating on |
| 1840 | ``defuns'' (Fortran subprograms---functions and subroutines), Fortran | 1843 | ``defuns'' (Fortran subprograms---functions and subroutines, as well as |
| 1841 | mode provides special commands to move by statements. | 1844 | modules for F90 mode), Fortran mode provides special commands to move by |
| 1845 | statements and other program units. | ||
| 1842 | 1846 | ||
| 1843 | @table @kbd | 1847 | @table @kbd |
| 1844 | @kindex C-c C-n @r{(Fortran mode)} | 1848 | @kindex C-c C-n @r{(Fortran mode)} |
| @@ -1873,21 +1877,24 @@ Move point backward to the previous code block | |||
| 1873 | (@code{f90-previous-block}). This is like @code{f90-next-block}, but | 1877 | (@code{f90-previous-block}). This is like @code{f90-next-block}, but |
| 1874 | moves backwards. | 1878 | moves backwards. |
| 1875 | 1879 | ||
| 1876 | @kindex C-M-n @r{(F90 mode)} | 1880 | @kindex C-M-n @r{(Fortran mode)} |
| 1881 | @findex fortran-end-of-block | ||
| 1877 | @findex f90-end-of-block | 1882 | @findex f90-end-of-block |
| 1878 | @item C-M-n | 1883 | @item C-M-n |
| 1879 | Move to the end of the current code block (@code{f90-end-of-block}). | 1884 | Move to the end of the current code block |
| 1880 | This is for F90 mode only. With a numeric agument, move forward that | 1885 | (@code{fortran-end-of-block}/@code{f90-end-of-block}). With a numeric |
| 1881 | number of blocks. This command checks for consistency of block types | 1886 | agument, move forward that number of blocks. The mark is set before |
| 1882 | and labels (if present), but it does not check the outermost block | 1887 | moving point. The F90 mode version of this command checks for |
| 1883 | since that may be incomplete. The mark is set before moving point. | 1888 | consistency of block types and labels (if present), but it does not |
| 1884 | 1889 | check the outermost block since that may be incomplete. | |
| 1885 | @kindex C-M-p @r{(F90 mode)} | 1890 | |
| 1891 | @kindex C-M-p @r{(Fortran mode)} | ||
| 1892 | @findex fortran-beginning-of-block | ||
| 1886 | @findex f90-beginning-of-block | 1893 | @findex f90-beginning-of-block |
| 1887 | @item C-M-p | 1894 | @item C-M-p |
| 1888 | Move to the start of the current code block | 1895 | Move to the start of the current code block |
| 1889 | (@code{f90-beginning-of-block}). This is like @code{f90-end-of-block}, | 1896 | (@code{fortran-beginning-of-block}/@code{f90-beginning-of-block}). This |
| 1890 | but moves backwards. | 1897 | is like @code{fortran-end-of-block}, but moves backwards. |
| 1891 | @end table | 1898 | @end table |
| 1892 | 1899 | ||
| 1893 | @node Fortran Indent | 1900 | @node Fortran Indent |
| @@ -1896,7 +1903,7 @@ but moves backwards. | |||
| 1896 | Special commands and features are needed for indenting Fortran code in | 1903 | Special commands and features are needed for indenting Fortran code in |
| 1897 | order to make sure various syntactic entities (line numbers, comment line | 1904 | order to make sure various syntactic entities (line numbers, comment line |
| 1898 | indicators and continuation line flags) appear in the columns that are | 1905 | indicators and continuation line flags) appear in the columns that are |
| 1899 | required for standard Fortran. | 1906 | required for standard, fixed (or tab) format Fortran. |
| 1900 | 1907 | ||
| 1901 | @menu | 1908 | @menu |
| 1902 | * Commands: ForIndent Commands. Commands for indenting and filling Fortran. | 1909 | * Commands: ForIndent Commands. Commands for indenting and filling Fortran. |
| @@ -1911,7 +1918,7 @@ required for standard Fortran. | |||
| 1911 | 1918 | ||
| 1912 | @table @kbd | 1919 | @table @kbd |
| 1913 | @item C-M-j | 1920 | @item C-M-j |
| 1914 | Break the current line and set up a continuation line | 1921 | Break the current line at point and set up a continuation line |
| 1915 | (@code{fortran-split-line}). | 1922 | (@code{fortran-split-line}). |
| 1916 | @item M-^ | 1923 | @item M-^ |
| 1917 | Join this line to the previous line (@code{fortran-join-line}). | 1924 | Join this line to the previous line (@code{fortran-join-line}). |
| @@ -1953,30 +1960,39 @@ point is in. This removes any excess statement continuations. | |||
| 1953 | @cindex Fortran continuation lines | 1960 | @cindex Fortran continuation lines |
| 1954 | 1961 | ||
| 1955 | @vindex fortran-continuation-string | 1962 | @vindex fortran-continuation-string |
| 1956 | Most modern Fortran compilers allow two ways of writing continuation | 1963 | Most Fortran77 compilers allow two ways of writing continuation lines. |
| 1957 | lines. If the first non-space character on a line is in column 5, then | 1964 | If the first non-space character on a line is in column 5, then that |
| 1958 | that line is a continuation of the previous line. We call this | 1965 | line is a continuation of the previous line. We call this @dfn{fixed |
| 1959 | @dfn{fixed format}. (In GNU Emacs we always count columns from 0.) The | 1966 | format}. (In GNU Emacs we always count columns from 0; but note that |
| 1960 | variable @code{fortran-continuation-string} specifies what character to | 1967 | the Fortran standard counts from 1.) The variable |
| 1961 | put on column 5. A line that starts with a tab character followed by | 1968 | @code{fortran-continuation-string} specifies what character to put in |
| 1962 | any digit except @samp{0} is also a continuation line. We call this | 1969 | column 5. A line that starts with a tab character followed by any digit |
| 1963 | style of continuation @dfn{tab format}. | 1970 | except @samp{0} is also a continuation line. We call this style of |
| 1971 | continuation @dfn{tab format}. (Fortran90 introduced ``free format'', | ||
| 1972 | with another style of continuation lines). | ||
| 1964 | 1973 | ||
| 1965 | @vindex indent-tabs-mode @r{(Fortran mode)} | 1974 | @vindex indent-tabs-mode @r{(Fortran mode)} |
| 1966 | Fortran mode can make either style of continuation line, but you | 1975 | @vindex fortran-analyze-depth |
| 1967 | must specify which one you prefer. The value of the variable | 1976 | @vindex fortran-tab-mode-default |
| 1968 | @code{indent-tabs-mode} controls the choice: @code{nil} for fixed | 1977 | Fortran mode can use either style of continuation line. When you |
| 1969 | format, and non-@code{nil} for tab format. You can tell which style | 1978 | enter Fortran mode, it tries to deduce the proper continuation style |
| 1970 | is presently in effect by the presence or absence of the string | 1979 | automatically from the buffer contents. It does this by scanning up to |
| 1971 | @samp{Tab} in the mode line. | 1980 | @code{fortran-analyze-depth} (default 100) lines from the start of the |
| 1972 | 1981 | buffer. The first line that begins with either a tab character or six | |
| 1973 | If the text on a line starts with the conventional Fortran | 1982 | spaces determines the choice. If the scan fails (for example, if the |
| 1974 | continuation marker @samp{$}, or if it begins with any non-whitespace | 1983 | buffer is new and therefore empty), the value of |
| 1975 | character in column 5, Fortran mode treats it as a continuation line. | 1984 | @code{fortran-tab-mode-default} (@code{nil} for fixed format, and |
| 1976 | When you indent a continuation line with @key{TAB}, it converts the line | 1985 | non-@code{nil} for tab format) is used. @samp{/t} in the mode line |
| 1977 | to the current continuation style. When you split a Fortran statement | 1986 | indicates tab format is selected. Fortran mode sets the value of |
| 1978 | with @kbd{C-M-j}, the continuation marker on the newline is created | 1987 | @code{indent-tabs-mode} accordingly (@pxref{Just Spaces}). |
| 1979 | according to the continuation style. | 1988 | |
| 1989 | If the text on a line starts with the Fortran continuation marker | ||
| 1990 | @samp{$}, or if it begins with any non-whitespace character in column | ||
| 1991 | 5, Fortran mode treats it as a continuation line. When you indent a | ||
| 1992 | continuation line with @key{TAB}, it converts the line to the current | ||
| 1993 | continuation style. When you split a Fortran statement with | ||
| 1994 | @kbd{C-M-j}, the continuation marker on the newline is created according | ||
| 1995 | to the continuation style. | ||
| 1980 | 1996 | ||
| 1981 | The setting of continuation style affects several other aspects of | 1997 | The setting of continuation style affects several other aspects of |
| 1982 | editing in Fortran mode. In fixed format mode, the minimum column | 1998 | editing in Fortran mode. In fixed format mode, the minimum column |
| @@ -1986,17 +2002,6 @@ space character for whitespace. In tab format mode, the minimum | |||
| 1986 | column number for the statement body is 8, and the whitespace before | 2002 | column number for the statement body is 8, and the whitespace before |
| 1987 | column 8 must always consist of one tab character. | 2003 | column 8 must always consist of one tab character. |
| 1988 | 2004 | ||
| 1989 | @vindex fortran-tab-mode-default | ||
| 1990 | @vindex fortran-analyze-depth | ||
| 1991 | When you enter Fortran mode for an existing file, it tries to deduce the | ||
| 1992 | proper continuation style automatically from the file contents. The first | ||
| 1993 | line that begins with either a tab character or six spaces determines the | ||
| 1994 | choice. The variable @code{fortran-analyze-depth} specifies how many lines | ||
| 1995 | to consider (at the beginning of the file); if none of those lines | ||
| 1996 | indicates a style, then the variable @code{fortran-tab-mode-default} | ||
| 1997 | specifies the style. If it is @code{nil}, that specifies fixed format, and | ||
| 1998 | non-@code{nil} specifies tab format. | ||
| 1999 | |||
| 2000 | @node ForIndent Num | 2005 | @node ForIndent Num |
| 2001 | @subsubsection Line Numbers | 2006 | @subsubsection Line Numbers |
| 2002 | 2007 | ||
| @@ -2007,9 +2012,11 @@ through 4. (Columns always count from 0 in GNU Emacs.) | |||
| 2007 | @vindex fortran-line-number-indent | 2012 | @vindex fortran-line-number-indent |
| 2008 | Line numbers of four digits or less are normally indented one space. | 2013 | Line numbers of four digits or less are normally indented one space. |
| 2009 | The variable @code{fortran-line-number-indent} controls this; it | 2014 | The variable @code{fortran-line-number-indent} controls this; it |
| 2010 | specifies the maximum indentation a line number can have. Line numbers | 2015 | specifies the maximum indentation a line number can have. The default |
| 2011 | are right-justified to end in column 4 unless that would require more | 2016 | value of the variable is 1. Fortran mode tries to prevent line number |
| 2012 | than this maximum indentation. The default value of the variable is 1. | 2017 | digits passing column 4, reducing the indentation below the specified |
| 2018 | maximum if necessary. If @code{fortran-line-number-indent} has the | ||
| 2019 | value 5, line numbers are right-justified to end in column 4. | ||
| 2013 | 2020 | ||
| 2014 | @vindex fortran-electric-line-number | 2021 | @vindex fortran-electric-line-number |
| 2015 | Simply inserting a line number is enough to indent it according to | 2022 | Simply inserting a line number is enough to indent it according to |
| @@ -2062,54 +2069,59 @@ followed. | |||
| 2062 | Extra indentation within each level of @samp{do} statement (default 3). | 2069 | Extra indentation within each level of @samp{do} statement (default 3). |
| 2063 | 2070 | ||
| 2064 | @item fortran-if-indent | 2071 | @item fortran-if-indent |
| 2065 | Extra indentation within each level of @samp{if} statement (default 3). | 2072 | Extra indentation within each level of @samp{if}, @samp{select case}, or |
| 2066 | This value is also used for extra indentation within each level of the | 2073 | @samp{where} statements (default 3). |
| 2067 | Fortran 90 @samp{where} statement. | ||
| 2068 | 2074 | ||
| 2069 | @item fortran-structure-indent | 2075 | @item fortran-structure-indent |
| 2070 | Extra indentation within each level of @samp{structure}, @samp{union}, or | 2076 | Extra indentation within each level of @samp{structure}, @samp{union}, |
| 2071 | @samp{map} statements (default 3). | 2077 | @samp{map}, or @samp{interface} statements (default 3). |
| 2072 | 2078 | ||
| 2073 | @item fortran-continuation-indent | 2079 | @item fortran-continuation-indent |
| 2074 | Extra indentation for bodies of continuation lines (default 5). | 2080 | Extra indentation for bodies of continuation lines (default 5). |
| 2075 | 2081 | ||
| 2076 | @item fortran-check-all-num-for-matching-do | 2082 | @item fortran-check-all-num-for-matching-do |
| 2077 | If this is @code{nil}, indentation assumes that each @samp{do} statement | 2083 | In Fortran77, a numbered @samp{do} statement is ended by any statement |
| 2078 | ends on a @samp{continue} statement. Therefore, when computing | 2084 | with a matching line number. It is common (but not compulsory) to use a |
| 2079 | indentation for a statement other than @samp{continue}, it can save time | 2085 | @samp{continue} statement for this purpose. If this variable has a |
| 2080 | by not checking for a @samp{do} statement ending there. If this is | 2086 | non-@code{nil} value, indenting any numbered statement must check for a |
| 2081 | non-@code{nil}, indenting any numbered statement must check for a | 2087 | @samp{do} that ends there. If you always end @samp{do} statements with |
| 2082 | @samp{do} that ends there. The default is @code{nil}. | 2088 | a @samp{continue} line (or if you use the more modern @samp{enddo}), |
| 2089 | then you can speed up indentation by setting this variable to | ||
| 2090 | @code{nil}. The default is @code{nil}. | ||
| 2083 | 2091 | ||
| 2084 | @item fortran-blink-matching-if | 2092 | @item fortran-blink-matching-if |
| 2085 | If this is @code{t}, indenting an @samp{endif} statement moves the | 2093 | If this is @code{t}, indenting an @samp{endif} (or @samp{enddo} |
| 2086 | cursor momentarily to the matching @samp{if} statement to show where it | 2094 | statement moves the cursor momentarily to the matching @samp{if} (or |
| 2087 | is. The default is @code{nil}. | 2095 | @samp{do}) statement to show where it is. The default is @code{nil}. |
| 2088 | 2096 | ||
| 2089 | @item fortran-minimum-statement-indent-fixed | 2097 | @item fortran-minimum-statement-indent-fixed |
| 2090 | Minimum indentation for fortran statements when using fixed format | 2098 | Minimum indentation for Fortran statements when using fixed format |
| 2091 | continuation line style. Statement bodies are never indented less than | 2099 | continuation line style. Statement bodies are never indented less than |
| 2092 | this much. The default is 6. | 2100 | this much. The default is 6. |
| 2093 | 2101 | ||
| 2094 | @item fortran-minimum-statement-indent-tab | 2102 | @item fortran-minimum-statement-indent-tab |
| 2095 | Minimum indentation for fortran statements for tab format continuation line | 2103 | Minimum indentation for Fortran statements for tab format continuation line |
| 2096 | style. Statement bodies are never indented less than this much. The | 2104 | style. Statement bodies are never indented less than this much. The |
| 2097 | default is 8. | 2105 | default is 8. |
| 2098 | @end table | 2106 | @end table |
| 2099 | 2107 | ||
| 2108 | The variables controlling the indentation of comments are described in | ||
| 2109 | the following section. | ||
| 2110 | |||
| 2100 | @node Fortran Comments | 2111 | @node Fortran Comments |
| 2101 | @subsection Fortran Comments | 2112 | @subsection Fortran Comments |
| 2102 | 2113 | ||
| 2103 | The usual Emacs comment commands assume that a comment can follow a line | 2114 | The usual Emacs comment commands assume that a comment can follow a |
| 2104 | of code. In Fortran, the standard comment syntax requires an entire line | 2115 | line of code. In Fortran77, the standard comment syntax requires an |
| 2105 | to be just a comment. Therefore, Fortran mode replaces the standard Emacs | 2116 | entire line to be just a comment. Therefore, Fortran mode replaces the |
| 2106 | comment commands and defines some new variables. | 2117 | standard Emacs comment commands and defines some new variables. |
| 2107 | 2118 | ||
| 2119 | @vindex fortran-comment-line-start | ||
| 2108 | Fortran mode can also handle the Fortran90 comment syntax where comments | 2120 | Fortran mode can also handle the Fortran90 comment syntax where comments |
| 2109 | start with @samp{!} and can follow other text. Because only some Fortran77 | 2121 | start with @samp{!} and can follow other text. Because only some Fortran77 |
| 2110 | compilers accept this syntax, Fortran mode will not insert such comments | 2122 | compilers accept this syntax, Fortran mode will not insert such comments |
| 2111 | unless you have said in advance to do so. To do this, set the variable | 2123 | unless you have said in advance to do so. To do this, set the variable |
| 2112 | @code{comment-start} to @samp{"!"} (@pxref{Variables}). | 2124 | @code{fortran-comment-line-start} to @samp{"!"}. |
| 2113 | 2125 | ||
| 2114 | @table @kbd | 2126 | @table @kbd |
| 2115 | @item M-; | 2127 | @item M-; |
| @@ -2123,6 +2135,7 @@ Turn all lines of the region into comments, or (with argument) turn them back | |||
| 2123 | into real code (@code{fortran-comment-region}). | 2135 | into real code (@code{fortran-comment-region}). |
| 2124 | @end table | 2136 | @end table |
| 2125 | 2137 | ||
| 2138 | @findex fortran-indent-comment | ||
| 2126 | @kbd{M-;} in Fortran mode is redefined as the command | 2139 | @kbd{M-;} in Fortran mode is redefined as the command |
| 2127 | @code{fortran-indent-comment}. Like the usual @kbd{M-;} command, this | 2140 | @code{fortran-indent-comment}. Like the usual @kbd{M-;} command, this |
| 2128 | recognizes any kind of existing comment and aligns its text appropriately; | 2141 | recognizes any kind of existing comment and aligns its text appropriately; |
| @@ -2178,14 +2191,6 @@ never be indented at all, no matter what the value of | |||
| 2178 | lines are directives. Matching lines are never indented, and receive | 2191 | lines are directives. Matching lines are never indented, and receive |
| 2179 | distinctive font-locking. | 2192 | distinctive font-locking. |
| 2180 | 2193 | ||
| 2181 | @vindex comment-line-start | ||
| 2182 | @vindex comment-line-start-skip | ||
| 2183 | Fortran mode introduces two variables @code{comment-line-start} and | ||
| 2184 | @code{comment-line-start-skip}, which play for full-line comments the same | ||
| 2185 | roles played by @code{comment-start} and @code{comment-start-skip} for | ||
| 2186 | ordinary text-following comments. Normally these are set properly by | ||
| 2187 | Fortran mode, so you do not need to change them. | ||
| 2188 | |||
| 2189 | The normal Emacs comment command @kbd{C-x ;} has not been redefined. If | 2194 | The normal Emacs comment command @kbd{C-x ;} has not been redefined. If |
| 2190 | you use @samp{!} comments, this command can be used with them. Otherwise | 2195 | you use @samp{!} comments, this command can be used with them. Otherwise |
| 2191 | it is useless in Fortran mode. | 2196 | it is useless in Fortran mode. |
| @@ -2204,34 +2209,28 @@ of the name never conflict because in Lisp and in Emacs it is always | |||
| 2204 | clear from the context which one is meant. | 2209 | clear from the context which one is meant. |
| 2205 | 2210 | ||
| 2206 | @node Fortran Autofill | 2211 | @node Fortran Autofill |
| 2207 | @subsection Fortran Auto Fill Mode | 2212 | @subsection Auto Fill in Fortran Mode |
| 2208 | 2213 | ||
| 2209 | Fortran Auto Fill mode is a minor mode which automatically splits | 2214 | Fortran mode has specialized support for Auto Fill mode, which is a |
| 2210 | Fortran statements as you insert them when they become too wide. | 2215 | minor mode that automatically splits statements as you insert them when |
| 2211 | Splitting a statement involves making continuation lines using | 2216 | they become too wide. Splitting a statement involves making |
| 2212 | @code{fortran-continuation-string} (@pxref{ForIndent Cont}). This | 2217 | continuation lines using @code{fortran-continuation-string} |
| 2213 | splitting happens when you type @key{SPC}, @key{RET}, or @key{TAB}, and | 2218 | (@pxref{ForIndent Cont}). This splitting happens when you type |
| 2214 | also in the Fortran indentation commands. | 2219 | @key{SPC}, @key{RET}, or @key{TAB}, and also in the Fortran indentation |
| 2215 | 2220 | commands. You activate Auto Fill in Fortran mode in the normal way | |
| 2216 | @findex fortran-auto-fill-mode | 2221 | (@pxref{Auto Fill}). |
| 2217 | @kbd{M-x fortran-auto-fill-mode} toggles Fortran Auto Fill mode, | ||
| 2218 | which is a variant of normal Auto Fill mode (@pxref{Filling}) designed | ||
| 2219 | for Fortran programs. Fortran Auto Fill mode is a buffer-local minor | ||
| 2220 | mode (@pxref{Minor Modes}). When Fortran Auto Fill mode is in effect, | ||
| 2221 | the word @samp{Fill} appears in the mode line inside the parentheses. | ||
| 2222 | 2222 | ||
| 2223 | @vindex fortran-break-before-delimiters | 2223 | @vindex fortran-break-before-delimiters |
| 2224 | Fortran Auto Fill mode breaks lines at spaces or delimiters when the | 2224 | Auto Fill breaks lines at spaces or delimiters when the lines get |
| 2225 | lines get longer than the desired width (the value of @code{fill-column}). | 2225 | longer than the desired width (the value of @code{fill-column}). The |
| 2226 | The delimiters that Fortran Auto Fill mode may break at are @samp{,}, | 2226 | delimiters (besides whitespace) that Auto Fill can break at are |
| 2227 | @samp{'}, @samp{+}, @samp{-}, @samp{/}, @samp{*}, @samp{=}, and @samp{)}. | 2227 | @samp{+}, @samp{-}, @samp{/}, @samp{*}, @samp{=}, @samp{<}, @samp{>}, |
| 2228 | The line break comes after the delimiter if the variable | 2228 | and @samp{,}. The line break comes after the delimiter if the |
| 2229 | @code{fortran-break-before-delimiters} is @code{nil}. Otherwise (and by | 2229 | variable @code{fortran-break-before-delimiters} is @code{nil}. |
| 2230 | default), the break comes before the delimiter. | 2230 | Otherwise (and by default), the break comes before the delimiter. |
| 2231 | 2231 | ||
| 2232 | To enable this mode permanently, add a hook function to | 2232 | To enable Auto Fill in all Fortran buffers, add |
| 2233 | @code{fortran-mode-hook} to execute @code{(fortran-auto-fill-mode 1)}. | 2233 | @code{turn-on-auto-fill} to @code{fortran-mode-hook}. @xref{Hooks}. |
| 2234 | @xref{Hooks}. | ||
| 2235 | 2234 | ||
| 2236 | @node Fortran Columns | 2235 | @node Fortran Columns |
| 2237 | @subsection Checking Columns in Fortran | 2236 | @subsection Checking Columns in Fortran |
| @@ -2280,7 +2279,7 @@ display. | |||
| 2280 | @findex fortran-window-create-momentarily | 2279 | @findex fortran-window-create-momentarily |
| 2281 | @kbd{C-c C-w} (@code{fortran-window-create-momentarily}) temporarily | 2280 | @kbd{C-c C-w} (@code{fortran-window-create-momentarily}) temporarily |
| 2282 | splits the current window horizontally, making a window 72 columns | 2281 | splits the current window horizontally, making a window 72 columns |
| 2283 | wide, so you can see which lines that is too long. Type a space to | 2282 | wide, so you can see any lines that are too long. Type a space to |
| 2284 | restore the normal width. | 2283 | restore the normal width. |
| 2285 | 2284 | ||
| 2286 | @kindex C-u C-c C-w @r{(Fortran mode)} | 2285 | @kindex C-u C-c C-w @r{(Fortran mode)} |
diff --git a/man/reftex.texi b/man/reftex.texi index 7de16dcb0e1..0d3c5bdc32e 100644 --- a/man/reftex.texi +++ b/man/reftex.texi | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | @c Version and Contact Info | 9 | @c Version and Contact Info |
| 10 | @set VERSION 4.24 | 10 | @set VERSION 4.24 |
| 11 | @set EDITION 4.24 | 11 | @set EDITION 4.24 |
| 12 | @set DATE August 2004 | 12 | @set DATE March 2005 |
| 13 | @set AUCTEXSITE @uref{http://www.nongnu.org/auctex/,AUCTeX distribution site} | 13 | @set AUCTEXSITE @uref{http://www.nongnu.org/auctex/,AUCTeX distribution site} |
| 14 | @set MAINTAINERSITE @uref{http://www.astro.uva.nl/~dominik/Tools/,maintainers webpage} | 14 | @set MAINTAINERSITE @uref{http://www.astro.uva.nl/~dominik/Tools/,maintainers webpage} |
| 15 | @set MAINTAINER Carsten Dominik | 15 | @set MAINTAINER Carsten Dominik |
| @@ -25,7 +25,8 @@ citations and indices for LaTeX documents with Emacs. | |||
| 25 | This is edition @value{EDITION} of the @b{Ref@TeX{}} User Manual for | 25 | This is edition @value{EDITION} of the @b{Ref@TeX{}} User Manual for |
| 26 | @b{Ref@TeX{}} @value{VERSION} | 26 | @b{Ref@TeX{}} @value{VERSION} |
| 27 | 27 | ||
| 28 | Copyright (c) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. | 28 | Copyright (c) 1997, 1998, 1999, 2000, 2001, 2002, 2005 |
| 29 | Free Software Foundation, Inc. | ||
| 29 | 30 | ||
| 30 | @quotation | 31 | @quotation |
| 31 | Permission is granted to copy, distribute and/or modify this document | 32 | Permission is granted to copy, distribute and/or modify this document |
| @@ -734,9 +735,9 @@ indicating the type of the label and a unique mark. @b{Ref@TeX{}} has | |||
| 734 | A label can be derived from context. This means, @b{Ref@TeX{}} takes | 735 | A label can be derived from context. This means, @b{Ref@TeX{}} takes |
| 735 | the context of the label definition and constructs a label from | 736 | the context of the label definition and constructs a label from |
| 736 | that@footnote{Note that the context may contain constructs which are | 737 | that@footnote{Note that the context may contain constructs which are |
| 737 | illegal in labels. @b{Ref@TeX{}} will therefore strip the accent from | 738 | invalid in labels. @b{Ref@TeX{}} will therefore strip the accent from |
| 738 | accented Latin-1 characters and remove everything else which is not | 739 | accented Latin-1 characters and remove everything else which is not |
| 739 | legal in labels. This mechanism is safe, but may not be satisfactory | 740 | valid in labels. This mechanism is safe, but may not be satisfactory |
| 740 | for non-western languages. Check the following variables if you need to | 741 | for non-western languages. Check the following variables if you need to |
| 741 | change things: @code{reftex-translate-to-ascii-function}, | 742 | change things: @code{reftex-translate-to-ascii-function}, |
| 742 | @code{reftex-derive-label-parameters}, @code{reftex-label-illegal-re}, | 743 | @code{reftex-derive-label-parameters}, @code{reftex-label-illegal-re}, |
| @@ -2832,7 +2833,7 @@ to be changed for other languages. See the variables | |||
| 2832 | @vindex reftex-translate-to-ascii-function | 2833 | @vindex reftex-translate-to-ascii-function |
| 2833 | @vindex reftex-label-illegal-re | 2834 | @vindex reftex-label-illegal-re |
| 2834 | Also, when a label is derived from context, @b{Ref@TeX{}} clears the | 2835 | Also, when a label is derived from context, @b{Ref@TeX{}} clears the |
| 2835 | context string from non-ASCII characters in order to make a legal label. | 2836 | context string from non-ASCII characters in order to make a valid label. |
| 2836 | If there should ever be a version of @TeX{} which allows extended | 2837 | If there should ever be a version of @TeX{} which allows extended |
| 2837 | characters @emph{in labels}, then we will have to look at the | 2838 | characters @emph{in labels}, then we will have to look at the |
| 2838 | variables @code{reftex-translate-to-ascii-function} and | 2839 | variables @code{reftex-translate-to-ascii-function} and |
| @@ -4119,7 +4120,7 @@ Flags governing label insertion. The value has the form | |||
| 4119 | 4120 | ||
| 4120 | If @var{derive}is @code{t}, @b{Ref@TeX{}} will try to derive a sensible | 4121 | If @var{derive}is @code{t}, @b{Ref@TeX{}} will try to derive a sensible |
| 4121 | label from context. A section label for example will be derived from | 4122 | label from context. A section label for example will be derived from |
| 4122 | the section heading. The conversion of the context to a legal label is | 4123 | the section heading. The conversion of the context to a valid label is |
| 4123 | governed by the specifications given in | 4124 | governed by the specifications given in |
| 4124 | @code{reftex-derive-label-parameters}. If @var{derive} is @code{nil}, | 4125 | @code{reftex-derive-label-parameters}. If @var{derive} is @code{nil}, |
| 4125 | the default label will consist of the prefix and a unique number, like | 4126 | the default label will consist of the prefix and a unique number, like |
| @@ -4165,7 +4166,7 @@ buffer. | |||
| 4165 | @end deffn | 4166 | @end deffn |
| 4166 | 4167 | ||
| 4167 | @deffn Hook reftex-string-to-label-function | 4168 | @deffn Hook reftex-string-to-label-function |
| 4168 | Function to turn an arbitrary string into a legal label. | 4169 | Function to turn an arbitrary string into a valid label. |
| 4169 | @b{Ref@TeX{}}'s default function uses the variable | 4170 | @b{Ref@TeX{}}'s default function uses the variable |
| 4170 | @code{reftex-derive-label-parameters}. | 4171 | @code{reftex-derive-label-parameters}. |
| 4171 | @end deffn | 4172 | @end deffn |
| @@ -4173,7 +4174,7 @@ Function to turn an arbitrary string into a legal label. | |||
| 4173 | @deffn Hook reftex-translate-to-ascii-function | 4174 | @deffn Hook reftex-translate-to-ascii-function |
| 4174 | Filter function which will process a context string before it is used to | 4175 | Filter function which will process a context string before it is used to |
| 4175 | derive a label from it. The intended application is to convert ISO or | 4176 | derive a label from it. The intended application is to convert ISO or |
| 4176 | Mule characters into something legal in labels. The default function | 4177 | Mule characters into something valid in labels. The default function |
| 4177 | @code{reftex-latin1-to-ascii} removes the accents from Latin-1 | 4178 | @code{reftex-latin1-to-ascii} removes the accents from Latin-1 |
| 4178 | characters. X-Symbol (>=2.6) sets this variable to the much more | 4179 | characters. X-Symbol (>=2.6) sets this variable to the much more |
| 4179 | general @code{x-symbol-translate-to-ascii}. | 4180 | general @code{x-symbol-translate-to-ascii}. |
| @@ -4187,9 +4188,9 @@ list of the following items: | |||
| 4187 | Number of words to use. | 4188 | Number of words to use. |
| 4188 | @item @var{maxchar} | 4189 | @item @var{maxchar} |
| 4189 | Maximum number of characters in a label string. | 4190 | Maximum number of characters in a label string. |
| 4190 | @item @var{illegal} | 4191 | @item @var{invalid} |
| 4191 | @code{nil}: Throw away any words containing characters illegal in labels.@* | 4192 | @code{nil}: Throw away any words containing characters invalid in labels.@* |
| 4192 | @code{t}: Throw away only the illegal characters, not the whole word. | 4193 | @code{t}: Throw away only the invalid characters, not the whole word. |
| 4193 | @item @var{abbrev} | 4194 | @item @var{abbrev} |
| 4194 | @code{nil}: Never abbreviate words.@* | 4195 | @code{nil}: Never abbreviate words.@* |
| 4195 | @code{t}: Always abbreviate words (see @code{reftex-abbrev-parameters}).@* | 4196 | @code{t}: Always abbreviate words (see @code{reftex-abbrev-parameters}).@* |
| @@ -4204,7 +4205,7 @@ List of words which should not be part of labels. | |||
| 4204 | @end defopt | 4205 | @end defopt |
| 4205 | 4206 | ||
| 4206 | @defopt reftex-label-illegal-re | 4207 | @defopt reftex-label-illegal-re |
| 4207 | Regexp matching characters not legal in labels. | 4208 | Regexp matching characters not valid in labels. |
| 4208 | @end defopt | 4209 | @end defopt |
| 4209 | 4210 | ||
| 4210 | @defopt reftex-abbrev-parameters | 4211 | @defopt reftex-abbrev-parameters |
| @@ -4557,7 +4558,7 @@ indexing from the phrase buffer. | |||
| 4557 | 4558 | ||
| 4558 | The final entry may also be a symbol. It must have an association in | 4559 | The final entry may also be a symbol. It must have an association in |
| 4559 | the variable @code{reftex-index-macros-builtin} to specify the main | 4560 | the variable @code{reftex-index-macros-builtin} to specify the main |
| 4560 | indexing package you are using. Legal values are currently | 4561 | indexing package you are using. Valid values are currently |
| 4561 | @example | 4562 | @example |
| 4562 | default @r{The LaTeX default - unnecessary to specify this one} | 4563 | default @r{The LaTeX default - unnecessary to specify this one} |
| 4563 | multind @r{The multind.sty package} | 4564 | multind @r{The multind.sty package} |
| @@ -4589,7 +4590,7 @@ Default index tag. When working with multiple indexes, RefTeX queries | |||
| 4589 | for an index tag when creating index entries or displaying a specific | 4590 | for an index tag when creating index entries or displaying a specific |
| 4590 | index. This variable controls the default offered for these queries. | 4591 | index. This variable controls the default offered for these queries. |
| 4591 | The default can be selected with @key{RET} during selection or | 4592 | The default can be selected with @key{RET} during selection or |
| 4592 | completion. Legal values of this variable are: | 4593 | completion. Valid values of this variable are: |
| 4593 | @example | 4594 | @example |
| 4594 | nil @r{Do not provide a default index} | 4595 | nil @r{Do not provide a default index} |
| 4595 | "tag" @r{The default index tag given as a string, e.g. "idx"} | 4596 | "tag" @r{The default index tag given as a string, e.g. "idx"} |
| @@ -4829,9 +4830,9 @@ This is a list of items, each item is like: | |||
| 4829 | @example | 4830 | @example |
| 4830 | @var{type}: @r{File type like @code{"bib"} or @code{"tex"}.} | 4831 | @var{type}: @r{File type like @code{"bib"} or @code{"tex"}.} |
| 4831 | @var{def-ext}: @r{The default extension for that file type, like @code{".tex"} or @code{".bib"}.} | 4832 | @var{def-ext}: @r{The default extension for that file type, like @code{".tex"} or @code{".bib"}.} |
| 4832 | @var{other-ext}: @r{Any number of other legal extensions for this file type.} | 4833 | @var{other-ext}: @r{Any number of other valid extensions for this file type.} |
| 4833 | @end example | 4834 | @end example |
| 4834 | When a files is searched and it does not have any of the legal extensions, | 4835 | When a files is searched and it does not have any of the valid extensions, |
| 4835 | we try the default extension first, and then the naked file name. | 4836 | we try the default extension first, and then the naked file name. |
| 4836 | @end defopt | 4837 | @end defopt |
| 4837 | 4838 | ||
| @@ -5456,7 +5457,7 @@ lowercase labels (default @code{t}). | |||
| 5456 | All @file{.rel} files have a final newline to avoid queries. | 5457 | All @file{.rel} files have a final newline to avoid queries. |
| 5457 | @item | 5458 | @item |
| 5458 | Single byte representations of accented European letters (ISO-8859-1) | 5459 | Single byte representations of accented European letters (ISO-8859-1) |
| 5459 | are now legal in labels. | 5460 | are now valid in labels. |
| 5460 | @end itemize | 5461 | @end itemize |
| 5461 | 5462 | ||
| 5462 | @noindent @b{Version 3.33} | 5463 | @noindent @b{Version 3.33} |
diff --git a/man/text.texi b/man/text.texi index 327a03116f8..958e18db8d5 100644 --- a/man/text.texi +++ b/man/text.texi | |||
| @@ -403,13 +403,13 @@ Text}). | |||
| 403 | * Fill Prefix:: Filling paragraphs that are indented | 403 | * Fill Prefix:: Filling paragraphs that are indented |
| 404 | or in a comment, etc. | 404 | or in a comment, etc. |
| 405 | * Adaptive Fill:: How Emacs can determine the fill prefix automatically. | 405 | * Adaptive Fill:: How Emacs can determine the fill prefix automatically. |
| 406 | * Longlines:: Editing text with very long lines. | ||
| 406 | @end menu | 407 | @end menu |
| 407 | 408 | ||
| 408 | @node Auto Fill | 409 | @node Auto Fill |
| 409 | @subsection Auto Fill Mode | 410 | @subsection Auto Fill Mode |
| 410 | @cindex Auto Fill mode | 411 | @cindex Auto Fill mode |
| 411 | @cindex mode, Auto Fill | 412 | @cindex mode, Auto Fill |
| 412 | @cindex word wrap | ||
| 413 | 413 | ||
| 414 | @dfn{Auto Fill} mode is a minor mode in which lines are broken | 414 | @dfn{Auto Fill} mode is a minor mode in which lines are broken |
| 415 | automatically when they become too wide. Breaking happens only when | 415 | automatically when they become too wide. Breaking happens only when |
| @@ -474,16 +474,19 @@ you type or modify them in other ways. It provides an effect similar | |||
| 474 | to typical word processor behavior. This works by running a | 474 | to typical word processor behavior. This works by running a |
| 475 | paragraph-filling command at suitable times. | 475 | paragraph-filling command at suitable times. |
| 476 | 476 | ||
| 477 | When you are typing text, only characters which normally trigger | ||
| 478 | auto filling, like the space character, will trigger refilling. This | ||
| 479 | is to avoid making it too slow. Apart from self-inserting characters, | ||
| 480 | other commands which modify the text cause refilling. | ||
| 481 | |||
| 482 | The current implementation is preliminary and probably not robust. | ||
| 483 | We expect to improve on it. | ||
| 484 | |||
| 485 | To toggle the use of Refill mode in the current buffer, type | 477 | To toggle the use of Refill mode in the current buffer, type |
| 486 | @kbd{M-x refill-mode}. | 478 | @kbd{M-x refill-mode}. When you are typing text, only characters |
| 479 | which normally trigger auto filling, like the space character, will | ||
| 480 | trigger refilling. This is to avoid making it too slow. Apart from | ||
| 481 | self-inserting characters, other commands which modify the text cause | ||
| 482 | refilling. | ||
| 483 | |||
| 484 | The current implementation is preliminary and not robust. You can | ||
| 485 | get better ``line wrapping'' behavior using Longlines mode. | ||
| 486 | @xref{Longlines}. However, Longlines mode has an important | ||
| 487 | side-effect: the newlines that it inserts for you are not saved to | ||
| 488 | disk, so the files that you make with Longlines mode will appear to be | ||
| 489 | completely unfilled if you edit them without Longlines mode. | ||
| 487 | 490 | ||
| 488 | @node Fill Commands | 491 | @node Fill Commands |
| 489 | @subsection Explicit Fill Commands | 492 | @subsection Explicit Fill Commands |
| @@ -745,6 +748,56 @@ line, and it should return the appropriate fill prefix based on that | |||
| 745 | line. If it returns @code{nil}, that means it sees no fill prefix in | 748 | line. If it returns @code{nil}, that means it sees no fill prefix in |
| 746 | that line. | 749 | that line. |
| 747 | 750 | ||
| 751 | @node Longlines | ||
| 752 | @subsection Long Lines Mode | ||
| 753 | @cindex refilling text, word processor style | ||
| 754 | @cindex modes, Long Lines | ||
| 755 | @cindex word wrap | ||
| 756 | @cindex Long Lines minor mode | ||
| 757 | |||
| 758 | Long Lines mode is a minor mode for @dfn{word wrapping}; it lets you | ||
| 759 | edit ``unfilled'' text files, which Emacs would normally display as a | ||
| 760 | bunch of extremely long lines. Many text editors, such as those built | ||
| 761 | into many web browsers, normally do word wrapping. | ||
| 762 | |||
| 763 | @findex longlines-mode | ||
| 764 | To enable Long Lines mode, type @kbd{M-x longlines-mode}. If the | ||
| 765 | text is full of long lines, this will ``wrap'' them | ||
| 766 | immediately---i.e., break up to fit in the window. As you edit the | ||
| 767 | text, Long Lines mode automatically re-wraps lines by inserting or | ||
| 768 | deleting @dfn{soft newlines} as necessary (@pxref{Hard and Soft | ||
| 769 | Newlines}.) These soft newlines won't show up when you save the | ||
| 770 | buffer into a file, or when you copy the text into the kill ring, | ||
| 771 | clipboard, or a register. | ||
| 772 | |||
| 773 | @findex longlines-auto-wrap | ||
| 774 | Word wrapping is @emph{not} the same as ordinary filling | ||
| 775 | (@pxref{Fill Commands}). It does not contract multiple spaces into a | ||
| 776 | single space, recognize fill prefixes (@pxref{Fill Prefix}), or | ||
| 777 | perform adaptive filling (@pxref{Adaptive Fill}). The reason for this | ||
| 778 | is that a wrapped line is still, conceptually, a single line. Each | ||
| 779 | soft newline is equivalent to exactly one space in that long line, and | ||
| 780 | vice versa. However, you can still call filling functions such as | ||
| 781 | @kbd{M-q}, and these will work as expected, inserting soft newlines | ||
| 782 | that won't show up on disk or when the text is copied. You can even | ||
| 783 | rely entirely on the normal fill commands by turning off automatic | ||
| 784 | line wrapping, with @kbd{C-u M-x longlines-auto-wrap}. To turn | ||
| 785 | automatic line wrapping back on, type @kbd{M-x longlines-auto-wrap}. | ||
| 786 | |||
| 787 | @findex longlines-show-hard-newlines | ||
| 788 | Whenever you type @kbd{RET}, you are inserting a hard newline. If | ||
| 789 | you want to see where all the hard newlines are, type @kbd{M-x | ||
| 790 | longlines-show-hard-newlines}. This will mark each hard newline with | ||
| 791 | a special symbol. The same command with a prefix argument turns this | ||
| 792 | display off. | ||
| 793 | |||
| 794 | Long Lines mode does not change normal text files that are already | ||
| 795 | filled, since the existing newlines are considered hard newlines. | ||
| 796 | Before Long Lines can do anything, you need to transform each | ||
| 797 | paragraph into a long line. One way is to set @code{fill-column} to a | ||
| 798 | large number (e.g., @kbd{C-u 9999 C-x f}), re-fill all the paragraphs, | ||
| 799 | and then set @code{fill-column} back to its original value. | ||
| 800 | |||
| 748 | @node Case | 801 | @node Case |
| 749 | @section Case Conversion Commands | 802 | @section Case Conversion Commands |
| 750 | @cindex case conversion | 803 | @cindex case conversion |
| @@ -1053,30 +1106,35 @@ Most of them fall into pairs of opposites. They are not undoable; instead, | |||
| 1053 | you can undo right past them. Making lines visible or invisible is simply | 1106 | you can undo right past them. Making lines visible or invisible is simply |
| 1054 | not recorded by the undo mechanism. | 1107 | not recorded by the undo mechanism. |
| 1055 | 1108 | ||
| 1109 | Many of these commands act on the ``current'' heading line. If | ||
| 1110 | point is on a heading line, that is the current heading line; if point | ||
| 1111 | is on a body line, the current heading line is the nearest preceding | ||
| 1112 | header line. | ||
| 1113 | |||
| 1056 | @table @kbd | 1114 | @table @kbd |
| 1057 | @item C-c C-t | 1115 | @item C-c C-c |
| 1058 | Make all body lines in the buffer invisible (@code{hide-body}). | 1116 | Make the current heading line's body invisible (@code{hide-entry}). |
| 1059 | @item C-c C-a | 1117 | @item C-c C-e |
| 1060 | Make all lines in the buffer visible (@code{show-all}). | 1118 | Make the current heading line's body visible (@code{show-entry}). |
| 1061 | @item C-c C-d | 1119 | @item C-c C-d |
| 1062 | Make everything under this heading invisible, not including this | 1120 | Make everything under the current heading invisible, not including the |
| 1063 | heading itself (@code{hide-subtree}). | 1121 | heading itself (@code{hide-subtree}). |
| 1064 | @item C-c C-s | 1122 | @item C-c C-s |
| 1065 | Make everything under this heading visible, including body, | 1123 | Make everything under the current heading visible, including body, |
| 1066 | subheadings, and their bodies (@code{show-subtree}). | 1124 | subheadings, and their bodies (@code{show-subtree}). |
| 1067 | @item C-c C-l | 1125 | @item C-c C-l |
| 1068 | Make the body of this heading line, and of all its subheadings, | 1126 | Make the body of the current heading line, and of all its subheadings, |
| 1069 | invisible (@code{hide-leaves}). | 1127 | invisible (@code{hide-leaves}). |
| 1070 | @item C-c C-k | 1128 | @item C-c C-k |
| 1071 | Make all subheadings of this heading line, at all levels, visible | 1129 | Make all subheadings of the current heading line, at all levels, |
| 1072 | (@code{show-branches}). | 1130 | visible (@code{show-branches}). |
| 1073 | @item C-c C-i | 1131 | @item C-c C-i |
| 1074 | Make immediate subheadings (one level down) of this heading line | 1132 | Make immediate subheadings (one level down) of the current heading |
| 1075 | visible (@code{show-children}). | 1133 | line visible (@code{show-children}). |
| 1076 | @item C-c C-c | 1134 | @item C-c C-t |
| 1077 | Make this heading line's body invisible (@code{hide-entry}). | 1135 | Make all body lines in the buffer invisible (@code{hide-body}). |
| 1078 | @item C-c C-e | 1136 | @item C-c C-a |
| 1079 | Make this heading line's body visible (@code{show-entry}). | 1137 | Make all lines in the buffer visible (@code{show-all}). |
| 1080 | @item C-c C-q | 1138 | @item C-c C-q |
| 1081 | Hide everything except the top @var{n} levels of heading lines | 1139 | Hide everything except the top @var{n} levels of heading lines |
| 1082 | (@code{hide-sublevels}). | 1140 | (@code{hide-sublevels}). |
| @@ -1091,22 +1149,21 @@ the headings leading up from there to the top level of the outline | |||
| 1091 | @kindex C-c C-c @r{(Outline mode)} | 1149 | @kindex C-c C-c @r{(Outline mode)} |
| 1092 | @kindex C-c C-e @r{(Outline mode)} | 1150 | @kindex C-c C-e @r{(Outline mode)} |
| 1093 | Two commands that are exact opposites are @kbd{C-c C-c} | 1151 | Two commands that are exact opposites are @kbd{C-c C-c} |
| 1094 | (@code{hide-entry}) and @kbd{C-c C-e} (@code{show-entry}). They are | 1152 | (@code{hide-entry}) and @kbd{C-c C-e} (@code{show-entry}). They apply |
| 1095 | used with point on a heading line, and apply only to the body lines of | 1153 | to the body lines directly following the current heading line. |
| 1096 | that heading. Subheadings and their bodies are not affected. | 1154 | Subheadings and their bodies are not affected. |
| 1097 | 1155 | ||
| 1098 | @findex hide-subtree | 1156 | @findex hide-subtree |
| 1099 | @findex show-subtree | 1157 | @findex show-subtree |
| 1100 | @kindex C-c C-s @r{(Outline mode)} | 1158 | @kindex C-c C-s @r{(Outline mode)} |
| 1101 | @kindex C-c C-d @r{(Outline mode)} | 1159 | @kindex C-c C-d @r{(Outline mode)} |
| 1102 | @cindex subtree (Outline mode) | 1160 | @cindex subtree (Outline mode) |
| 1103 | Two more powerful opposites are @kbd{C-c C-d} (@code{hide-subtree}) and | 1161 | Two more powerful opposites are @kbd{C-c C-d} (@code{hide-subtree}) |
| 1104 | @kbd{C-c C-s} (@code{show-subtree}). Both expect to be used when point is | 1162 | and @kbd{C-c C-s} (@code{show-subtree}). Both apply to the current |
| 1105 | on a heading line, and both apply to all the lines of that heading's | 1163 | heading line's @dfn{subtree}: its body, all its subheadings, both |
| 1106 | @dfn{subtree}: its body, all its subheadings, both direct and indirect, and | 1164 | direct and indirect, and all of their bodies. In other words, the |
| 1107 | all of their bodies. In other words, the subtree contains everything | 1165 | subtree contains everything following the current heading line, up to |
| 1108 | following this heading line, up to and not including the next heading of | 1166 | and not including the next heading of the same or higher rank.@refill |
| 1109 | the same or higher rank.@refill | ||
| 1110 | 1167 | ||
| 1111 | @findex hide-leaves | 1168 | @findex hide-leaves |
| 1112 | @findex show-branches | 1169 | @findex show-branches |
| @@ -1131,9 +1188,12 @@ they were invisible.@refill | |||
| 1131 | @kindex C-c C-a @r{(Outline mode)} | 1188 | @kindex C-c C-a @r{(Outline mode)} |
| 1132 | Two commands have a blanket effect on the whole file. @kbd{C-c C-t} | 1189 | Two commands have a blanket effect on the whole file. @kbd{C-c C-t} |
| 1133 | (@code{hide-body}) makes all body lines invisible, so that you see just | 1190 | (@code{hide-body}) makes all body lines invisible, so that you see just |
| 1134 | the outline structure. @kbd{C-c C-a} (@code{show-all}) makes all lines | 1191 | the outline structure (as a special exception, it will not hide lines |
| 1135 | visible. These commands can be thought of as a pair of opposites even | 1192 | at the top of the file, preceding the first header line, even though |
| 1136 | though @kbd{C-c C-a} applies to more than just body lines. | 1193 | these are technically body lines). @kbd{C-c C-a} (@code{show-all}) |
| 1194 | makes all lines visible. These commands can be thought of as a pair | ||
| 1195 | of opposites even though @kbd{C-c C-a} applies to more than just body | ||
| 1196 | lines. | ||
| 1137 | 1197 | ||
| 1138 | @findex hide-sublevels | 1198 | @findex hide-sublevels |
| 1139 | @kindex C-c C-q @r{(Outline mode)} | 1199 | @kindex C-c C-q @r{(Outline mode)} |
| @@ -1284,39 +1344,45 @@ automatically by putting this in your @file{.emacs} file: | |||
| 1284 | @cindex @TeX{} mode | 1344 | @cindex @TeX{} mode |
| 1285 | @cindex La@TeX{} mode | 1345 | @cindex La@TeX{} mode |
| 1286 | @cindex Sli@TeX{} mode | 1346 | @cindex Sli@TeX{} mode |
| 1347 | @cindex Doc@TeX{} mode | ||
| 1287 | @cindex mode, @TeX{} | 1348 | @cindex mode, @TeX{} |
| 1288 | @cindex mode, La@TeX{} | 1349 | @cindex mode, La@TeX{} |
| 1289 | @cindex mode, Sli@TeX{} | 1350 | @cindex mode, Sli@TeX{} |
| 1351 | @cindex mode, Doc@TeX{} | ||
| 1290 | @findex tex-mode | 1352 | @findex tex-mode |
| 1291 | @findex plain-tex-mode | 1353 | @findex plain-tex-mode |
| 1292 | @findex latex-mode | 1354 | @findex latex-mode |
| 1293 | @findex slitex-mode | 1355 | @findex slitex-mode |
| 1356 | @findex doctex-mode | ||
| 1294 | 1357 | ||
| 1295 | @TeX{} is a powerful text formatter written by Donald Knuth; it is also | 1358 | @TeX{} is a powerful text formatter written by Donald Knuth; it is also |
| 1296 | free, like GNU Emacs. La@TeX{} is a simplified input format for @TeX{}, | 1359 | free, like GNU Emacs. La@TeX{} is a simplified input format for @TeX{}, |
| 1297 | implemented by @TeX{} macros; it comes with @TeX{}. Sli@TeX{} is a special | 1360 | implemented by @TeX{} macros; it comes with @TeX{}. Sli@TeX{} is a special |
| 1298 | form of La@TeX{}.@footnote{Sli@TeX{} is obsoleted by the @samp{slides} | 1361 | form of La@TeX{}.@footnote{Sli@TeX{} is obsoleted by the @samp{slides} |
| 1299 | document class in recent La@TeX{} versions.} | 1362 | document class in recent La@TeX{} versions.} Doc@TeX{} (@file{.dtx}) |
| 1363 | is a special file format in which the La@TeX{} sources are written, | ||
| 1364 | combining sources with documentation. | ||
| 1300 | 1365 | ||
| 1301 | Emacs has a special @TeX{} mode for editing @TeX{} input files. | 1366 | Emacs has a special @TeX{} mode for editing @TeX{} input files. |
| 1302 | It provides facilities for checking the balance of delimiters and for | 1367 | It provides facilities for checking the balance of delimiters and for |
| 1303 | invoking @TeX{} on all or part of the file. | 1368 | invoking @TeX{} on all or part of the file. |
| 1304 | 1369 | ||
| 1305 | @vindex tex-default-mode | 1370 | @vindex tex-default-mode |
| 1306 | @TeX{} mode has three variants, Plain @TeX{} mode, La@TeX{} mode, and | 1371 | @TeX{} mode has four variants: Plain @TeX{} mode, La@TeX{} mode, |
| 1307 | Sli@TeX{} mode (these three distinct major modes differ only slightly). | 1372 | Sli@TeX{} mode, and Doc@TeX{} mode (these distinct major modes differ |
| 1308 | They are designed for editing the three different formats. The command | 1373 | only slightly). They are designed for editing the four different |
| 1309 | @kbd{M-x tex-mode} looks at the contents of the buffer to determine | 1374 | formats. The command @kbd{M-x tex-mode} looks at the contents of the |
| 1310 | whether the contents appear to be either La@TeX{} input or Sli@TeX{} | 1375 | buffer to determine whether the contents appear to be either La@TeX{} |
| 1311 | input; if so, it selects the appropriate mode. If the file contents do | 1376 | input, Sli@TeX{}, or Doc@TeX{} input; if so, it selects the |
| 1312 | not appear to be La@TeX{} or Sli@TeX{}, it selects Plain @TeX{} mode. | 1377 | appropriate mode. If the file contents do not appear to be La@TeX{}, |
| 1313 | If the contents are insufficient to determine this, the variable | 1378 | Sli@TeX{} or Doc@TeX{}, it selects Plain @TeX{} mode. If the contents |
| 1379 | are insufficient to determine this, the variable | ||
| 1314 | @code{tex-default-mode} controls which mode is used. | 1380 | @code{tex-default-mode} controls which mode is used. |
| 1315 | 1381 | ||
| 1316 | When @kbd{M-x tex-mode} does not guess right, you can use the commands | 1382 | When @kbd{M-x tex-mode} does not guess right, you can use the commands |
| 1317 | @kbd{M-x plain-tex-mode}, @kbd{M-x latex-mode}, and @kbd{M-x | 1383 | @kbd{M-x plain-tex-mode}, @kbd{M-x latex-mode}, @kbd{M-x slitex-mode}, |
| 1318 | slitex-mode} to select explicitly the particular variants of @TeX{} | 1384 | and @kbd{doctex-mode} to select explicitly the particular variants of |
| 1319 | mode. | 1385 | @TeX{} mode. |
| 1320 | 1386 | ||
| 1321 | @menu | 1387 | @menu |
| 1322 | * Editing: TeX Editing. Special commands for editing in TeX mode. | 1388 | * Editing: TeX Editing. Special commands for editing in TeX mode. |
diff --git a/man/xresources.texi b/man/xresources.texi index b1b7d230660..aaf7262d060 100644 --- a/man/xresources.texi +++ b/man/xresources.texi | |||
| @@ -7,10 +7,14 @@ | |||
| 7 | You can customize some X-related aspects of Emacs behavior using X | 7 | You can customize some X-related aspects of Emacs behavior using X |
| 8 | resources, as is usual for programs that use X. On MS-Windows, you | 8 | resources, as is usual for programs that use X. On MS-Windows, you |
| 9 | can customize some of the same aspects using the system registry. | 9 | can customize some of the same aspects using the system registry. |
| 10 | @xref{MS-Windows Registry}. X resources are the only way to customize | 10 | @xref{MS-Windows Registry}. |
| 11 | tooltip windows and LessTif menus, since the libraries that implement | 11 | |
| 12 | them don't provide for customization through Emacs. This appendix | 12 | When Emacs is built using an `X toolkit', such as Lucid or LessTif, |
| 13 | describes the X resources that Emacs recognizes and how to use them. | 13 | you need to use X resources to customize the appearance of the |
| 14 | widgets, including the menu-bar, scroll-bar, and dialog boxes. This | ||
| 15 | is because the libraries that implement these don't provide for | ||
| 16 | customization through Emacs. GTK+ widgets use a separate system of | ||
| 17 | `GTK resources', which we will also describe. | ||
| 14 | 18 | ||
| 15 | @menu | 19 | @menu |
| 16 | * Resources:: Using X resources with Emacs (in general). | 20 | * Resources:: Using X resources with Emacs (in general). |
| @@ -48,7 +52,8 @@ Registry, under the key @samp{HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs} | |||
| 48 | and then under the key @samp{HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs}. | 52 | and then under the key @samp{HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs}. |
| 49 | The menu and scrollbars are native widgets on MS-Windows, so they are | 53 | The menu and scrollbars are native widgets on MS-Windows, so they are |
| 50 | only customizable via the system-wide settings in the Display Control | 54 | only customizable via the system-wide settings in the Display Control |
| 51 | Panel. | 55 | Panel. You can also set resources using the @samp{-xrm} command line |
| 56 | option (see below.) | ||
| 52 | 57 | ||
| 53 | Programs define named resources with particular meanings. They also | 58 | Programs define named resources with particular meanings. They also |
| 54 | define how to group resources into named classes. For instance, in | 59 | define how to group resources into named classes. For instance, in |
| @@ -58,6 +63,11 @@ of the external border. Both of these resources are part of the | |||
| 58 | @samp{BorderWidth} class. Case distinctions are significant in these | 63 | @samp{BorderWidth} class. Case distinctions are significant in these |
| 59 | names. | 64 | names. |
| 60 | 65 | ||
| 66 | Every resource definition is associated with a specific program | ||
| 67 | name---the name of the executable file that you ran. For Emacs, that | ||
| 68 | is normally @samp{emacs}. To specify a definition for all instances | ||
| 69 | of Emacs, regardless of their names, use @samp{Emacs}. | ||
| 70 | |||
| 61 | In @file{~/.Xdefaults}, you can specify a value for a single resource | 71 | In @file{~/.Xdefaults}, you can specify a value for a single resource |
| 62 | on one line, like this: | 72 | on one line, like this: |
| 63 | 73 | ||
| @@ -86,11 +96,8 @@ emacs.borderWidth: 4 | |||
| 86 | 96 | ||
| 87 | The order in which the lines appear in the file does not matter. | 97 | The order in which the lines appear in the file does not matter. |
| 88 | Also, command-line options always override the X resources file. | 98 | Also, command-line options always override the X resources file. |
| 89 | 99 | Here is a list of X command-line options and their corresponding | |
| 90 | The string @samp{emacs} in the examples above is also a resource | 100 | resource names. |
| 91 | name. It actually represents the name of the executable file that you | ||
| 92 | invoke to run Emacs. If Emacs is installed under a different name, it | ||
| 93 | looks for resources under that name instead of @samp{emacs}. | ||
| 94 | 101 | ||
| 95 | @table @samp | 102 | @table @samp |
| 96 | @item -name @var{name} | 103 | @item -name @var{name} |
| @@ -272,6 +279,17 @@ especially slow X client/server links. | |||
| 272 | @item @code{verticalScrollBars} (class @code{ScrollBars}) | 279 | @item @code{verticalScrollBars} (class @code{ScrollBars}) |
| 273 | Give frames scroll bars if @samp{on}; don't have scroll bars if | 280 | Give frames scroll bars if @samp{on}; don't have scroll bars if |
| 274 | @samp{off}. | 281 | @samp{off}. |
| 282 | |||
| 283 | @item @code{visualClass} (class @code{VisualClass}) | ||
| 284 | Specify the ``visual'' that X should use. This tells X how to handle | ||
| 285 | colors. | ||
| 286 | |||
| 287 | The value should start with one of @samp{TrueColor}, | ||
| 288 | @samp{PseudoColor}, @samp{DirectColor}, @samp{StaticColor}, | ||
| 289 | @samp{GrayScale}, and @samp{StaticGray}, followed by | ||
| 290 | @samp{-@var{depth}}, where @var{depth} is the number of color planes. | ||
| 291 | Most terminals only allow a few ``visuals,'' and the @samp{dpyinfo} | ||
| 292 | program outputs information saying which ones. | ||
| 275 | @end table | 293 | @end table |
| 276 | 294 | ||
| 277 | @node Face Resources | 295 | @node Face Resources |
| @@ -552,31 +570,32 @@ The color for the border shadow, on the top and the left. | |||
| 552 | @cindex @file{~/.gtkrc-2.0} file | 570 | @cindex @file{~/.gtkrc-2.0} file |
| 553 | @cindex @file{~/.emacs.d/gtkrc} file | 571 | @cindex @file{~/.emacs.d/gtkrc} file |
| 554 | 572 | ||
| 555 | If the Emacs installed at your site was built to use the GTK widget set, | 573 | If Emacs was built to use the GTK widget set, then the menu bar, |
| 556 | then the menu bar, scroll bar and the dialogs can be customized with | 574 | scroll bar and the dialogs are customized with the standard GTK |
| 557 | the standard GTK @file{~/.gtkrc-2.0} file or with the Emacs specific | 575 | customization file, @file{~/.gtkrc-2.0}, or with the Emacs specific |
| 558 | @file{~/.emacs.d/gtkrc} file; note that these files are only for | 576 | file @file{~/.emacs.d/gtkrc}. We recommend that you use |
| 559 | customizing specific GTK widget features. To customize Emacs font, | 577 | @file{~/.emacs.d/gtkrc} for customizations, since @file{~/.gtkrc-2.0} |
| 560 | background, faces etc., use the normal X resources, see @ref{Resources}. | 578 | seems to be ignored when running GConf with GNOME. These files apply |
| 579 | only to GTK widget features. To customize Emacs font, background, | ||
| 580 | faces, etc., use the normal X resources (@pxref{Resources}). | ||
| 561 | 581 | ||
| 562 | Some GTK themes override these mechanisms, which means that using | 582 | Some GTK themes override these mechanisms, which means that using |
| 563 | these mechanisms will not work to customize them. We recommend that | 583 | these mechanisms will not work to customize them. |
| 564 | you use @file{~/.emacs.d/gtkrc} for customizations, since | ||
| 565 | @file{~/.gtkrc-2.0} seems to be ignored when running GConf with GNOME. | ||
| 566 | 584 | ||
| 567 | In these files you first defines a style and then how to apply that style | 585 | In these files you first define a style and say what it means; then |
| 568 | to widgets (@pxref{GTK widget names}). Here is an example of how to | 586 | you specify to apply the style to various widget types (@pxref{GTK |
| 569 | change the font for Emacs menus: | 587 | widget names}). Here is an example of how to change the font for |
| 588 | Emacs menus: | ||
| 570 | 589 | ||
| 571 | @smallexample | 590 | @smallexample |
| 572 | # This is a comment. | 591 | # @r{Define the style @samp{metafont}.} |
| 573 | style "menufont" | 592 | style "menufont" |
| 574 | @{ | 593 | @{ |
| 575 | font_name = "helvetica bold 14" # This is a Pango font name | 594 | font_name = "helvetica bold 14" # This is a Pango font name |
| 576 | @} | 595 | @} |
| 577 | 596 | ||
| 597 | # @r{Specify that widget type @samp{*emacs-menuitem*} uses @samp{metafont}.} | ||
| 578 | widget "*emacs-menuitem*" style "menufont" | 598 | widget "*emacs-menuitem*" style "menufont" |
| 579 | |||
| 580 | @end smallexample | 599 | @end smallexample |
| 581 | 600 | ||
| 582 | Here is a more elaborate example, showing how to change the parts of | 601 | Here is a more elaborate example, showing how to change the parts of |
| @@ -585,72 +604,74 @@ the scroll bar: | |||
| 585 | @smallexample | 604 | @smallexample |
| 586 | style "scroll" | 605 | style "scroll" |
| 587 | @{ | 606 | @{ |
| 588 | fg[NORMAL] = "red"@ @ @ @ @ # The arrow color. | 607 | fg[NORMAL] = "red"@ @ @ @ @ # @r{The arrow color.} |
| 589 | bg[NORMAL] = "yellow"@ @ # The thumb and background around the arrow. | 608 | bg[NORMAL] = "yellow"@ @ # @r{The thumb and background around the arrow.} |
| 590 | bg[ACTIVE] = "blue"@ @ @ @ # The trough color. | 609 | bg[ACTIVE] = "blue"@ @ @ @ # @r{The trough color.} |
| 591 | bg[PRELIGHT] = "white"@ # The thumb color when the mouse is over it. | 610 | bg[PRELIGHT] = "white"@ # @r{The thumb color when the mouse is over it.} |
| 592 | @} | 611 | @} |
| 593 | 612 | ||
| 594 | widget "*verticalScrollBar*" style "scroll" | 613 | widget "*verticalScrollBar*" style "scroll" |
| 595 | @end smallexample | 614 | @end smallexample |
| 596 | 615 | ||
| 597 | There are some things you can set without using any style or widget name, | 616 | There are also parameters that affect GTK as a whole. For example, |
| 598 | which affect GTK as a whole. Most of these are poorly documented, but can | 617 | the property @code{gtk-font-name} sets the default font for GTK. You |
| 599 | be found in the `Properties' section of the documentation page for | 618 | must use Pango font names (@pxref{GTK styles}). A GTK resources file |
| 600 | @code{GtkSetting}, in the GTK document references below. | 619 | that just sets a default font looks like this: |
| 601 | |||
| 602 | One property of interest is @code{gtk-font-name} which sets the default | ||
| 603 | font for GTK; you must use Pango font names (@pxref{GTK styles}). A | ||
| 604 | @file{~/.gtkrc-2.0} file that just sets a default font looks like this: | ||
| 605 | 620 | ||
| 606 | @smallexample | 621 | @smallexample |
| 607 | gtk-font-name = "courier 12" | 622 | gtk-font-name = "courier 12" |
| 608 | @end smallexample | 623 | @end smallexample |
| 609 | 624 | ||
| 610 | 625 | The GTK resources file is fully described in the GTK API document. | |
| 611 | If GTK at your site is installed under @var{prefix}, | 626 | This can be found in |
| 612 | the resource file syntax is fully described in the GTK API | 627 | @file{@var{prefix}/share/gtk-doc/html/gtk/gtk-resource-files.html}, |
| 613 | document | 628 | where @file{prefix} is the directory in which the GTK libraries were |
| 614 | @file{@var{prefix}/share/gtk-doc/html/gtk/gtk-resource-files.html}. | 629 | installed (usually @file{/usr} or @file{/usr/local}). You can also |
| 615 | @var{prefix} is usually @file{/usr} or @file{/usr/local}. | 630 | find the document online, at |
| 616 | You can find the same document online at | ||
| 617 | @uref{http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html}. | 631 | @uref{http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html}. |
| 618 | 632 | ||
| 619 | |||
| 620 | @menu | 633 | @menu |
| 621 | * GTK widget names:: How widgets in GTK are named in general. | 634 | * GTK widget names:: How widgets in GTK are named in general. |
| 622 | * GTK names in Emacs:: GTK widget names in Emacs. | 635 | * GTK Names in Emacs:: GTK widget names in Emacs. |
| 623 | * GTK styles:: What can be customized in a GTK widget. | 636 | * GTK styles:: What can be customized in a GTK widget. |
| 624 | @end menu | 637 | @end menu |
| 625 | 638 | ||
| 626 | |||
| 627 | @node GTK widget names | 639 | @node GTK widget names |
| 628 | @appendixsubsec GTK widget names | 640 | @appendixsubsec GTK widget names |
| 629 | @cindex GTK widget names | 641 | @cindex GTK widget names |
| 630 | 642 | ||
| 631 | Widgets are specified by widget class or by widget name. | 643 | A GTK widget is specified by its @dfn{widget class} and |
| 632 | The widget class is the type of the widget, for example @code{GtkMenuBar}. | 644 | @dfn{widget name}. The widget class is the type of the widget: for |
| 633 | The widget name is the name given to a specific widget within a program. | 645 | example, @code{GtkMenuBar}. The widget name is the name given to a |
| 634 | A widget always have a class but it is not mandatory to give a name to | 646 | specific widget. A widget always has a class, but need not have a |
| 635 | a widget. Absolute names are sequences of widget names or | 647 | name. |
| 636 | widget classes, corresponding to hierarchies of widgets embedded within | ||
| 637 | other widgets. For example, if a @code{GtkWindow} contains a @code{GtkVBox} | ||
| 638 | which in turn contains a @code{GtkMenuBar}, the absolute class name | ||
| 639 | is @code{GtkWindow.GtkVBox.GtkMenuBar}. | ||
| 640 | 648 | ||
| 641 | @noindent | 649 | @dfn{Absolute names} are sequences of widget names or widget |
| 642 | If the widgets are named ``top'', ``box'' and ``menubar'', the absolute | 650 | classes, corresponding to hierarchies of widgets embedded within |
| 643 | widget name is @code{top.box.menubar}, | 651 | other widgets. For example, if a @code{GtkWindow} named @code{top} |
| 652 | contains a @code{GtkVBox} named @code{box}, which in turn contains | ||
| 653 | a @code{GtkMenuBar} called @code{menubar}, the absolute class name | ||
| 654 | of the menu-bar widget is @code{GtkWindow.GtkVBox.GtkMenuBar}, and | ||
| 655 | its absolute widget name is @code{top.box.menubar}. | ||
| 644 | 656 | ||
| 645 | When assigning a style to a widget, you can use the absolute class | 657 | When assigning a style to a widget, you can use the absolute class |
| 646 | name or the absolute widget name. | 658 | name or the absolute widget name. |
| 647 | There are two commands: @code{widget_class} will assign a style to | 659 | |
| 648 | widgets, matching only against the absolute class name. | 660 | There are two commands to specify changes for widgets: |
| 649 | The command @code{widget} will match the absolute widget name, | 661 | |
| 650 | but if there is no name for a widget in the hierarchy, the class is matched. | 662 | @table @asis |
| 651 | These commands require the absolute name and the style name to be | 663 | @item @code{widget_class} |
| 652 | within double quotes. These commands are written at the top level in a | 664 | specifies a style for widgets based on the absolute class name. |
| 653 | @file{~/.gtkrc-2.0} file, like this: | 665 | |
| 666 | @item @code{widget} | ||
| 667 | specifies a style for widgets based on the absolute class name, | ||
| 668 | or just the class. | ||
| 669 | @end table | ||
| 670 | |||
| 671 | @noindent | ||
| 672 | You must specify the class and the style in double-quotes, and put | ||
| 673 | these commands at the top level in the GTK customization file, like | ||
| 674 | this: | ||
| 654 | 675 | ||
| 655 | @smallexample | 676 | @smallexample |
| 656 | style "menufont" | 677 | style "menufont" |
| @@ -662,18 +683,17 @@ widget "top.box.menubar" style "menufont" | |||
| 662 | widget_class "GtkWindow.GtkVBox.GtkMenuBar" style "menufont" | 683 | widget_class "GtkWindow.GtkVBox.GtkMenuBar" style "menufont" |
| 663 | @end smallexample | 684 | @end smallexample |
| 664 | 685 | ||
| 665 | 686 | Matching of absolute names uses shell wildcard syntax: @samp{*} | |
| 666 | Matching of absolute names is done with shell ``glob'' syntax, that is | 687 | matches zero or more characters and @samp{?} matches one character. |
| 667 | @samp{*} matches zero or more characters and @samp{?} matches one character. | 688 | This example assigns @code{base_style} to all widgets: |
| 668 | So the following would assign @code{base_style} to all widgets: | ||
| 669 | 689 | ||
| 670 | @smallexample | 690 | @smallexample |
| 671 | widget "*" style "base_style" | 691 | widget "*" style "base_style" |
| 672 | @end smallexample | 692 | @end smallexample |
| 673 | 693 | ||
| 674 | Given the absolute class name @code{GtkWindow.GtkVBox.GtkMenuBar} | 694 | Given the absolute class name @code{GtkWindow.GtkVBox.GtkMenuBar} |
| 675 | and the corresponding absolute widget name @code{top.box.menubar}, | 695 | and the corresponding absolute widget name @code{top.box.menubar}, all |
| 676 | the following all assign @code{my_style} to the menu bar: | 696 | these examples specify @code{my_style} for the menu bar: |
| 677 | 697 | ||
| 678 | @smallexample | 698 | @smallexample |
| 679 | widget_class "GtkWindow.GtkVBox.GtkMenuBar" style "my_style" | 699 | widget_class "GtkWindow.GtkVBox.GtkMenuBar" style "my_style" |
| @@ -685,17 +705,17 @@ widget "*menubar" style "my_style" | |||
| 685 | widget "*menu*" style "my_style" | 705 | widget "*menu*" style "my_style" |
| 686 | @end smallexample | 706 | @end smallexample |
| 687 | 707 | ||
| 688 | @node GTK names in Emacs | 708 | @node GTK Names in Emacs |
| 689 | @appendixsubsec GTK names in Emacs | 709 | @appendixsubsec GTK Widget Names in Emacs |
| 690 | @cindex GTK widget names | 710 | @cindex GTK widget names |
| 691 | @cindex GTK widget classes | 711 | @cindex GTK widget classes |
| 692 | 712 | ||
| 693 | In Emacs the top level widget for a frame is a @code{GtkWindow} that | 713 | In Emacs, the top level widget for a frame is a @code{GtkWindow} |
| 694 | contains a @code{GtkVBox}. The @code{GtkVBox} contains the | 714 | that contains a @code{GtkVBox}. The @code{GtkVBox} contains the |
| 695 | @code{GtkMenuBar} and a @code{GtkFixed} widget. | 715 | @code{GtkMenuBar} and a @code{GtkFixed} widget. The vertical scroll |
| 696 | The vertical scroll bars, @code{GtkVScrollbar}, | 716 | bars, @code{GtkVScrollbar}, are contained in the @code{GtkFixed} |
| 697 | are contained in the @code{GtkFixed} widget. | 717 | widget. The text you write in Emacs is drawn in the @code{GtkFixed} |
| 698 | The text you write in Emacs is drawn in the @code{GtkFixed} widget. | 718 | widget. |
| 699 | 719 | ||
| 700 | Dialogs in Emacs are @code{GtkDialog} widgets. The file dialog is a | 720 | Dialogs in Emacs are @code{GtkDialog} widgets. The file dialog is a |
| 701 | @code{GtkFileSelection} widget. | 721 | @code{GtkFileSelection} widget. |
| @@ -759,14 +779,14 @@ widget "*emacs-filedialog* style "my_file_style" | |||
| 759 | widget "*emacs-menuitem* style "my_menu_style" | 779 | widget "*emacs-menuitem* style "my_menu_style" |
| 760 | @end smallexample | 780 | @end smallexample |
| 761 | 781 | ||
| 762 | An alternative is to put customization into @file{~/.emacs.d/gtkrc}. | 782 | If you specify a customization in @file{~/.emacs.d/gtkrc}, then it |
| 763 | This file is only read by Emacs, so anything in @file{~/.emacs.d/gtkrc} | 783 | automatically applies only to Emacs, since other programs don't read |
| 764 | affects Emacs but leaves other applications unaffected. | 784 | that file. For example, the drop down menu in the file dialog can not |
| 765 | For example, the drop down menu in the file dialog can not | 785 | be customized by any absolute widget name, only by an absolute class |
| 766 | be customized by any absolute widget name, only by an absolute | 786 | name. This is because the widgets in the drop down menu do not |
| 767 | class name. This is so because the widgets in the drop down menu does not | 787 | have names and the menu is not contained in the Emacs GtkWindow. To |
| 768 | have names and the menu is not contained in the Emacs GtkWindow. | 788 | have all menus in Emacs look the same, use this in |
| 769 | To have all menus in Emacs look the same, use this in @file{~/.emacs.d/gtkrc}: | 789 | @file{~/.emacs.d/gtkrc}: |
| 770 | 790 | ||
| 771 | @smallexample | 791 | @smallexample |
| 772 | widget_class "*Menu*" style "my_menu_style" | 792 | widget_class "*Menu*" style "my_menu_style" |
| @@ -777,16 +797,16 @@ widget_class "*Menu*" style "my_menu_style" | |||
| 777 | @cindex GTK styles | 797 | @cindex GTK styles |
| 778 | 798 | ||
| 779 | In a GTK style you specify the appearance widgets shall have. You | 799 | In a GTK style you specify the appearance widgets shall have. You |
| 780 | can specify foreground and background color, background pixmap and font. | 800 | can specify foreground and background color, background pixmap and |
| 781 | The edit widget (where you edit the text) in Emacs is a GTK widget, | 801 | font. The edit widget (where you edit the text) in Emacs is a GTK |
| 782 | but trying to specify a style for the edit widget will have no effect. | 802 | widget, but trying to specify a style for the edit widget will have no |
| 783 | This is so that Emacs compiled for GTK is compatible with Emacs compiled | 803 | effect. This is so that Emacs compiled for GTK is compatible with |
| 784 | for other X toolkits. The settings for foreground, background and font | 804 | Emacs compiled for other X toolkits. The settings for foreground, |
| 785 | for the edit widget is taken from the X resources; @pxref{Resources}. | 805 | background and font for the edit widget is taken from the X resources; |
| 786 | Here is an example of two style declarations, ``default'' and ``ruler'': | 806 | @pxref{Resources}. Here is an example of two style declarations, |
| 807 | @samp{default} and @samp{ruler}: | ||
| 787 | 808 | ||
| 788 | @smallexample | 809 | @smallexample |
| 789 | |||
| 790 | pixmap_path "/usr/share/pixmaps:/usr/include/X11/pixmaps" | 810 | pixmap_path "/usr/share/pixmaps:/usr/include/X11/pixmaps" |
| 791 | 811 | ||
| 792 | style "default" | 812 | style "default" |
| @@ -821,12 +841,13 @@ style "ruler" = "default" | |||
| 821 | 841 | ||
| 822 | @end smallexample | 842 | @end smallexample |
| 823 | 843 | ||
| 824 | The style ``ruler'' inherits from ``default''. This way you can build | 844 | The style @samp{ruler} inherits from @samp{default}. This way you can build |
| 825 | on existing styles. The syntax for fonts and colors is described below. | 845 | on existing styles. The syntax for fonts and colors is described below. |
| 826 | 846 | ||
| 827 | As this example shows, it is possible to specify several values | 847 | As this example shows, it is possible to specify several values for |
| 828 | for foreground and background depending on which state the widget has. | 848 | foreground and background depending on the widget's @dfn{state}. The |
| 829 | The possible states are | 849 | possible states are: |
| 850 | |||
| 830 | @table @code | 851 | @table @code |
| 831 | @item NORMAL | 852 | @item NORMAL |
| 832 | This is the default state for widgets. | 853 | This is the default state for widgets. |
| @@ -846,71 +867,73 @@ be selected text or items selected in a list. | |||
| 846 | There is no place in Emacs where this setting has any effect. | 867 | There is no place in Emacs where this setting has any effect. |
| 847 | @item INSENSITIVE | 868 | @item INSENSITIVE |
| 848 | This is the state for widgets that are visible, but they can not be | 869 | This is the state for widgets that are visible, but they can not be |
| 849 | manipulated like they normally can. For example, buttons that can't be | 870 | manipulated in the usual way---for example, buttons that can't be |
| 850 | pressed and menu items that can't be selected. | 871 | pressed, and disabled menu items. To display disabled menu items in |
| 851 | Text for menu items that are not available can be set to yellow with | 872 | yellow, use @code{fg[INSENSITIVE] = "yellow"}. |
| 852 | @code{fg[INSENSITIVE] = "yellow"}. | ||
| 853 | @end table | 873 | @end table |
| 854 | 874 | ||
| 855 | Here are the things that can go in a style declaration: | 875 | Here are the things that can go in a style declaration: |
| 856 | 876 | ||
| 857 | @table @code | 877 | @table @code |
| 858 | @item bg[@var{state}] = @var{color} | 878 | @item bg[@var{state}] = @var{color} |
| 859 | This is the background color widgets use. This background is not used for | 879 | This specifies the background color for the widget. Note that |
| 860 | editable text, use @code{base} for that. | 880 | editable text doesn't use @code{bg}; it uses @code{base} instead. |
| 861 | 881 | ||
| 862 | @item base[@var{state}] = @var{color} | 882 | @item base[@var{state}] = @var{color} |
| 863 | This is the background color for editable text. | 883 | This specifies the background color for editable text. In Emacs, this |
| 864 | In Emacs, this color is used for the background of the text fields in the | 884 | color is used for the background of the text fields in the file |
| 865 | file dialog. | 885 | dialog. |
| 866 | 886 | ||
| 867 | @item bg_pixmap[@var{state}] = "@var{pixmap}" | 887 | @item bg_pixmap[@var{state}] = "@var{pixmap}" |
| 868 | You can specify a pixmap to be used instead of the background color. | 888 | This specifies an image background (instead of a background color). |
| 869 | @var{pixmap} is a file name. GTK can use a number of file formats, | 889 | @var{pixmap} should be the image file name. GTK can use a number of |
| 870 | including XPM, XBM, GIF, JPEG and PNG. If you want a widget to use the same | 890 | image file formats, including XPM, XBM, GIF, JPEG and PNG. If you |
| 871 | pixmap as its parent, use @samp{<parent>}. If you don't want any | 891 | want a widget to use the same image as its parent, use |
| 872 | pixmap use @samp{<none>}. Using @samp{<none>} can be useful | 892 | @samp{<parent>}. If you don't want any image, use @samp{<none>}. |
| 873 | if your style inherits a style that does specify a pixmap. | 893 | @samp{<none>} is the way to cancel a background image inherited from a |
| 874 | 894 | parent style. | |
| 875 | GTK looks for the pixmap in directories specified in @code{pixmap_path}. | 895 | |
| 876 | It is not possible to refer to a file by its absolute path name. | 896 | You can't specify the file by its absolute file name. GTK looks for |
| 877 | @code{pixmap_path} is a colon-separated list of directories within double | 897 | the pixmap file in directories specified in @code{pixmap_path}. |
| 878 | quotes, specified at the top level in a @file{gtkrc} file (i.e. not inside | 898 | @code{pixmap_path} is a colon-separated list of directories within |
| 879 | a style definition; see example above): | 899 | double quotes, specified at the top level in a @file{gtkrc} file |
| 900 | (i.e. not inside a style definition; see example above): | ||
| 880 | 901 | ||
| 881 | @smallexample | 902 | @smallexample |
| 882 | pixmap_path "/usr/share/pixmaps:/usr/include/X11/pixmaps" | 903 | pixmap_path "/usr/share/pixmaps:/usr/include/X11/pixmaps" |
| 883 | @end smallexample | 904 | @end smallexample |
| 884 | 905 | ||
| 885 | @item fg[@var{state}] = @var{color} | 906 | @item fg[@var{state}] = @var{color} |
| 886 | This is the foreground color widgets use. This is the color | 907 | This specifies the foreground color for widgets to use. It is the |
| 887 | of text in menus and buttons. It is also the color for the arrows in the | 908 | color of text in menus and buttons, and the color for the arrows in |
| 888 | scroll bar. For editable text, use @code{text}. | 909 | the scroll bar. For editable text, use @code{text}. |
| 889 | 910 | ||
| 890 | @item text[@var{state}] = @var{color} | 911 | @item text[@var{state}] = @var{color} |
| 891 | This is the color for editable text. In Emacs, this color is used for the | 912 | This is the color for editable text. In Emacs, this color is used for the |
| 892 | text fields in the file dialog. | 913 | text fields in the file dialog. |
| 893 | 914 | ||
| 894 | @item font_name = "@var{font}" | 915 | @item font_name = "@var{font}" |
| 895 | This is the font a widget shall use. @var{font} is a Pango font name, | 916 | This specifies the the font for text in the widget. @var{font} is a |
| 896 | for example ``Sans Italic 10'', ``Helvetica Bold 12'', ``Courier 14'', | 917 | Pango font name, for example @samp{Sans Italic 10}, @samp{Helvetica |
| 897 | ``Times 18''. See below for exact syntax. The names are case insensitive. | 918 | Bold 12}, @samp{Courier 14}, @samp{Times 18}. See below for exact |
| 919 | syntax. The names are case insensitive. | ||
| 898 | @end table | 920 | @end table |
| 899 | 921 | ||
| 900 | Colors are specified in three ways, a name, a hexadecimal form or | 922 | There are three ways to specify a color: by name, in hexadecimal |
| 901 | an RGB triplet. | 923 | form, and with an RGB triplet. |
| 902 | 924 | ||
| 903 | @noindent | 925 | @noindent |
| 904 | A color name is written within double quotes, for example @code{"red"}. | 926 | A color name is written within double quotes, for example @code{"red"}. |
| 905 | 927 | ||
| 906 | @noindent | 928 | @noindent |
| 907 | A hexadecimal form is written within double quotes. There are four forms, | 929 | Hexadecimal form is the same as in X: |
| 908 | @code{#rrrrggggbbbb}, @code{#rrrgggbbb}, | 930 | @code{#@var{rrrr}@var{gggg}@var{bbbb}}, where all three color specs |
| 909 | @code{#rrggbb}, or @code{#rgb}. In each of these r, g and b are hex digits. | 931 | must have the same number of hex digits (1, 2, 3 or 4). |
| 910 | 932 | ||
| 911 | @noindent | 933 | @noindent |
| 912 | An RGB triplet looks like @code{@{ r, g, b @}}, where r, g and b are either | 934 | An RGB triplet looks like @code{@{ @var{r}, @var{g}, @var{b} @}}, |
| 913 | integers in the range 0-65535 or floats in the range 0.0-1.0. | 935 | where @var{r}, @var{g} and @var{b} are either integers in the range |
| 936 | 0-65535 or floats in the range 0.0-1.0. | ||
| 914 | 937 | ||
| 915 | Pango font names have the form ``@var{family-list} @var{style-options} | 938 | Pango font names have the form ``@var{family-list} @var{style-options} |
| 916 | @var{size}''. | 939 | @var{size}''. |
| @@ -935,8 +958,9 @@ these is @code{normal}. | |||
| 935 | 958 | ||
| 936 | @noindent | 959 | @noindent |
| 937 | A `style' corresponds to the fourth part of an X font name. In X font | 960 | A `style' corresponds to the fourth part of an X font name. In X font |
| 938 | names it is the character ``r'', ``i'' or ``o''; in Pango font names the | 961 | names it is the character @samp{r}, @samp{i} or @samp{o}; in Pango |
| 939 | corresponding values are @code{normal}, @code{italic}, or @code{oblique}. | 962 | font names the corresponding values are @code{normal}, @code{italic}, |
| 963 | or @code{oblique}. | ||
| 940 | 964 | ||
| 941 | @noindent | 965 | @noindent |
| 942 | A `variant' is either @code{normal} or @code{small-caps}. | 966 | A `variant' is either @code{normal} or @code{small-caps}. |