Sync up with r21-4-14-chise-0_21-17.
[chise/xemacs-chise.git] / info / xemacs.info-14
1 This is ../info/xemacs.info, produced by makeinfo version 4.0b from
2 xemacs/xemacs.texi.
3
4 INFO-DIR-SECTION XEmacs Editor
5 START-INFO-DIR-ENTRY
6 * XEmacs: (xemacs).             XEmacs Editor.
7 END-INFO-DIR-ENTRY
8
9    This file documents the XEmacs editor.
10
11    Copyright (C) 1985, 1986, 1988 Richard M. Stallman.  Copyright (C)
12 1991, 1992, 1993, 1994 Lucid, Inc.  Copyright (C) 1993, 1994 Sun
13 Microsystems, Inc.  Copyright (C) 1995 Amdahl Corporation.
14
15    Permission is granted to make and distribute verbatim copies of this
16 manual provided the copyright notice and this permission notice are
17 preserved on all copies.
18
19    Permission is granted to copy and distribute modified versions of
20 this manual under the conditions for verbatim copying, provided also
21 that the sections entitled "The GNU Manifesto", "Distribution" and "GNU
22 General Public License" are included exactly as in the original, and
23 provided that the entire resulting derived work is distributed under the
24 terms of a permission notice identical to this one.
25
26    Permission is granted to copy and distribute translations of this
27 manual into another language, under the above conditions for modified
28 versions, except that the sections entitled "The GNU Manifesto",
29 "Distribution" and "GNU General Public License" may be included in a
30 translation approved by the author instead of in the original English.
31
32 \1f
33 File: xemacs.info,  Node: Available Packages,  Prev: Creating Packages,  Up: Packages
34
35 Available Packages:
36 ===================
37
38    This section lists the Lisp packages that are currently available
39 from xemacs.org and it's mirrors.  If a particular package that you are
40 looking for isn't here, please send a message to the XEmacs Beta list
41 <xemacs-beta@xemacs.org>.
42
43    This data is up-to-date as of January 17, 2001.
44
45 Library Packages (libs)
46 -----------------------
47
48    These packages are required to build and support most of the rest of
49 XEmacs.  By design, xemacs-base is a `regular' package.  Use restraint
50 when adding new files there as it is required by almost everything.
51
52 `Sun'
53      Support for Sparcworks.
54
55 `apel'
56      A Portable Emacs Library.  Used by XEmacs MIME support.
57
58 `dired'
59      The DIRectory EDitor is for manipulating, and running commands on
60      files in a directory.
61
62 `edebug'
63      A Lisp debugger.
64
65 `efs'
66      Treat files on remote systems the same as local files.
67
68 `elib'
69      Portable Emacs Lisp utilities library.
70
71 `fsf-compat'
72      FSF Emacs compatibility files.
73
74 `mail-lib'
75      Fundamental lisp files for providing email support.
76
77 `sounds-au'
78      XEmacs Sun sound files.
79
80 `sounds-wav'
81      XEmacs Microsoft sound files.
82
83 `tooltalk'
84      Support for building with Tooltalk.
85
86 `xemacs-base'
87      Fundamental XEmacs support.  Install this unless you wish a totally
88      naked XEmacs.
89
90 `xemacs-devel'
91      XEmacs Lisp developer support.  This package contains utilities for
92      supporting Lisp development.  It is a single-file package so it
93      may be tailored.
94
95 Communications Packages (comm)
96 ------------------------------
97
98    These packages provide support for various communications, primarily
99 email and usenet.
100
101 `bbdb'
102      The Big Brother Data Base
103
104 `eicq'
105      ICQ Client developed and tested on Linux x86; only supported on
106      that platform
107
108 `eudc'
109      Emacs Unified Directory Client (LDAP, PH).
110
111 `footnote'
112      Footnoting in mail message editing modes.
113
114 `gnats'
115      XEmacs bug reports.
116
117 `gnus'
118      The Gnus Newsreader and Mailreader.
119
120 `mailcrypt'
121      Support for messaging encryption with PGP.
122
123 `mew'
124      Messaging in an Emacs World.
125
126 `mh-e'
127      Front end support for MH.
128
129 `net-utils'
130      Miscellaneous Networking Utilities.  This is a single-file package
131      and files may be deleted at will.
132
133 `rmail'
134      An obsolete Emacs mailer.  If you do not already use it don't
135      start.
136
137 `supercite'
138      An Emacs citation tool.  Useful with all Emacs Mailers and
139      Newsreaders.
140
141 `tm'
142      Emacs MIME support. Not needed for Gnus >= 5.8.0
143
144 `vm'
145      An Emacs mailer.
146
147 `w3'
148      A Web browser.
149
150 `zenirc'
151      ZENIRC IRC Client.
152
153 Games and Amusements (games)
154 ----------------------------
155
156    All work and no play...
157
158 `cookie'
159      Spook and Yow (Zippy quotes).
160
161 `games'
162      Tetris, Sokoban, and Snake.
163
164 `mine'
165      Minehunt.
166
167 `misc-games'
168      Other amusements and diversions.
169
170 Mule Support (mule)
171 -------------------
172
173    MULti-lingual Enhancement.  Support for world scripts such as Latin,
174 Arabic, Cyrillic, Chinese, Japanese, Greek, Hebrew etc.  To use these
175 packages your XEmacs must be compiled with Mule support.
176
177 `edict'
178      Lisp Interface to EDICT, Kanji Dictionary.
179
180 `egg-its'
181      Wnn (4.2 and 6) support.  SJ3 support.  Must be installed prior to
182      XEmacs build.
183
184 `leim'
185      Quail.  Used for everything other than English and Japanese.
186
187 `locale'
188      Used for localized menubars (French and Japanese) and localized
189      splash screens (Japanese).
190
191 `lookup'
192      Dictionary support. (This isn't an English dictionary program)
193
194 `mule-base'
195      Basic Mule support.  Must be installed prior to building with Mule.
196
197 `skk'
198      Another Japanese Language Input Method.  Can be used without a
199      separate process running as a dictionary server.
200
201 Productivity Packages (oa)
202 --------------------------
203
204    Things to make life a little easier.
205
206 `calc'
207      Emacs calculator.
208
209 `calendar'
210      Calendar and diary support.
211
212 `edit-utils'
213      Single file lisp packages for various XEmacs goodies.  Load this
214      and weed out the junk you don't want.
215
216 `forms'
217      Forms editing support (obsolete, use the built-in Widget instead).
218
219 `frame-icon'
220      Provide a WM icon based on major mode.
221
222 `hm--html-menus'
223      HTML editing.
224
225 `ispell'
226      Spell-checking with ispell.
227
228 `pc'
229      PC style interface emulation.
230
231 `psgml'
232      Validated HTML/SGML editing.
233
234 `sgml'
235      SGML/Linuxdoc-SGML editing.
236
237 `slider'
238      User interface tool.
239
240 `speedbar'
241      Provides a separate frame with convenient references.
242
243 `strokes'
244      Mouse enhancement utility.
245
246 `text-modes'
247      Various single file lisp packages for editing text files.
248
249 `time'
250      Display time & date on the modeline.
251
252 Operating System Utilities (os)
253 -------------------------------
254
255    Tools for working with the operating system.
256
257 `eshell'
258      Command shell implemented entirely in Emacs Lisp.
259
260 `eterm'
261      Terminal emulator.
262
263 `igrep'
264      Enhanced front-end for Grep.
265
266 `ilisp'
267      Front-end for Inferior Lisp.
268
269 `os-utils'
270      Miscellaneous single-file O/S utilities, for printing, archiving,
271      compression, remote shells, etc.
272
273 `pcomplete'
274      Provides programmatic completion.
275
276 `ps-print-nomule'
277      Old, but no-Mule safe ps-print.
278
279 `view-process'
280      A Unix process browsing tool.
281
282 Program Editing Support (prog)
283 ------------------------------
284
285    XEmacs supports a multitude of programming languages.  These
286 packages will help your coding.
287
288 `ada'
289      Ada language support.
290
291 `c-support'
292      Basic single-file add-ons for editing C code.
293
294 `cc-mode'
295      C, C++ and Java language support.
296
297 `debug'
298      GUD, gdb, dbx debugging support.
299
300 `ediff'
301      Interface over patch.
302
303 `emerge'
304      Another interface over patch.
305
306 `idlwave'
307      Editing and Shell mode for the Interactive Data Language.
308
309 `jde'
310      Java language and development support.
311
312 `pcl-cvs'
313      CVS frontend.
314
315 `prog-modes'
316      Miscellaneous single-file lisp files for various programming
317      languages.
318
319 `scheme'
320      Front-end support for Inferior Scheme.
321
322 `semantic'
323      Semantic bovinator.
324
325 `sh-script'
326      Support for editing shell scripts.
327
328 `vc'
329      Version Control for Free systems.
330
331 `vc-cc'
332      Version Control for ClearCase.  This package will shortly be
333      replaced with clearcase.el
334
335 `vhdl'
336      Support for VHDL.
337
338 Word Processing (wp)
339 --------------------
340
341    Working with text.
342
343 `auctex'
344      Basic TeX/LaTeX support.
345
346 `crisp'
347      Crisp/Brief emulation.
348
349 `edt'
350      DEC EDIT/EDT emulation.
351
352 `reftex'
353      Emacs support for LaTeX cross-references, citations.
354
355 `texinfo'
356      XEmacs TeXinfo support.
357
358 `textools'
359      Single-file TeX support.
360
361 `tpu'
362      DEC EDIT/TPU support.
363
364 `viper'
365      VI emulation support.
366
367 \1f
368 File: xemacs.info,  Node: Abbrevs,  Next: Picture,  Prev: Running,  Up: Top
369
370 Abbrevs
371 *******
372
373    An "abbrev" is a word which "expands" into some different text.
374 Abbrevs are defined by the user to expand in specific ways.  For
375 example, you might define `foo' as an abbrev expanding to `find outer
376 otter'.  With this abbrev defined, you would be able to get `find outer
377 otter ' into the buffer by typing `f o o <SPC>'.
378
379    Abbrevs expand only when Abbrev mode (a minor mode) is enabled.
380 Disabling Abbrev mode does not cause abbrev definitions to be discarded,
381 but they do not expand until Abbrev mode is enabled again.  The command
382 `M-x abbrev-mode' toggles Abbrev mode; with a numeric argument, it
383 turns Abbrev mode on if the argument is positive, off otherwise.  *Note
384 Minor Modes::.  `abbrev-mode' is also a variable; Abbrev mode is on
385 when the variable is non-`nil'.  The variable `abbrev-mode'
386 automatically becomes local to the current buffer when it is set.
387
388    Abbrev definitions can be "mode-specific"--active only in one major
389 mode.  Abbrevs can also have "global" definitions that are active in
390 all major modes.  The same abbrev can have a global definition and
391 various mode-specific definitions for different major modes.  A
392 mode-specific definition for the current major mode overrides a global
393 definition.
394
395    You can define Abbrevs interactively during an editing session.  You
396 can also save lists of abbrev definitions in files and reload them in
397 later sessions.  Some users keep extensive lists of abbrevs that they
398 load in every session.
399
400    A second kind of abbreviation facility is called the "dynamic
401 expansion".  Dynamic abbrev expansion happens only when you give an
402 explicit command and the result of the expansion depends only on the
403 current contents of the buffer.  *Note Dynamic Abbrevs::.
404
405 * Menu:
406
407 * Defining Abbrevs::  Defining an abbrev, so it will expand when typed.
408 * Expanding Abbrevs:: Controlling expansion: prefixes, canceling expansion.
409 * Editing Abbrevs::   Viewing or editing the entire list of defined abbrevs.
410 * Saving Abbrevs::    Saving the entire list of abbrevs for another session.
411 * Dynamic Abbrevs::   Abbreviations for words already in the buffer.
412
413 \1f
414 File: xemacs.info,  Node: Defining Abbrevs,  Next: Expanding Abbrevs,  Prev: Abbrevs,  Up: Abbrevs
415
416 Defining Abbrevs
417 ================
418
419 `C-x a g'
420      Define an abbrev to expand into some text before point
421      (`add-global-abbrev').
422
423 `C-x a l'
424      Similar, but define an abbrev available only in the current major
425      mode (`add-mode-abbrev').
426
427 `C-x a i g'
428      Define a word in the buffer as an abbrev
429      (`inverse-add-global-abbrev').
430
431 `C-x a i l'
432      Define a word in the buffer as a mode-specific abbrev
433      (`inverse-add-mode-abbrev').
434
435 `M-x kill-all-abbrevs'
436      After this command, no abbrev definitions remain in effect.
437
438    The usual way to define an abbrev is to enter the text you want the
439 abbrev to expand to, position point after it, and type `C-x a g'
440 (`add-global-abbrev').  This reads the abbrev itself using the
441 minibuffer, and then defines it as an abbrev for one or more words
442 before point.  Use a numeric argument to say how many words before point
443 should be taken as the expansion.  For example, to define the abbrev
444 `foo' as in the example above, insert the text `find outer otter', then
445 type
446 `C-u 3 C-x a g f o o <RET>'.
447
448    An argument of zero to `C-x a g' means to use the contents of the
449 region as the expansion of the abbrev being defined.
450
451    The command `C-x a l' (`add-mode-abbrev') is similar, but defines a
452 mode-specific abbrev.  Mode-specific abbrevs are active only in a
453 particular major mode.  `C-x a l' defines an abbrev for the major mode
454 in effect at the time `C-x a l' is typed.  The arguments work the same
455 way they do for `C-x a g'.
456
457    If the text of an abbrev you want is already in the buffer instead of
458 the expansion, use command `C-x a i g' (`inverse-add-global-abbrev')
459 instead of `C-x a g', or use `C-x a i l' (`inverse-add-mode-abbrev')
460 instead of `C-x a l'.  These commands are called "inverse" because they
461 invert the meaning of the argument found in the buffer and the argument
462 read using the minibuffer.
463
464    To change the definition of an abbrev, just add the new definition.
465 You will be asked to confirm if the abbrev has a prior definition.  To
466 remove an abbrev definition, give a negative argument to `C-x a g' or
467 `C-x a l'.  You must choose the command to specify whether to kill a
468 global definition or a mode-specific definition for the current mode,
469 since those two definitions are independent for one abbrev.
470
471    `M-x kill-all-abbrevs' removes all existing abbrev definitions.
472
473 \1f
474 File: xemacs.info,  Node: Expanding Abbrevs,  Next: Editing Abbrevs,  Prev: Defining Abbrevs,  Up: Abbrevs
475
476 Controlling Abbrev Expansion
477 ============================
478
479    An abbrev expands whenever it is in a buffer just before point and
480 you type a self-inserting punctuation character (<SPC>, comma, etc.).
481 Most often an abbrev is used by inserting the abbrev followed by
482 punctuation.
483
484    Abbrev expansion preserves case; thus, `foo' expands into `find
485 outer otter', `Foo' into `Find outer otter', and `FOO' into `FIND OUTER
486 OTTER' or `Find Outer Otter' according to the variable
487 `abbrev-all-caps' (a non-`nil' value chooses the first of the two
488 expansions).
489
490    Two commands are available to control abbrev expansion:
491
492 `M-''
493      Separate a prefix from a following abbrev to be expanded
494      (`abbrev-prefix-mark').
495
496 `C-x a e'
497      Expand the abbrev before point (`expand-abbrev').  This is
498      effective even when Abbrev mode is not enabled.
499
500 `M-x unexpand-abbrev'
501      Undo last abbrev expansion.
502
503 `M-x expand-region-abbrevs'
504      Expand some or all abbrevs found in the region.
505
506    You may wish to expand an abbrev with a prefix attached.  For
507 example, if `cnst' expands into `construction', you may want to use it
508 to enter `reconstruction'.  It does not work to type `recnst', because
509 that is not necessarily a defined abbrev.  Instead, you can use the
510 command `M-'' (`abbrev-prefix-mark') between the prefix `re' and the
511 abbrev `cnst'.  First, insert `re'.  Then type `M-''; this inserts a
512 minus sign in the buffer to indicate that it has done its work.  Then
513 insert the abbrev `cnst'.  The buffer now contains `re-cnst'.  Now
514 insert a punctuation character to expand the abbrev `cnst' into
515 `construction'.  The minus sign is deleted at this point by `M-''.  The
516 resulting text is the desired `reconstruction'.
517
518    If you actually want the text of the abbrev in the buffer, rather
519 than its expansion, insert the following punctuation with `C-q'.  Thus,
520 `foo C-q -' leaves `foo-' in the buffer.
521
522    If you expand an abbrev by mistake, you can undo the expansion
523 (replace the expansion by the original abbrev text) with `M-x
524 unexpand-abbrev'.  You can also use `C-_' (`undo') to undo the
525 expansion; but that will first undo the insertion of the punctuation
526 character.
527
528    `M-x expand-region-abbrevs' searches through the region for defined
529 abbrevs, and  offers to replace each one it finds with its expansion.
530 This command is useful if you have typed text using abbrevs but forgot
531 to turn on Abbrev mode first.  It may also be useful together with a
532 special set of abbrev definitions for making several global
533 replacements at once.  The command is effective even if Abbrev mode is
534 not enabled.
535
536 \1f
537 File: xemacs.info,  Node: Editing Abbrevs,  Next: Saving Abbrevs,  Prev: Expanding Abbrevs,  Up: Abbrevs
538
539 Examining and Editing Abbrevs
540 =============================
541
542 `M-x list-abbrevs'
543      Print a list of all abbrev definitions.
544
545 `M-x edit-abbrevs'
546      Edit a list of abbrevs; you can add, alter, or remove definitions.
547
548    The output from `M-x list-abbrevs' looks like this:
549
550      (lisp-mode-abbrev-table)
551      "dk"           0    "define-key"
552      (global-abbrev-table)
553      "dfn"          0    "definition"
554
555 (Some blank lines of no semantic significance, and some other abbrev
556 tables, have been omitted.)
557
558    A line containing a name in parentheses is the header for abbrevs in
559 a particular abbrev table; `global-abbrev-table' contains all the global
560 abbrevs, and the other abbrev tables that are named after major modes
561 contain the mode-specific abbrevs.
562
563    Within each abbrev table, each non-blank line defines one abbrev.
564 The word at the beginning is the abbrev.  The number that appears is
565 the number of times the abbrev has been expanded.  Emacs keeps track of
566 this to help you see which abbrevs you actually use, in case you want
567 to eliminate those that you don't use often.  The string at the end of
568 the line is the expansion.
569
570    `M-x edit-abbrevs' allows you to add, change or kill abbrev
571 definitions by editing a list of them in an Emacs buffer.  The list has
572 the format described above.  The buffer of abbrevs is called
573 `*Abbrevs*', and is in Edit-Abbrevs mode.  This mode redefines the key
574 `C-c C-c' to install the abbrev definitions as specified in the buffer.
575 The  `edit-abbrevs-redefine' command does this.  Any abbrevs not
576 described in the buffer are eliminated when this is done.
577
578    `edit-abbrevs' is actually the same as `list-abbrevs', except that
579 it selects the buffer `*Abbrevs*' whereas `list-abbrevs' merely
580 displays it in another window.
581
582 \1f
583 File: xemacs.info,  Node: Saving Abbrevs,  Next: Dynamic Abbrevs,  Prev: Editing Abbrevs,  Up: Abbrevs
584
585 Saving Abbrevs
586 ==============
587
588    These commands allow you to keep abbrev definitions between editing
589 sessions.
590
591 `M-x write-abbrev-file'
592      Write a file describing all defined abbrevs.
593
594 `M-x read-abbrev-file'
595      Read such an abbrev file and define abbrevs as specified there.
596
597 `M-x quietly-read-abbrev-file'
598      Similar, but do not display a message about what is going on.
599
600 `M-x define-abbrevs'
601      Define abbrevs from buffer.
602
603 `M-x insert-abbrevs'
604      Insert all abbrevs and their expansions into the buffer.
605
606    Use `M-x write-abbrev-file' to save abbrev definitions for use in a
607 later session.  The command reads a file name using the minibuffer and
608 writes a description of all current abbrev definitions into the
609 specified file.  The text stored in the file looks like the output of
610 `M-x list-abbrevs'.
611
612    `M-x read-abbrev-file' prompts for a file name using the minibuffer
613 and reads the specified file, defining abbrevs according to its
614 contents.  `M-x quietly-read-abbrev-file' is the same but does not
615 display a message in the echo area; it is actually useful primarily in
616 the init file.  *Note Init File::. If you give an empty argument to
617 either of these functions, the file name Emacs uses is the value of the
618 variable `abbrev-file-name', which is by default `"~/.abbrev_defs"'.
619
620    Emacs offers to save abbrevs automatically if you have changed any of
621 them, whenever it offers to save all files (for `C-x s' or `C-x C-c').
622 Set the variable `save-abbrevs' to `nil' to inhibit this feature.
623
624    The commands `M-x insert-abbrevs' and `M-x define-abbrevs' are
625 similar to the previous commands but work on text in an Emacs buffer.
626 `M-x insert-abbrevs' inserts text into the current buffer before point,
627 describing all current abbrev definitions; `M-x define-abbrevs' parses
628 the entire current buffer and defines abbrevs accordingly.
629
630 \1f
631 File: xemacs.info,  Node: Dynamic Abbrevs,  Prev: Saving Abbrevs,  Up: Abbrevs
632
633 Dynamic Abbrev Expansion
634 ========================
635
636    The abbrev facility described above operates automatically as you
637 insert text, but all abbrevs must be defined explicitly.  By contrast,
638 "dynamic abbrevs" allow the meanings of abbrevs to be determined
639 automatically from the contents of the buffer, but dynamic abbrev
640 expansion happens only when you request it explicitly.
641
642 `M-/'
643      Expand the word in the buffer before point as a "dynamic abbrev",
644      by searching in the buffer for words starting with that
645      abbreviation (`dabbrev-expand').
646
647    For example, if the buffer contains `does this follow ' and you type
648 `f o M-/', the effect is to insert `follow' because that is the last
649 word in the buffer that starts with `fo'.  A numeric argument to `M-/'
650 says to take the second, third, etc. distinct expansion found looking
651 backward from point.  Repeating `M-/' searches for an alternative
652 expansion by looking farther back.  After the entire buffer before
653 point has been considered, the buffer after point is searched.
654
655    Dynamic abbrev expansion is completely independent of Abbrev mode;
656 the expansion of a word with `M-/' is completely independent of whether
657 it has a definition as an ordinary abbrev.
658
659 \1f
660 File: xemacs.info,  Node: Picture,  Next: Sending Mail,  Prev: Abbrevs,  Up: Top
661
662 Editing Pictures
663 ****************
664
665    If you want to create a picture made out of text characters (for
666 example, a picture of the division of a register into fields, as a
667 comment in a program), use the command `edit-picture' to enter Picture
668 mode.
669
670    In Picture mode, editing is based on the "quarter-plane" model of
671 text.  In this model, the text characters lie studded on an area that
672 stretches infinitely far to the right and downward.  The concept of the
673 end of a line does not exist in this model; the most you can say is
674 where the last non-blank character on the line is found.
675
676    Of course, Emacs really always considers text as a sequence of
677 characters, and lines really do have ends.  But in Picture mode most
678 frequently-used keys are rebound to commands that simulate the
679 quarter-plane model of text.  They do this by inserting spaces or by
680 converting tabs to spaces.
681
682    Most of the basic editing commands of Emacs are redefined by Picture
683 mode to do essentially the same thing but in a quarter-plane way.  In
684 addition, Picture mode defines various keys starting with the `C-c'
685 prefix to run special picture editing commands.
686
687    One of these keys, `C-c C-c', is pretty important.  Often a picture
688 is part of a larger file that is usually edited in some other major
689 mode.  `M-x edit-picture' records the name of the previous major mode.
690 You can then use the `C-c C-c' command (`picture-mode-exit') to restore
691 that mode.  `C-c C-c' also deletes spaces from the ends of lines,
692 unless you give it a numeric argument.
693
694    The commands used in Picture mode all work in other modes (provided
695 the `picture' library is loaded), but are only  bound to keys in
696 Picture mode.  Note that the descriptions below talk of moving "one
697 column" and so on, but all the picture mode commands handle numeric
698 arguments as their normal equivalents do.
699
700    Turning on Picture mode calls the value of the variable
701 `picture-mode-hook' as a function, with no arguments, if that value
702 exists and is non-`nil'.
703
704 * Menu:
705
706 * Basic Picture::         Basic concepts and simple commands of Picture Mode.
707 * Insert in Picture::     Controlling direction of cursor motion
708                            after "self-inserting" characters.
709 * Tabs in Picture::       Various features for tab stops and indentation.
710 * Rectangles in Picture:: Clearing and superimposing rectangles.
711
712 \1f
713 File: xemacs.info,  Node: Basic Picture,  Next: Insert in Picture,  Prev: Picture,  Up: Picture
714
715 Basic Editing in Picture Mode
716 =============================
717
718    Most keys do the same thing in Picture mode that they usually do,
719 but do it in a quarter-plane style.  For example, `C-f' is rebound to
720 run `picture-forward-column', which moves point one column to the
721 right, by inserting a space if necessary, so that the actual end of the
722 line makes no difference.  `C-b' is rebound to run
723 `picture-backward-column', which always moves point left one column,
724 converting a tab to multiple spaces if necessary.  `C-n' and `C-p' are
725 rebound to run `picture-move-down' and `picture-move-up', which can
726 either insert spaces or convert tabs as necessary to make sure that
727 point stays in exactly the same column.  `C-e' runs
728 `picture-end-of-line', which moves to after the last non-blank
729 character on the line.  There was no need to change `C-a', as the choice
730 of screen model does not affect beginnings of lines.
731
732    Insertion of text is adapted to the quarter-plane screen model
733 through the use of Overwrite mode (*note Minor Modes::).
734 Self-inserting characters replace existing text, column by column,
735 rather than pushing existing text to the right.  <RET> runs
736 `picture-newline', which just moves to the beginning of the following
737 line so that new text will replace that line.
738
739    Text is erased instead of deleted and killed.  <DEL>
740 (`picture-backward-clear-column') replaces the preceding character with
741 a space rather than removing it.  `C-d' (`picture-clear-column') does
742 the same in a forward direction.  `C-k' (`picture-clear-line') really
743 kills the contents of lines, but never removes the newlines from a
744 buffer.
745
746    To do actual insertion, you must use special commands.  `C-o'
747 (`picture-open-line') creates a blank line, but does so after the
748 current line; it never splits a line.  `C-M-o', `split-line', makes
749 sense in Picture mode, so it remains unchanged.  <LFD>
750 (`picture-duplicate-line') inserts another line with the same contents
751 below the current line.
752
753    To actually delete parts of the picture, use `C-w', or with `C-c
754 C-d' (which is defined as `delete-char', as `C-d' is in other modes),
755 or with one of the picture rectangle commands (*note Rectangles in
756 Picture::).
757
758 \1f
759 File: xemacs.info,  Node: Insert in Picture,  Next: Tabs in Picture,  Prev: Basic Picture,  Up: Picture
760
761 Controlling Motion After Insert
762 ===============================
763
764    Since "self-inserting" characters just overwrite and move point in
765 Picture mode, there is no essential restriction on how point should be
766 moved.  Normally point moves right, but you can specify any of the eight
767 orthogonal or diagonal directions for motion after a "self-inserting"
768 character.  This is useful for drawing lines in the buffer.
769
770 `C-c <'
771      Move left after insertion (`picture-movement-left').
772
773 `C-c >'
774      Move right after insertion (`picture-movement-right').
775
776 `C-c ^'
777      Move up after insertion (`picture-movement-up').
778
779 `C-c .'
780      Move down after insertion (`picture-movement-down').
781
782 `C-c `'
783      Move up and left ("northwest") after insertion
784      (`picture-movement-nw').
785
786 `C-c ''
787      Move up and right ("northeast") after insertion
788      (`picture-movement-ne').
789
790 `C-c /'
791      Move down and left ("southwest") after insertion
792      (`picture-movement-sw').
793
794 `C-c \'
795      Move down and right ("southeast") after insertion
796      (`picture-movement-se').
797
798    Two motion commands move based on the current Picture insertion
799 direction.  The command `C-c C-f' (`picture-motion') moves in the same
800 direction as motion after "insertion" currently does, while `C-c C-b'
801 (`picture-motion-reverse') moves in the opposite direction.
802
803 \1f
804 File: xemacs.info,  Node: Tabs in Picture,  Next: Rectangles in Picture,  Prev: Insert in Picture,  Up: Picture
805
806 Picture Mode Tabs
807 =================
808
809    Two kinds of tab-like action are provided in Picture mode.
810 Context-based tabbing is done with `M-<TAB>' (`picture-tab-search').
811 With no argument, it moves to a point underneath the next "interesting"
812 character that follows whitespace in the previous non-blank line.
813 "Next" here means "appearing at a horizontal position greater than the
814 one point starts out at".  With an argument, as in `C-u M-<TAB>', the
815 command moves to the next such interesting character in the current
816 line.  `M-<TAB>' does not change the text; it only moves point.
817 "Interesting" characters are defined by the variable
818 `picture-tab-chars', which contains a string of characters considered
819 interesting.  Its default value is `"!-~"'.
820
821    <TAB> itself runs `picture-tab', which operates based on the current
822 tab stop settings; it is the Picture mode equivalent of
823 `tab-to-tab-stop'.  Without arguments it just moves point, but with a
824 numeric argument it clears the text that it moves over.
825
826    The context-based and tab-stop-based forms of tabbing are brought
827 together by the command `C-c <TAB>' (`picture-set-tab-stops'.)  This
828 command sets the tab stops to the positions which `M-<TAB>' would
829 consider significant in the current line.  If you use this command with
830 <TAB>, you can get the effect of context-based tabbing.  But `M-<TAB>'
831 is more convenient in the cases where it is sufficient.
832
833 \1f
834 File: xemacs.info,  Node: Rectangles in Picture,  Prev: Tabs in Picture,  Up: Picture
835
836 Picture Mode Rectangle Commands
837 ===============================
838
839    Picture mode defines commands for working on rectangular pieces of
840 the text in ways that fit with the quarter-plane model.  The standard
841 rectangle commands may also be useful (*note Rectangles::).
842
843 `C-c C-k'
844      Clear out the region-rectangle (`picture-clear-rectangle').  With
845      argument, kill it.
846
847 `C-c C-w R'
848      Similar but save rectangle contents in register R first
849      (`picture-clear-rectangle-to-register').
850
851 `C-c C-y'
852      Copy last killed rectangle into the buffer by overwriting, with
853      upper left corner at point (`picture-yank-rectangle').  With
854      argument, insert instead.
855
856 `C-c C-x R'
857      Similar, but use the rectangle in register R
858      (`picture-yank-rectangle-from-register').
859
860    The picture rectangle commands `C-c C-k' (`picture-clear-rectangle')
861 and `C-c C-w' (`picture-clear-rectangle-to-register') differ from the
862 standard rectangle commands in that they normally clear the rectangle
863 instead of deleting it; this is analogous with the way `C-d' is changed
864 in Picture mode.
865
866    However, deletion of rectangles can be useful in Picture mode, so
867 these commands delete the rectangle if given a numeric argument.
868
869    The Picture mode commands for yanking rectangles differ from the
870 standard ones in overwriting instead of inserting.  This is the same
871 way that Picture mode insertion of other text is different from other
872 modes.  `C-c C-y' (`picture-yank-rectangle') inserts (by overwriting)
873 the rectangle that was most recently killed, while `C-c C-x'
874 (`picture-yank-rectangle-from-register') does for the rectangle found
875 in a specified register.
876
877    Since most region commands in Picture mode operate on rectangles,
878 when you select a region of text with the mouse in Picture mode, it is
879 highlighted as a rectangle.
880
881 \1f
882 File: xemacs.info,  Node: Sending Mail,  Next: Reading Mail,  Prev: Picture,  Up: Top
883
884 Sending Mail
885 ************
886
887    To send a message in Emacs, start by typing the command (`C-x m') to
888 select and initialize the `*mail*' buffer.  You can then edit the text
889 and headers of the message in the mail buffer, and type the command
890 (`C-c C-c') to send the message.
891
892 `C-x m'
893      Begin composing a message to send (`mail').
894
895 `C-x 4 m'
896      Likewise, but display the message in another window
897      (`mail-other-window').
898
899 `C-c C-c'
900      In Mail mode, send the message and switch to another buffer
901      (`mail-send-and-exit').
902
903    The command `C-x m' (`mail') selects a buffer named `*mail*' and
904 initializes it with the skeleton of an outgoing message.  `C-x 4 m'
905 (`mail-other-window') selects the `*mail*' buffer in a different
906 window, leaving the previous current buffer visible.
907
908    Because the buffer for mail composition is an ordinary Emacs buffer,
909 you can switch to other buffers while in the middle of composing mail,
910 and switch back later (or never).  If you use the `C-x m' command again
911 when you have been composing another message but have not sent it, a
912 new mail buffer will be created; in this way, you can compose multiple
913 messages at once.  You can switch back to and complete an unsent
914 message by using the normal buffer selection mechanisms.
915
916    `C-u C-x m' is another way to switch back to a message in progress:
917 it will search for an existing, unsent mail message buffer and select
918 it.
919
920 * Menu:
921
922 * Format: Mail Format.    Format of the mail being composed.
923 * Headers: Mail Headers.  Details of allowed mail header fields.
924 * Mode: Mail Mode.        Special commands for editing mail being composed.
925
926 \1f
927 File: xemacs.info,  Node: Mail Format,  Next: Mail Headers,  Prev: Sending Mail,  Up: Sending Mail
928
929 The Format of the Mail Buffer
930 =============================
931
932    In addition to the "text" or contents, a message has "header
933 fields", which say who sent it, when, to whom, why, and so on.  Some
934 header fields, such as the date and sender, are created automatically
935 after the message is sent.  Others, such as the recipient names, must
936 be specified by you in order to send the message properly.
937
938    Mail mode provides a few commands to help you edit some header
939 fields, and some are preinitialized in the buffer automatically at
940 times.  You can insert or edit any header fields using ordinary editing
941 commands.
942
943    The line in the buffer that says:
944
945      --text follows this line--
946
947 is a special delimiter that separates the headers you have specified
948 from the text.  Whatever follows this line is the text of the message;
949 the headers precede it.  The delimiter line itself does not appear in
950 the message actually sent.  The text used for the delimiter line is
951 controlled by the variable `mail-header-separator'.
952
953    Here is an example of what the headers and text in the `*mail*'
954 buffer might look like.
955
956      To: rms@mc
957      CC: mly@mc, rg@oz
958      Subject: The XEmacs User's Manual
959      --Text follows this line--
960      Please ignore this message.
961
962 \1f
963 File: xemacs.info,  Node: Mail Headers,  Next: Mail Mode,  Prev: Mail Format,  Up: Sending Mail
964
965 Mail Header Fields
966 ==================
967
968    There are several header fields you can use in the `*mail*' buffer.
969 Each header field starts with a field name at the beginning of a line,
970 terminated by a colon.  It does not matter whether you use upper or
971 lower case in the field name.  After the colon and optional whitespace
972 comes the contents of the field.
973
974 `To'
975      This field contains the mailing addresses of the message.
976
977 `Subject'
978      The contents of the `Subject' field should be a piece of text that
979      says what the message is about.  Subject fields are useful because
980      most mail-reading programs can provide a summary of messages,
981      listing the subject of each message but not its text.
982
983 `CC'
984      This field contains additional mailing addresses to send the
985      message to, but whose readers should not regard the message as
986      addressed to them.
987
988 `BCC'
989      This field contains additional mailing addresses to send the
990      message to, but which should not appear in the header of the
991      message actually sent.
992
993 `FCC'
994      This field contains the name of one file (in Unix mail file
995      format) to which a copy of the message should be appended when the
996      message is sent.
997
998 `From'
999      Use the `From' field to say who you are, when the account you are
1000      using to send the mail is not your own.  The contents of the
1001      `From' field should be a valid mailing address, since replies will
1002      normally go there.
1003
1004 `Reply-To'
1005      Use the `Reply-To' field to direct replies to a different address,
1006      not your own. `From' and `Reply-To' have the same effect on where
1007      replies go, but they convey a different meaning to the person who
1008      reads the message.
1009
1010 `In-Reply-To'
1011      This field contains a piece of text describing a message you are
1012      replying to.  Some mail systems can use the information to
1013      correlate related pieces of mail.  This field is normally filled
1014      in by your mail handling package when you are replying to a
1015      message and you never need to think about it.
1016
1017 The `To', `CC', `BCC' and `FCC' fields can appear any number of times,
1018 to specify many places to send the message.
1019
1020 The `To', `CC', and `BCC', fields can have continuation lines.  All the
1021 lines starting with whitespace, following the line on which the field
1022 starts, are considered part of the field.  For example,
1023
1024      To: foo@here, this@there,
1025        me@gnu.cambridge.mass.usa.earth.spiral3281
1026
1027 If you have a `~/.mailrc' file, Emacs scans it for mail aliases the
1028 first time you try to send mail in an Emacs session.  Emacs expands
1029 aliases found in the `To', `CC', and `BCC' fields where appropriate.
1030 You can set the variable `mail-abbrev-mailrc-file' to the name of the
1031 file with mail aliases.  If `nil', `~/.mailrc' is used.
1032
1033    Your `.mailrc' file ensures that word-abbrevs are defined for each
1034 of your mail aliases when point is in a `To', `CC', `BCC', or `From'
1035 field.  The aliases are defined in your `.mailrc' file or in a file
1036 specified by the MAILRC environment variable if it exists.  Your mail
1037 aliases expand any time you type a word-delimiter at the end of an
1038 abbreviation.
1039
1040    In this version of Emacs, what you see is what you get: in contrast
1041 to some other versions, no abbreviations are expanded after you have
1042 sent the mail.  This means you don't suffer the annoyance of having the
1043 system do things behind your back--if the system rewrites an address
1044 you typed, you know it immediately, instead of after the mail has been
1045 sent and it's too late to do anything about it.  For example, you will
1046 never again be in trouble because you forgot to delete an old alias
1047 from your `.mailrc' and a new local user is given a userid which
1048 conflicts with one of your aliases.
1049
1050    Your mail alias abbrevs are in effect only when point is in an
1051 appropriate header field. The mail aliases will not expand in the body
1052 of the message, or in other header fields.  The default mode-specific
1053 abbrev table `mail-mode-abbrev-table' is used instead if defined.  That
1054 means if you have been using mail-mode specific abbrevs, this code will
1055 not adversely affect you.  You can control which header fields the
1056 abbrevs are used in by changing the variable `mail-abbrev-mode-regexp'.
1057
1058    If auto-fill mode is on, abbrevs wrap at commas instead of at word
1059 boundaries, and header continuation lines will be properly indented.
1060
1061    You can also insert a mail alias with
1062 `mail-interactive-insert-alias'.  This function, which is bound to `C-c
1063 C-a', prompts you for an alias (with completion) and inserts its
1064 expansion at point.
1065
1066    In this version of Emacs, it is possible to have lines like the
1067 following in your `.mailrc' file:
1068
1069           alias someone "John Doe <doe@quux.com>"
1070
1071    That is, if you want an address to have embedded spaces, simply
1072 surround it with double-quotes.  The quotes are necessary because the
1073 format of the `.mailrc' file uses spaces as address delimiters.
1074
1075    Aliases in the `.mailrc' file may be nested. For example, assume you
1076 define aliases like:
1077           alias group1 fred ethel
1078           alias group2 larry curly moe
1079           alias everybody group1 group2
1080
1081    When you now type `everybody' on the `To' line, it will expand to:
1082           fred, ethyl, larry, curly, moe
1083
1084    Aliases may contain forward references; the alias of `everybody' in
1085 the example above can precede the aliases of `group1' and `group2'.
1086
1087    In this version of Emacs, you can use the `source' `.mailrc' command
1088 for reading aliases from some other file as well.
1089
1090    Aliases may contain hyphens, as in `"alias foo-bar foo@bar"', even
1091 though word-abbrevs normally cannot contain hyphens.
1092
1093    To read in the contents of another `.mailrc'-type file from Emacs,
1094 use the command `M-x merge-mail-aliases'.  The `rebuild-mail-aliases'
1095 command is similar, but deletes existing aliases first.
1096
1097    If you want multiple addresses separated by a string other than `,'
1098 (a comma), then set the variable `mail-alias-separator-string' to it.
1099 This has to be a comma bracketed by whitespace if you want any kind  of
1100 reasonable behavior.
1101
1102    If the variable `mail-archive-file-name' is non-`nil', it should be
1103 a string naming a file.  Each time you start to edit a message to send,
1104 an `FCC' field is entered for that file.  Unless you remove the `FCC'
1105 field, every message is written into that file when it is sent.
1106
1107 \1f
1108 File: xemacs.info,  Node: Mail Mode,  Prev: Mail Headers,  Up: Sending Mail
1109
1110 Mail Mode
1111 =========
1112
1113    The major mode used in the `*mail*' buffer is Mail mode.  Mail mode
1114 is similar to Text mode, but several commands are provided on the `C-c'
1115 prefix.  These commands all deal specifically with editing or sending
1116 the message.
1117
1118 `C-c C-s'
1119      Send the message, and leave the `*mail*' buffer selected
1120      (`mail-send').
1121
1122 `C-c C-c'
1123      Send the message, and select some other buffer
1124      (`mail-send-and-exit').
1125
1126 `C-c C-f C-t'
1127      Move to the `To' header field, creating one if there is none
1128      (`mail-to').
1129
1130 `C-c C-f C-s'
1131      Move to the `Subject' header field, creating one if there is none
1132      (`mail-subject').
1133
1134 `C-c C-f C-c'
1135      Move to the `CC' header field, creating one if there is none
1136      (`mail-cc').
1137
1138 `C-c C-w'
1139      Insert the file `~/.signature' at the end of the message text
1140      (`mail-signature').
1141
1142 `C-c C-y'
1143      Yank the selected message (`mail-yank-original').
1144
1145 `C-c C-q'
1146      Fill all paragraphs of yanked old messages, each individually
1147      (`mail-fill-yanked-message').
1148
1149 `<button3>'
1150      Pops up a menu of useful mail-mode commands.
1151
1152    There are two ways to send a message.  `C-c C-c'
1153 (`mail-send-and-exit') is the usual way to send the message.  It sends
1154 the message and then deletes the window (if there is another window) or
1155 switches to another buffer.  It puts the `*mail*' buffer at the lowest
1156 priority for automatic reselection, since you are finished with using
1157 it.  `C-c C-s' (`mail-send') sends the message and marks the `*mail*'
1158 buffer unmodified, but leaves that buffer selected so that you can
1159 modify the message (perhaps with new recipients) and send it again.
1160
1161    Mail mode provides some other special commands that are useful for
1162 editing the headers and text of the message before you send it.  There
1163 are three commands defined to move point to particular header fields,
1164 all based on the prefix `C-c C-f' (`C-f' is for "field").  They are
1165 `C-c C-f C-t' (`mail-to') to move to the `To' field, `C-c C-f C-s'
1166 (`mail-subject') for the `Subject' field, and `C-c C-f C-c' (`mail-cc')
1167 for the `CC' field.  These fields have special motion commands because
1168 they are edited most frequently.
1169
1170    `C-c C-w' (`mail-signature') adds a standard piece of text at the
1171 end of the message to say more about who you are.  The text comes from
1172 the file `.signature' in your home directory.
1173
1174    When you use an Rmail command to send mail from the Rmail mail
1175 reader, you can use `C-c C-y' `mail-yank-original' inside the `*mail*'
1176 buffer to insert the text of the message you are replying to.  Normally
1177 Rmail indents each line of that message four spaces and eliminates most
1178 header fields.  A numeric argument specifies the number of spaces to
1179 indent.  An argument of just `C-u' says not to indent at all and not to
1180 eliminate anything.  `C-c C-y' always uses the current message from the
1181 `RMAIL' buffer, so you can insert several old messages by selecting one
1182 in `RMAIL', switching to `*mail*' and yanking it, then switching back
1183 to `RMAIL' to select another.
1184
1185    After using `C-c C-y', you can use the command `C-c C-q'
1186 (`mail-fill-yanked-message') to fill the paragraphs of the yanked old
1187 message or messages.  One use of `C-c C-q' fills all such paragraphs,
1188 each one separately.
1189
1190    Clicking the right mouse button in a mail buffer pops up a menu of
1191 the above commands, for easy access.
1192
1193    Turning on Mail mode (which `C-x m' does automatically) calls the
1194 value of `text-mode-hook', if it is not void or `nil', and then calls
1195 the value of `mail-mode-hook' if that is not void or `nil'.
1196
1197 \1f
1198 File: xemacs.info,  Node: Reading Mail,  Next: Calendar/Diary,  Prev: Sending Mail,  Up: Top
1199
1200 Reading Mail
1201 ************
1202
1203    XEmacs provides three separate mail-reading packages.  Each one
1204 comes with its own manual, which is included standard with the XEmacs
1205 distribution.
1206
1207    The recommended mail-reading package for new users is VM.  VM works
1208 with standard Unix-mail-format folders and was designed as a replacement
1209 for the older Rmail.
1210
1211    XEmacs also provides a sophisticated and comfortable front-end to the
1212 MH mail-processing system, called `mh-e'.  Unlike in other mail
1213 programs, folders in MH are stored as file-system directories, with
1214 each message occupying one (numbered) file.  This facilitates working
1215 with mail using shell commands, and many other features of MH are also
1216 designed to integrate well with the shell and with shell scripts.  Keep
1217 in mind, however, that in order to use mh-e you must have the MH
1218 mail-processing system installed on your computer.
1219
1220    Finally, XEmacs provides the Rmail package.  Rmail is (currently) the
1221 only mail reading package distributed with FSF GNU Emacs, and is
1222 powerful in its own right.  However, it stores mail folders in a special
1223 format called `Babyl', that is incompatible with all other
1224 frequently-used mail programs.  A utility program is provided for
1225 converting Babyl folders to standard Unix-mail format; however, unless
1226 you already have mail in Babyl-format folders, you should consider
1227 using VM or mh-e instead. (If at times you have to use FSF Emacs, it is
1228 not hard to obtain and install VM for that editor.)
1229
1230 \1f
1231 File: xemacs.info,  Node: Calendar/Diary,  Next: Sorting,  Prev: Reading Mail,  Up: Top
1232
1233 Calendar Mode and the Diary
1234 ===========================
1235
1236    Emacs provides the functions of a desk calendar, with a diary of
1237 planned or past events.  To enter the calendar, type `M-x calendar';
1238 this displays a three-month calendar centered on the current month, with
1239 point on the current date.  With a numeric argument, as in `C-u M-x
1240 calendar', it prompts you for the month and year to be the center of the
1241 three-month calendar.  The calendar uses its own buffer, whose major
1242 mode is Calendar mode.
1243
1244    `Button2' in the calendar brings up a menu of operations on a
1245 particular date; `Buttons3' brings up a menu of commonly used calendar
1246 features that are independent of any particular date.  To exit the
1247 calendar, type `q'.  *Note Customizing the Calendar and Diary:
1248 (lispref)Calendar, for customization information about the calendar and
1249 diary.
1250
1251 * Menu:
1252
1253 * Calendar Motion::        Moving through the calendar; selecting a date.
1254 * Scroll Calendar::        Bringing earlier or later months onto the screen.
1255 * Mark and Region::        Remembering dates, the mark ring.
1256 * General Calendar::       Exiting or recomputing the calendar.
1257 * LaTeX Calendar::         Print a calendar using LaTeX.
1258 * Holidays::               Displaying dates of holidays.
1259 * Sunrise/Sunset::         Displaying local times of sunrise and sunset.
1260 * Lunar Phases::           Displaying phases of the moon.
1261 * Other Calendars::        Converting dates to other calendar systems.
1262 * Diary::                  Displaying events from your diary.
1263 * Calendar Customization:: Altering the behavior of the features above.
1264
1265 \1f
1266 File: xemacs.info,  Node: Calendar Motion,  Next: Scroll Calendar,  Prev: Calendar/Diary,  Up: Calendar/Diary
1267
1268 Movement in the Calendar
1269 ------------------------
1270
1271    Calendar mode lets you move through the calendar in logical units of
1272 time such as days, weeks, months, and years.  If you move outside the
1273 three months originally displayed, the calendar display "scrolls"
1274 automatically through time to make the selected date visible.  Moving to
1275 a date lets you view its holidays or diary entries, or convert it to
1276 other calendars; moving longer time periods is also useful simply to
1277 scroll the calendar.
1278
1279 * Menu:
1280
1281 * Calendar Unit Motion::       Moving by days, weeks, months, and years.
1282 * Move to Beginning or End::   Moving to start/end of weeks, months, and years.
1283 * Specified Dates::            Moving to the current date or another
1284                                specific date.
1285
1286 \1f
1287 File: xemacs.info,  Node: Calendar Unit Motion,  Next: Move to Beginning or End,  Prev: Calendar Motion,  Up: Calendar Motion
1288
1289 Motion by Integral Days, Weeks, Months, Years
1290 .............................................
1291
1292    The commands for movement in the calendar buffer parallel the
1293 commands for movement in text.  You can move forward and backward by
1294 days, weeks, months, and years.
1295
1296 `C-f'
1297      Move point one day forward (`calendar-forward-day').
1298
1299 `C-b'
1300      Move point one day backward (`calendar-backward-day').
1301
1302 `C-n'
1303      Move point one week forward (`calendar-forward-week').
1304
1305 `C-p'
1306      Move point one week backward (`calendar-backward-week').
1307
1308 `M-}'
1309      Move point one month forward (`calendar-forward-month').
1310
1311 `M-{'
1312      Move point one month backward (`calendar-backward-month').
1313
1314 `C-x ]'
1315      Move point one year forward (`calendar-forward-year').
1316
1317 `C-x ['
1318      Move point one year backward (`calendar-backward-year').
1319
1320    The day and week commands are natural analogues of the usual Emacs
1321 commands for moving by characters and by lines.  Just as `C-n' usually
1322 moves to the same column in the following line, in Calendar mode it
1323 moves to the same day in the following week.  And `C-p' moves to the
1324 same day in the previous week.
1325
1326    The arrow keys are equivalent to `C-f', `C-b', `C-n' and `C-p', just
1327 as they normally are in other modes.
1328
1329    The commands for motion by months and years work like those for
1330 weeks, but move a larger distance.  The month commands `M-}' and `M-{'
1331 move forward or backward by an entire month's time.  The year commands
1332 `C-x ]' and `C-x [' move forward or backward a whole year.
1333
1334    The easiest way to remember these commands is to consider months and
1335 years analogous to paragraphs and pages of text, respectively.  But the
1336 commands themselves are not quite analogous.  The ordinary Emacs
1337 paragraph commands move to the beginning or end of a paragraph, whereas
1338 these month and year commands move by an entire month or an entire
1339 year, which usually involves skipping across the end of a month or year.
1340
1341    All these commands accept a numeric argument as a repeat count.  For
1342 convenience, the digit keys and the minus sign specify numeric
1343 arguments in Calendar mode even without the Meta modifier.  For example,
1344 `100 C-f' moves point 100 days forward from its present location.
1345
1346 \1f
1347 File: xemacs.info,  Node: Move to Beginning or End,  Next: Specified Dates,  Prev: Calendar Unit Motion,  Up: Calendar Motion
1348
1349 Beginning or End of Week, Month or Year
1350 .......................................
1351
1352    A week (or month, or year) is not just a quantity of days; we think
1353 of weeks (months, years) as starting on particular dates.  So Calendar
1354 mode provides commands to move to the beginning or end of a week, month
1355 or year:
1356
1357 `C-a'
1358      Move point to start of week (`calendar-beginning-of-week').
1359
1360 `C-e'
1361      Move point to end of week (`calendar-end-of-week').
1362
1363 `M-a'
1364      Move point to start of month (`calendar-beginning-of-month').
1365
1366 `M-e'
1367      Move point to end of month (`calendar-end-of-month').
1368
1369 `M-<'
1370      Move point to start of year (`calendar-beginning-of-year').
1371
1372 `M->'
1373      Move point to end of year (`calendar-end-of-year').
1374
1375    These commands also take numeric arguments as repeat counts, with the
1376 repeat count indicating how many weeks, months, or years to move
1377 backward or forward.
1378
1379    By default, weeks begin on Sunday.  To make them begin on Monday
1380 instead, set the variable `calendar-week-start-day' to 1.
1381