X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=info%2Fxemacs.info-14;h=eca17ed49d25da708701615654609d1b890fb3a4;hb=c461477e9d1c45206851e095d1398498d09d040c;hp=828a37cdc818e9238b45020702bcc5ed769f0dd1;hpb=f52a96980ed9280f8f906a20d4b899dc0b027644;p=chise%2Fxemacs-chise.git diff --git a/info/xemacs.info-14 b/info/xemacs.info-14 index 828a37c..eca17ed 100644 --- a/info/xemacs.info-14 +++ b/info/xemacs.info-14 @@ -1,4 +1,4 @@ -This is ../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../info/xemacs.info, produced by makeinfo version 4.0b from xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor @@ -30,1097 +30,1352 @@ versions, except that the sections entitled "The GNU Manifesto", translation approved by the author instead of in the original English.  -File: xemacs.info, Node: General Calendar, Next: LaTeX Calendar, Prev: Mark and Region, Up: Calendar/Diary +File: xemacs.info, Node: Available Packages, Prev: Creating Packages, Up: Packages -Miscellaneous Calendar Commands -------------------------------- +Available Packages: +=================== -`p d' - Display day-in-year (`calendar-print-day-of-year'). + This section lists the Lisp packages that are currently available +from xemacs.org and it's mirrors. If a particular package that you are +looking for isn't here, please send a message to the XEmacs Beta list +. -`?' - Briefly describe calendar commands (`describe-calendar-mode'). + This data is up-to-date as of January 17, 2001. -`C-c C-l' - Regenerate the calendar window (`redraw-calendar'). +Library Packages (libs) +----------------------- -`SPC' - Scroll the next window (`scroll-other-window'). + These packages are required to build and support most of the rest of +XEmacs. By design, xemacs-base is a `regular' package. Use restraint +when adding new files there as it is required by almost everything. -`q' - Exit from calendar (`exit-calendar'). +`Sun' + Support for Sparcworks. - If you want to know how many days have elapsed since the start of -the year, or the number of days remaining in the year, type the `p d' -command (`calendar-print-day-of-year'). This displays both of those -numbers in the echo area. +`apel' + A Portable Emacs Library. Used by XEmacs MIME support. - To display a brief description of the calendar commands, type `?' -(`describe-calendar-mode'). For a fuller description, type `C-h m'. +`dired' + The DIRectory EDitor is for manipulating, and running commands on + files in a directory. - You can use `SPC' (`scroll-other-window') to scroll the other -window. This is handy when you display a list of holidays or diary -entries in another window. +`edebug' + A Lisp debugger. - If the calendar window text gets corrupted, type `C-c C-l' -(`redraw-calendar') to redraw it. (This can only happen if you use -non-Calendar-mode editing commands.) +`efs' + Treat files on remote systems the same as local files. - In Calendar mode, you can use `SPC' (`scroll-other-window') to -scroll the other window. This is handy when you display a list of -holidays or diary entries in another window. +`elib' + Portable Emacs Lisp utilities library. - To exit from the calendar, type `q' (`exit-calendar'). This buries -all buffers related to the calendar, selecting other buffers. (If a -frame contains a dedicated calendar window, exiting from the calendar -iconifies that frame.) +`fsf-compat' + FSF Emacs compatibility files. - -File: xemacs.info, Node: LaTeX Calendar, Next: Holidays, Prev: General Calendar, Up: Calendar/Diary +`mail-lib' + Fundamental lisp files for providing email support. -LaTeX Calendar -============== +`sounds-au' + XEmacs Sun sound files. - The Calendar LaTeX commands produce a buffer of LaTeX code that -prints as a calendar. Depending on the command you use, the printed -calendar covers the day, week, month or year that point is in. +`sounds-wav' + XEmacs Microsoft sound files. -`t m' - Generate a one-month calendar (`cal-tex-cursor-month'). +`tooltalk' + Support for building with Tooltalk. -`t M' - Generate a sideways-printing one-month calendar - (`cal-tex-cursor-month-landscape'). +`xemacs-base' + Fundamental XEmacs support. Install this unless you wish a totally + naked XEmacs. -`t d' - Generate a one-day calendar (`cal-tex-cursor-day'). +`xemacs-devel' + XEmacs Lisp developer support. This package contains utilities for + supporting Lisp development. It is a single-file package so it + may be tailored. -`t w 1' - Generate a one-page calendar for one week (`cal-tex-cursor-week'). +Communications Packages (comm) +------------------------------ -`t w 2' - Generate a two-page calendar for one week (`cal-tex-cursor-week2'). + These packages provide support for various communications, primarily +email and usenet. -`t w 3' - Generate an ISO-style calendar for one week - (`cal-tex-cursor-week-iso'). +`bbdb' + The Big Brother Data Base -`t w 4' - Generate a calendar for one Monday-starting week - (`cal-tex-cursor-week-monday'). +`eicq' + ICQ Client developed and tested on Linux x86; only supported on + that platform -`t f w' - Generate a Filofax-style two-weeks-at-a-glance calendar - (`cal-tex-cursor-filofax-2week'). +`eudc' + Emacs Unified Directory Client (LDAP, PH). -`t f W' - Generate a Filofax-style one-week-at-a-glance calendar - (`cal-tex-cursor-filofax-week'). +`footnote' + Footnoting in mail message editing modes. -`t y' - Generate a calendar for one year (`cal-tex-cursor-year'). +`gnats' + XEmacs bug reports. -`t Y' - Generate a sideways-printing calendar for one year - (`cal-tex-cursor-year-landscape'). +`gnus' + The Gnus Newsreader and Mailreader. -`t f y' - Generate a Filofax-style calendar for one year - (`cal-tex-cursor-filofax-year'). +`mailcrypt' + Support for messaging encryption with PGP. - Some of these commands print the calendar sideways (in "landscape -mode"), so it can be wider than it is long. Some of them use Filofax -paper size (3.75in x 6.75in). All of these commands accept a prefix -argument which specifies how many days, weeks, months or years to print -(starting always with the selected one). +`mew' + Messaging in an Emacs World. - If the variable `cal-tex-holidays' is non-`nil' (the default), then -the printed calendars show the holidays in `calendar-holidays'. If the -variable `cal-tex-diary' is non-`nil' (the default is `nil'), diary -entries are included also (in weekly and monthly calendars only). +`mh-e' + Front end support for MH. - -File: xemacs.info, Node: Holidays, Next: Sunrise/Sunset, Prev: LaTeX Calendar, Up: Calendar/Diary - -Holidays --------- - - The Emacs calendar knows about all major and many minor holidays, -and can display them. - -`h' - Display holidays for the selected date - (`calendar-cursor-holidays'). - -`Button2 Holidays' - Display any holidays for the date you click on. - -`x' - Mark holidays in the calendar window (`mark-calendar-holidays'). - -`u' - Unmark calendar window (`calendar-unmark'). - -`a' - List all holidays for the displayed three months in another window - (`list-calendar-holidays'). - -`M-x holidays' - List all holidays for three months around today's date in another - window. - -`M-x list-holidays' - List holidays in another window for a specified range of years. - - To see if any holidays fall on a given date, position point on that -date in the calendar window and use the `h' command. Alternatively, -click on that date with `Button2' and then choose `Holidays' from the -menu that appears. Either way, this displays the holidays for that -date, in the echo area if they fit there, otherwise in a separate -window. - - To view the distribution of holidays for all the dates shown in the -calendar, use the `x' command. This displays the dates that are -holidays in a different face (or places a `*' after these dates, if -display with multiple faces is not available). The command applies both -to the currently visible months and to other months that subsequently -become visible by scrolling. To turn marking off and erase the current -marks, type `u', which also erases any diary marks (*note Diary::). - - To get even more detailed information, use the `a' command, which -displays a separate buffer containing a list of all holidays in the -current three-month range. You can use in the calendar window to -scroll that list. - - The command `M-x holidays' displays the list of holidays for the -current month and the preceding and succeeding months; this works even -if you don't have a calendar window. If you want the list of holidays -centered around a different month, use `C-u M-x holidays', which -prompts for the month and year. - - The holidays known to Emacs include United States holidays and the -major Christian, Jewish, and Islamic holidays; also the solstices and -equinoxes. - - The command `M-x list-holidays' displays the list of holidays for a -range of years. This function asks you for the starting and stopping -years, and allows you to choose all the holidays or one of several -categories of holidays. You can use this command even if you don't have -a calendar window. - - The dates used by Emacs for holidays are based on _current -practice_, not historical fact. Historically, for instance, the start -of daylight savings time and even its existence have varied from year to -year, but present United States law mandates that daylight savings time -begins on the first Sunday in April. When the daylight savings rules -are set up for the United States, Emacs always uses the present -definition, even though it is wrong for some prior years. +`net-utils' + Miscellaneous Networking Utilities. This is a single-file package + and files may be deleted at will. - -File: xemacs.info, Node: Sunrise/Sunset, Next: Lunar Phases, Prev: Holidays, Up: Calendar/Diary - -Times of Sunrise and Sunset ---------------------------- - - Special calendar commands can tell you, to within a minute or two, -the times of sunrise and sunset for any date. - -`S' - Display times of sunrise and sunset for the selected date - (`calendar-sunrise-sunset'). - -`Button2 Sunrise/Sunset' - Display times of sunrise and sunset for the date you click on. - -`M-x sunrise-sunset' - Display times of sunrise and sunset for today's date. - -`C-u M-x sunrise-sunset' - Display times of sunrise and sunset for a specified date. - - Within the calendar, to display the _local times_ of sunrise and -sunset in the echo area, move point to the date you want, and type `S'. -Alternatively, click `Button2' on the date, then choose -`Sunrise/Sunset' from the menu that appears. The command `M-x -sunrise-sunset' is available outside the calendar to display this -information for today's date or a specified date. To specify a date -other than today, use `C-u M-x sunrise-sunset', which prompts for the -year, month, and day. - - You can display the times of sunrise and sunset for any location and -any date with `C-u C-u M-x sunrise-sunset'. This asks you for a -longitude, latitude, number of minutes difference from Coordinated -Universal Time, and date, and then tells you the times of sunrise and -sunset for that location on that date. - - Because the times of sunrise and sunset depend on the location on -earth, you need to tell Emacs your latitude, longitude, and location -name before using these commands. Here is an example of what to set: - - (setq calendar-latitude 40.1) - (setq calendar-longitude -88.2) - (setq calendar-location-name "Urbana, IL") - -Use one decimal place in the values of `calendar-latitude' and -`calendar-longitude'. - - Your time zone also affects the local time of sunrise and sunset. -Emacs usually gets time zone information from the operating system, but -if these values are not what you want (or if the operating system does -not supply them), you must set them yourself. Here is an example: - - (setq calendar-time-zone -360) - (setq calendar-standard-time-zone-name "CST") - (setq calendar-daylight-time-zone-name "CDT") - -The value of `calendar-time-zone' is the number of minutes difference -between your local standard time and Coordinated Universal Time -(Greenwich time). The values of `calendar-standard-time-zone-name' and -`calendar-daylight-time-zone-name' are the abbreviations used in your -time zone. Emacs displays the times of sunrise and sunset _corrected -for daylight savings time_. *Note Daylight Savings::, for how daylight -savings time is determined. - - As a user, you might find it convenient to set the calendar location -variables for your usual physical location in your `.emacs' file. And -when you install Emacs on a machine, you can create a `default.el' file -which sets them properly for the typical location of most users of that -machine. *Note Init File::. +`rmail' + An obsolete Emacs mailer. If you do not already use it don't + start. - -File: xemacs.info, Node: Lunar Phases, Next: Other Calendars, Prev: Sunrise/Sunset, Up: Calendar/Diary +`supercite' + An Emacs citation tool. Useful with all Emacs Mailers and + Newsreaders. + +`tm' + Emacs MIME support. Not needed for Gnus >= 5.8.0 -Phases of the Moon ------------------- +`vm' + An Emacs mailer. - These calendar commands display the dates and times of the phases of -the moon (new moon, first quarter, full moon, last quarter). This -feature is useful for debugging problems that "depend on the phase of -the moon." +`w3' + A Web browser. -`M' - Display the dates and times for all the quarters of the moon for - the three-month period shown (`calendar-phases-of-moon'). +`zenirc' + ZENIRC IRC Client. -`M-x phases-of-moon' - Display dates and times of the quarters of the moon for three - months around today's date. +Games and Amusements (games) +---------------------------- - Within the calendar, use the `M' command to display a separate -buffer of the phases of the moon for the current three-month range. The -dates and times listed are accurate to within a few minutes. + All work and no play... - Outside the calendar, use the command `M-x phases-of-moon' to -display the list of the phases of the moon for the current month and the -preceding and succeeding months. For information about a different -month, use `C-u M-x phases-of-moon', which prompts for the month and -year. +`cookie' + Spook and Yow (Zippy quotes). - The dates and times given for the phases of the moon are given in -local time (corrected for daylight savings, when appropriate); but if -the variable `calendar-time-zone' is void, Coordinated Universal Time -(the Greenwich time zone) is used. *Note Daylight Savings::. +`games' + Tetris, Sokoban, and Snake. - -File: xemacs.info, Node: Other Calendars, Next: Calendar Systems, Prev: Lunar Phases, Up: Calendar/Diary +`mine' + Minehunt. + +`misc-games' + Other amusements and diversions. + +Mule Support (mule) +------------------- + + MULti-lingual Enhancement. Support for world scripts such as Latin, +Arabic, Cyrillic, Chinese, Japanese, Greek, Hebrew etc. To use these +packages your XEmacs must be compiled with Mule support. + +`edict' + Lisp Interface to EDICT, Kanji Dictionary. + +`egg-its' + Wnn (4.2 and 6) support. SJ3 support. Must be installed prior to + XEmacs build. + +`leim' + Quail. Used for everything other than English and Japanese. + +`locale' + Used for localized menubars (French and Japanese) and localized + splash screens (Japanese). + +`lookup' + Dictionary support. (This isn't an English dictionary program) + +`mule-base' + Basic Mule support. Must be installed prior to building with Mule. + +`skk' + Another Japanese Language Input Method. Can be used without a + separate process running as a dictionary server. + +Productivity Packages (oa) +-------------------------- + + Things to make life a little easier. + +`calc' + Emacs calculator. + +`calendar' + Calendar and diary support. + +`edit-utils' + Single file lisp packages for various XEmacs goodies. Load this + and weed out the junk you don't want. + +`forms' + Forms editing support (obsolete, use the built-in Widget instead). + +`frame-icon' + Provide a WM icon based on major mode. + +`hm--html-menus' + HTML editing. + +`ispell' + Spell-checking with ispell. + +`pc' + PC style interface emulation. + +`psgml' + Validated HTML/SGML editing. + +`sgml' + SGML/Linuxdoc-SGML editing. + +`slider' + User interface tool. + +`speedbar' + Provides a separate frame with convenient references. + +`strokes' + Mouse enhancement utility. + +`text-modes' + Various single file lisp packages for editing text files. + +`time' + Display time & date on the modeline. + +Operating System Utilities (os) +------------------------------- + + Tools for working with the operating system. + +`eshell' + Command shell implemented entirely in Emacs Lisp. + +`eterm' + Terminal emulator. + +`igrep' + Enhanced front-end for Grep. + +`ilisp' + Front-end for Inferior Lisp. + +`os-utils' + Miscellaneous single-file O/S utilities, for printing, archiving, + compression, remote shells, etc. + +`pcomplete' + Provides programmatic completion. + +`ps-print-nomule' + Old, but no-Mule safe ps-print. + +`view-process' + A Unix process browsing tool. + +Program Editing Support (prog) +------------------------------ + + XEmacs supports a multitude of programming languages. These +packages will help your coding. + +`ada' + Ada language support. + +`c-support' + Basic single-file add-ons for editing C code. + +`cc-mode' + C, C++ and Java language support. + +`debug' + GUD, gdb, dbx debugging support. + +`ediff' + Interface over patch. + +`emerge' + Another interface over patch. + +`idlwave' + Editing and Shell mode for the Interactive Data Language. + +`jde' + Java language and development support. + +`pcl-cvs' + CVS frontend. + +`prog-modes' + Miscellaneous single-file lisp files for various programming + languages. + +`scheme' + Front-end support for Inferior Scheme. + +`semantic' + Semantic bovinator. + +`sh-script' + Support for editing shell scripts. + +`vc' + Version Control for Free systems. + +`vc-cc' + Version Control for ClearCase. This package will shortly be + replaced with clearcase.el + +`vhdl' + Support for VHDL. + +Word Processing (wp) +-------------------- + + Working with text. + +`auctex' + Basic TeX/LaTeX support. + +`crisp' + Crisp/Brief emulation. + +`edt' + DEC EDIT/EDT emulation. + +`reftex' + Emacs support for LaTeX cross-references, citations. -Conversion To and From Other Calendars --------------------------------------- +`texinfo' + XEmacs TeXinfo support. - The Emacs calendar displayed is _always_ the Gregorian calendar, -sometimes called the "new style" calendar, which is used in most of the -world today. However, this calendar did not exist before the sixteenth -century and was not widely used before the eighteenth century; it did -not fully displace the Julian calendar and gain universal acceptance -until the early twentieth century. The Emacs calendar can display any -month since January, year 1 of the current era, but the calendar -displayed is the Gregorian, even for a date at which the Gregorian -calendar did not exist. +`textools' + Single-file TeX support. - While Emacs cannot display other calendars, it can convert dates to -and from several other calendars. +`tpu' + DEC EDIT/TPU support. + +`viper' + VI emulation support. + + +File: xemacs.info, Node: Abbrevs, Next: Picture, Prev: Running, Up: Top + +Abbrevs +******* + + An "abbrev" is a word which "expands" into some different text. +Abbrevs are defined by the user to expand in specific ways. For +example, you might define `foo' as an abbrev expanding to `find outer +otter'. With this abbrev defined, you would be able to get `find outer +otter ' into the buffer by typing `f o o '. + + Abbrevs expand only when Abbrev mode (a minor mode) is enabled. +Disabling Abbrev mode does not cause abbrev definitions to be discarded, +but they do not expand until Abbrev mode is enabled again. The command +`M-x abbrev-mode' toggles Abbrev mode; with a numeric argument, it +turns Abbrev mode on if the argument is positive, off otherwise. *Note +Minor Modes::. `abbrev-mode' is also a variable; Abbrev mode is on +when the variable is non-`nil'. The variable `abbrev-mode' +automatically becomes local to the current buffer when it is set. + + Abbrev definitions can be "mode-specific"--active only in one major +mode. Abbrevs can also have "global" definitions that are active in +all major modes. The same abbrev can have a global definition and +various mode-specific definitions for different major modes. A +mode-specific definition for the current major mode overrides a global +definition. + + You can define Abbrevs interactively during an editing session. You +can also save lists of abbrev definitions in files and reload them in +later sessions. Some users keep extensive lists of abbrevs that they +load in every session. + + A second kind of abbreviation facility is called the "dynamic +expansion". Dynamic abbrev expansion happens only when you give an +explicit command and the result of the expansion depends only on the +current contents of the buffer. *Note Dynamic Abbrevs::. * Menu: -* Calendar Systems:: The calendars Emacs understands - (aside from Gregorian). -* To Other Calendar:: Converting the selected date to various calendars. -* From Other Calendar:: Moving to a date specified in another calendar. -* Mayan Calendar:: Moving to a date specified in a Mayan calendar. +* Defining Abbrevs:: Defining an abbrev, so it will expand when typed. +* Expanding Abbrevs:: Controlling expansion: prefixes, canceling expansion. +* Editing Abbrevs:: Viewing or editing the entire list of defined abbrevs. +* Saving Abbrevs:: Saving the entire list of abbrevs for another session. +* Dynamic Abbrevs:: Abbreviations for words already in the buffer. - If you are interested in these calendars, you can convert dates one -at a time. Put point on the desired date of the Gregorian calendar and -press the appropriate keys. The `p' is a mnemonic for "print" since -Emacs "prints' the equivalent date in the echo area. + +File: xemacs.info, Node: Defining Abbrevs, Next: Expanding Abbrevs, Prev: Abbrevs, Up: Abbrevs + +Defining Abbrevs +================ + +`C-x a g' + Define an abbrev to expand into some text before point + (`add-global-abbrev'). + +`C-x a l' + Similar, but define an abbrev available only in the current major + mode (`add-mode-abbrev'). + +`C-x a i g' + Define a word in the buffer as an abbrev + (`inverse-add-global-abbrev'). + +`C-x a i l' + Define a word in the buffer as a mode-specific abbrev + (`inverse-add-mode-abbrev'). + +`M-x kill-all-abbrevs' + After this command, no abbrev definitions remain in effect. + + The usual way to define an abbrev is to enter the text you want the +abbrev to expand to, position point after it, and type `C-x a g' +(`add-global-abbrev'). This reads the abbrev itself using the +minibuffer, and then defines it as an abbrev for one or more words +before point. Use a numeric argument to say how many words before point +should be taken as the expansion. For example, to define the abbrev +`foo' as in the example above, insert the text `find outer otter', then +type +`C-u 3 C-x a g f o o '. + + An argument of zero to `C-x a g' means to use the contents of the +region as the expansion of the abbrev being defined. + + The command `C-x a l' (`add-mode-abbrev') is similar, but defines a +mode-specific abbrev. Mode-specific abbrevs are active only in a +particular major mode. `C-x a l' defines an abbrev for the major mode +in effect at the time `C-x a l' is typed. The arguments work the same +way they do for `C-x a g'. + + If the text of an abbrev you want is already in the buffer instead of +the expansion, use command `C-x a i g' (`inverse-add-global-abbrev') +instead of `C-x a g', or use `C-x a i l' (`inverse-add-mode-abbrev') +instead of `C-x a l'. These commands are called "inverse" because they +invert the meaning of the argument found in the buffer and the argument +read using the minibuffer. + + To change the definition of an abbrev, just add the new definition. +You will be asked to confirm if the abbrev has a prior definition. To +remove an abbrev definition, give a negative argument to `C-x a g' or +`C-x a l'. You must choose the command to specify whether to kill a +global definition or a mode-specific definition for the current mode, +since those two definitions are independent for one abbrev. + + `M-x kill-all-abbrevs' removes all existing abbrev definitions.  -File: xemacs.info, Node: Calendar Systems, Next: To Other Calendar, Prev: Other Calendars, Up: Other Calendars - -Supported Calendar Systems -========================== - - The ISO commercial calendar is used largely in Europe. - - The Julian calendar, named after Julius Caesar, was the one used in -Europe throughout medieval times, and in many countries up until the -nineteenth century. - - Astronomers use a simple counting of days elapsed since noon, Monday, -January 1, 4713 B.C. on the Julian calendar. The number of days elapsed -is called the _Julian day number_ or the _Astronomical day number_. - - The Hebrew calendar is used by tradition in the Jewish religion. The -Emacs calendar program uses the Hebrew calendar to determine the dates -of Jewish holidays. Hebrew calendar dates begin and end at sunset. - - The Islamic calendar is used in many predominantly Islamic countries. -Emacs uses it to determine the dates of Islamic holidays. There is no -universal agreement in the Islamic world about the calendar; Emacs uses -a widely accepted version, but the precise dates of Islamic holidays -often depend on proclamation by religious authorities, not on -calculations. As a consequence, the actual dates of observance can vary -slightly from the dates computed by Emacs. Islamic calendar dates begin -and end at sunset. - - The French Revolutionary calendar was created by the Jacobins after -the 1789 revolution, to represent a more secular and nature-based view -of the annual cycle, and to install a 10-day week in a rationalization -measure similar to the metric system. The French government officially -abandoned this calendar at the end of 1805. - - The Maya of Central America used three separate, overlapping calendar -systems, the _long count_, the _tzolkin_, and the _haab_. Emacs knows -about all three of these calendars. Experts dispute the exact -correlation between the Mayan calendar and our calendar; Emacs uses the -Goodman-Martinez-Thompson correlation in its calculations. - - The Copts use a calendar based on the ancient Egyptian solar -calendar. Their calendar consists of twelve 30-day months followed by -an extra five-day period. Once every fourth year they add a leap day -to this extra period to make it six days. The Ethiopic calendar is -identical in structure, but has different year numbers and month names. - - The Persians use a solar calendar based on a design of Omar Khayyam. -Their calendar consists of twelve months of which the first six have 31 -days, the next five have 30 days, and the last has 29 in ordinary years -and 30 in leap years. Leap years occur in a complicated pattern every -four or five years. - - The Chinese calendar is a complicated system of lunar months arranged -into solar years. The years go in cycles of sixty, each year containing -either twelve months in an ordinary year or thirteen months in a leap -year; each month has either 29 or 30 days. Years, ordinary months, and -days are named by combining one of ten "celestial stems" with one of -twelve "terrestrial branches" for a total of sixty names that are -repeated in a cycle of sixty. +File: xemacs.info, Node: Expanding Abbrevs, Next: Editing Abbrevs, Prev: Defining Abbrevs, Up: Abbrevs + +Controlling Abbrev Expansion +============================ + + An abbrev expands whenever it is in a buffer just before point and +you type a self-inserting punctuation character (, comma, etc.). +Most often an abbrev is used by inserting the abbrev followed by +punctuation. + + Abbrev expansion preserves case; thus, `foo' expands into `find +outer otter', `Foo' into `Find outer otter', and `FOO' into `FIND OUTER +OTTER' or `Find Outer Otter' according to the variable +`abbrev-all-caps' (a non-`nil' value chooses the first of the two +expansions). + + Two commands are available to control abbrev expansion: + +`M-'' + Separate a prefix from a following abbrev to be expanded + (`abbrev-prefix-mark'). + +`C-x a e' + Expand the abbrev before point (`expand-abbrev'). This is + effective even when Abbrev mode is not enabled. + +`M-x unexpand-abbrev' + Undo last abbrev expansion. + +`M-x expand-region-abbrevs' + Expand some or all abbrevs found in the region. + + You may wish to expand an abbrev with a prefix attached. For +example, if `cnst' expands into `construction', you may want to use it +to enter `reconstruction'. It does not work to type `recnst', because +that is not necessarily a defined abbrev. Instead, you can use the +command `M-'' (`abbrev-prefix-mark') between the prefix `re' and the +abbrev `cnst'. First, insert `re'. Then type `M-''; this inserts a +minus sign in the buffer to indicate that it has done its work. Then +insert the abbrev `cnst'. The buffer now contains `re-cnst'. Now +insert a punctuation character to expand the abbrev `cnst' into +`construction'. The minus sign is deleted at this point by `M-''. The +resulting text is the desired `reconstruction'. + + If you actually want the text of the abbrev in the buffer, rather +than its expansion, insert the following punctuation with `C-q'. Thus, +`foo C-q -' leaves `foo-' in the buffer. + + If you expand an abbrev by mistake, you can undo the expansion +(replace the expansion by the original abbrev text) with `M-x +unexpand-abbrev'. You can also use `C-_' (`undo') to undo the +expansion; but that will first undo the insertion of the punctuation +character. + + `M-x expand-region-abbrevs' searches through the region for defined +abbrevs, and offers to replace each one it finds with its expansion. +This command is useful if you have typed text using abbrevs but forgot +to turn on Abbrev mode first. It may also be useful together with a +special set of abbrev definitions for making several global +replacements at once. The command is effective even if Abbrev mode is +not enabled.  -File: xemacs.info, Node: To Other Calendar, Next: From Other Calendar, Prev: Calendar Systems, Up: Other Calendars +File: xemacs.info, Node: Editing Abbrevs, Next: Saving Abbrevs, Prev: Expanding Abbrevs, Up: Abbrevs -Converting To Other Calendars +Examining and Editing Abbrevs ============================= - The following commands describe the selected date (the date at point) -in various other calendar systems: +`M-x list-abbrevs' + Print a list of all abbrev definitions. -`Button2 Other Calendars' - Display the date that you click on, expressed in various other - calendars. +`M-x edit-abbrevs' + Edit a list of abbrevs; you can add, alter, or remove definitions. -`p c' - Display ISO commercial calendar equivalent for selected day - (`calendar-print-iso-date'). + The output from `M-x list-abbrevs' looks like this: -`p j' - Display Julian date for selected day - (`calendar-print-julian-date'). + (lisp-mode-abbrev-table) + "dk" 0 "define-key" + (global-abbrev-table) + "dfn" 0 "definition" -`p a' - Display astronomical (Julian) day number for selected day - (`calendar-print-astro-day-number'). +(Some blank lines of no semantic significance, and some other abbrev +tables, have been omitted.) -`p h' - Display Hebrew date for selected day - (`calendar-print-hebrew-date'). + A line containing a name in parentheses is the header for abbrevs in +a particular abbrev table; `global-abbrev-table' contains all the global +abbrevs, and the other abbrev tables that are named after major modes +contain the mode-specific abbrevs. -`p i' - Display Islamic date for selected day - (`calendar-print-islamic-date'). + Within each abbrev table, each non-blank line defines one abbrev. +The word at the beginning is the abbrev. The number that appears is +the number of times the abbrev has been expanded. Emacs keeps track of +this to help you see which abbrevs you actually use, in case you want +to eliminate those that you don't use often. The string at the end of +the line is the expansion. -`p f' - Display French Revolutionary date for selected day - (`calendar-print-french-date'). + `M-x edit-abbrevs' allows you to add, change or kill abbrev +definitions by editing a list of them in an Emacs buffer. The list has +the format described above. The buffer of abbrevs is called +`*Abbrevs*', and is in Edit-Abbrevs mode. This mode redefines the key +`C-c C-c' to install the abbrev definitions as specified in the buffer. +The `edit-abbrevs-redefine' command does this. Any abbrevs not +described in the buffer are eliminated when this is done. -`p C' - Display Chinese date for selected day - (`calendar-print-chinese-date'). + `edit-abbrevs' is actually the same as `list-abbrevs', except that +it selects the buffer `*Abbrevs*' whereas `list-abbrevs' merely +displays it in another window. -`p k' - Display Coptic date for selected day - (`calendar-print-coptic-date'). + +File: xemacs.info, Node: Saving Abbrevs, Next: Dynamic Abbrevs, Prev: Editing Abbrevs, Up: Abbrevs -`p e' - Display Ethiopic date for selected day - (`calendar-print-ethiopic-date'). +Saving Abbrevs +============== -`p p' - Display Persian date for selected day - (`calendar-print-persian-date'). + These commands allow you to keep abbrev definitions between editing +sessions. -`p m' - Display Mayan date for selected day (`calendar-print-mayan-date'). +`M-x write-abbrev-file' + Write a file describing all defined abbrevs. - If you are using X, the easiest way to translate a date into other -calendars is to click on it with `Button2', then choose `Other -Calendars' from the menu that appears. This displays the equivalent -forms of the date in all the calendars Emacs understands, in the form of -a menu. (Choosing an alternative from this menu doesn't actually do -anything--the menu is used only for display.) +`M-x read-abbrev-file' + Read such an abbrev file and define abbrevs as specified there. - Put point on the desired date of the Gregorian calendar, then type -the appropriate keys. The `p' is a mnemonic for "print" since Emacs -"prints" the equivalent date in the echo area. +`M-x quietly-read-abbrev-file' + Similar, but do not display a message about what is going on. - -File: xemacs.info, Node: From Other Calendar, Next: Mayan Calendar, Prev: To Other Calendar, Up: Other Calendars +`M-x define-abbrevs' + Define abbrevs from buffer. -Converting From Other Calendars -=============================== +`M-x insert-abbrevs' + Insert all abbrevs and their expansions into the buffer. + + Use `M-x write-abbrev-file' to save abbrev definitions for use in a +later session. The command reads a file name using the minibuffer and +writes a description of all current abbrev definitions into the +specified file. The text stored in the file looks like the output of +`M-x list-abbrevs'. - You can use the other supported calendars to specify a date to move -to. This section describes the commands for doing this using calendars -other than Mayan; for the Mayan calendar, see the following section. - -`g c' - Move to a date specified in the ISO commercial calendar - (`calendar-goto-iso-date'). - -`g j' - Move to a date specified in the Julian calendar - (`calendar-goto-julian-date'). - -`g a' - Move to a date specified in astronomical (Julian) day number - (`calendar-goto-astro-day-number'). - -`g h' - Move to a date specified in the Hebrew calendar - (`calendar-goto-hebrew-date'). - -`g i' - Move to a date specified in the Islamic calendar - (`calendar-goto-islamic-date'). - -`g f' - Move to a date specified in the French Revolutionary calendar - (`calendar-goto-french-date'). - -`g C' - Move to a date specified in the Chinese calendar - (`calendar-goto-chinese-date'). - -`g p' - Move to a date specified in the Persian calendar - (`calendar-goto-persian-date'). - -`g k' - Move to a date specified in the Coptic calendar - (`calendar-goto-coptic-date'). - -`g e' - Move to a date specified in the Ethiopic calendar - (`calendar-goto-ethiopic-date'). - - These commands ask you for a date on the other calendar, move point -to the Gregorian calendar date equivalent to that date, and display the -other calendar's date in the echo area. Emacs uses strict completion -(*note Completion::) whenever it asks you to type a month name, so you -don't have to worry about the spelling of Hebrew, Islamic, or French -names. - - One common question concerning the Hebrew calendar is the computation -of the anniversary of a date of death, called a "yahrzeit." The Emacs -calendar includes a facility for such calculations. If you are in the -calendar, the command `M-x list-yahrzeit-dates' asks you for a range of -years and then displays a list of the yahrzeit dates for those years -for the date given by point. If you are not in the calendar, this -command first asks you for the date of death and the range of years, -and then displays the list of yahrzeit dates. + `M-x read-abbrev-file' prompts for a file name using the minibuffer +and reads the specified file, defining abbrevs according to its +contents. `M-x quietly-read-abbrev-file' is the same but does not +display a message in the echo area; it is actually useful primarily in +the init file. *Note Init File::. If you give an empty argument to +either of these functions, the file name Emacs uses is the value of the +variable `abbrev-file-name', which is by default `"~/.abbrev_defs"'. + + Emacs offers to save abbrevs automatically if you have changed any of +them, whenever it offers to save all files (for `C-x s' or `C-x C-c'). +Set the variable `save-abbrevs' to `nil' to inhibit this feature. + + The commands `M-x insert-abbrevs' and `M-x define-abbrevs' are +similar to the previous commands but work on text in an Emacs buffer. +`M-x insert-abbrevs' inserts text into the current buffer before point, +describing all current abbrev definitions; `M-x define-abbrevs' parses +the entire current buffer and defines abbrevs accordingly.  -File: xemacs.info, Node: Mayan Calendar, Next: Diary, Prev: From Other Calendar, Up: Other Calendars - -Converting from the Mayan Calendar ----------------------------------- - - Here are the commands to select dates based on the Mayan calendar: - -`g m l' - Move to a date specified by the long count calendar - (`calendar-goto-mayan-long-count-date'). - -`g m n t' - Move to the next occurrence of a place in the tzolkin calendar - (`calendar-next-tzolkin-date'). - -`g m p t' - Move to the previous occurrence of a place in the tzolkin calendar - (`calendar-previous-tzolkin-date'). - -`g m n h' - Move to the next occurrence of a place in the haab calendar - (`calendar-next-haab-date'). - -`g m p h' - Move to the previous occurrence of a place in the haab calendar - (`calendar-previous-haab-date'). - -`g m n c' - Move to the next occurrence of a place in the calendar round - (`calendar-next-calendar-round-date'). - -`g m p c' - Move to the previous occurrence of a place in the calendar round - (`calendar-previous-calendar-round-date'). - - To understand these commands, you need to understand the Mayan -calendars. The "long count" is a counting of days with these units: - - 1 kin = 1 day 1 uinal = 20 kin 1 tun = 18 uinal - 1 katun = 20 tun 1 baktun = 20 katun - -Thus, the long count date 12.16.11.16.6 means 12 baktun, 16 katun, 11 -tun, 16 uinal, and 6 kin. The Emacs calendar can handle Mayan long -count dates as early as 7.17.18.13.1, but no earlier. When you use the -`g m l' command, type the Mayan long count date with the baktun, katun, -tun, uinal, and kin separated by periods. - - The Mayan tzolkin calendar is a cycle of 260 days formed by a pair of -independent cycles of 13 and 20 days. Since this cycle repeats -endlessly, Emacs provides commands to move backward and forward to the -previous or next point in the cycle. Type `g m p t' to go to the -previous tzolkin date; Emacs asks you for a tzolkin date and moves point -to the previous occurrence of that date. Similarly, type `g m n t' to -go to the next occurrence of a tzolkin date. - - The Mayan haab calendar is a cycle of 365 days arranged as 18 months -of 20 days each, followed a 5-day monthless period. Like the tzolkin -cycle, this cycle repeats endlessly, and there are commands to move -backward and forward to the previous or next point in the cycle. Type -`g m p h' to go to the previous haab date; Emacs asks you for a haab -date and moves point to the previous occurrence of that date. -Similarly, type `g m n h' to go to the next occurrence of a haab date. - - The Maya also used the combination of the tzolkin date and the haab -date. This combination is a cycle of about 52 years called a _calendar -round_. If you type `g m p c', Emacs asks you for both a haab and a -tzolkin date and then moves point to the previous occurrence of that -combination. Use `g m n c' to move point to the next occurrence of a -combination. These commands signal an error if the haab/tzolkin date -combination you have typed is impossible. - - Emacs uses strict completion (*note Completion::) whenever it asks -you to type a Mayan name, so you don't have to worry about spelling. +File: xemacs.info, Node: Dynamic Abbrevs, Prev: Saving Abbrevs, Up: Abbrevs + +Dynamic Abbrev Expansion +======================== + + The abbrev facility described above operates automatically as you +insert text, but all abbrevs must be defined explicitly. By contrast, +"dynamic abbrevs" allow the meanings of abbrevs to be determined +automatically from the contents of the buffer, but dynamic abbrev +expansion happens only when you request it explicitly. + +`M-/' + Expand the word in the buffer before point as a "dynamic abbrev", + by searching in the buffer for words starting with that + abbreviation (`dabbrev-expand'). + + For example, if the buffer contains `does this follow ' and you type +`f o M-/', the effect is to insert `follow' because that is the last +word in the buffer that starts with `fo'. A numeric argument to `M-/' +says to take the second, third, etc. distinct expansion found looking +backward from point. Repeating `M-/' searches for an alternative +expansion by looking farther back. After the entire buffer before +point has been considered, the buffer after point is searched. + + Dynamic abbrev expansion is completely independent of Abbrev mode; +the expansion of a word with `M-/' is completely independent of whether +it has a definition as an ordinary abbrev.  -File: xemacs.info, Node: Diary, Next: Calendar Customization, Prev: Mayan Calendar, Up: Calendar/Diary - -The Diary ---------- - - The Emacs diary keeps track of appointments or other events on a -daily basis, in conjunction with the calendar. To use the diary -feature, you must first create a "diary file" containing a list of -events and their dates. Then Emacs can automatically pick out and -display the events for today, for the immediate future, or for any -specified date. - - By default, Emacs uses `~/diary' as the diary file. This is the -same file that the `calendar' utility uses. A sample `~/diary' file is: - - 12/22/1988 Twentieth wedding anniversary!! - &1/1. Happy New Year! - 10/22 Ruth's birthday. - * 21, *: Payday - Tuesday--weekly meeting with grad students at 10am - Supowit, Shen, Bitner, and Kapoor to attend. - 1/13/89 Friday the thirteenth!! - &thu 4pm squash game with Lloyd. - mar 16 Dad's birthday - April 15, 1989 Income tax due. - &* 15 time cards due. - -This example uses extra spaces to align the event descriptions of most -of the entries. Such formatting is purely a matter of taste. - - Although you probably will start by creating a diary manually, Emacs -provides a number of commands to let you view, add, and change diary -entries. You can also share diary entries with other users (*note -Included Diary Files::). +File: xemacs.info, Node: Picture, Next: Sending Mail, Prev: Abbrevs, Up: Top + +Editing Pictures +**************** + + If you want to create a picture made out of text characters (for +example, a picture of the division of a register into fields, as a +comment in a program), use the command `edit-picture' to enter Picture +mode. + + In Picture mode, editing is based on the "quarter-plane" model of +text. In this model, the text characters lie studded on an area that +stretches infinitely far to the right and downward. The concept of the +end of a line does not exist in this model; the most you can say is +where the last non-blank character on the line is found. + + Of course, Emacs really always considers text as a sequence of +characters, and lines really do have ends. But in Picture mode most +frequently-used keys are rebound to commands that simulate the +quarter-plane model of text. They do this by inserting spaces or by +converting tabs to spaces. + + Most of the basic editing commands of Emacs are redefined by Picture +mode to do essentially the same thing but in a quarter-plane way. In +addition, Picture mode defines various keys starting with the `C-c' +prefix to run special picture editing commands. + + One of these keys, `C-c C-c', is pretty important. Often a picture +is part of a larger file that is usually edited in some other major +mode. `M-x edit-picture' records the name of the previous major mode. +You can then use the `C-c C-c' command (`picture-mode-exit') to restore +that mode. `C-c C-c' also deletes spaces from the ends of lines, +unless you give it a numeric argument. + + The commands used in Picture mode all work in other modes (provided +the `picture' library is loaded), but are only bound to keys in +Picture mode. Note that the descriptions below talk of moving "one +column" and so on, but all the picture mode commands handle numeric +arguments as their normal equivalents do. + + Turning on Picture mode calls the value of the variable +`picture-mode-hook' as a function, with no arguments, if that value +exists and is non-`nil'. * Menu: -* Diary Commands:: Viewing diary entries and associated calendar dates. -* Format of Diary File:: Entering events in your diary. -* Date Formats:: Various ways you can specify dates. -* Adding to Diary:: Commands to create diary entries. -* Special Diary Entries:: Anniversaries, blocks of dates, cyclic entries, etc. +* Basic Picture:: Basic concepts and simple commands of Picture Mode. +* Insert in Picture:: Controlling direction of cursor motion + after "self-inserting" characters. +* Tabs in Picture:: Various features for tab stops and indentation. +* Rectangles in Picture:: Clearing and superimposing rectangles.  -File: xemacs.info, Node: Diary Commands, Next: Format of Diary File, Prev: Diary, Up: Diary +File: xemacs.info, Node: Basic Picture, Next: Insert in Picture, Prev: Picture, Up: Picture -Commands Displaying Diary Entries ---------------------------------- +Basic Editing in Picture Mode +============================= - Once you have created a `~/diary' file, you can use the calendar to -view it. You can also view today's events outside of Calendar mode. + Most keys do the same thing in Picture mode that they usually do, +but do it in a quarter-plane style. For example, `C-f' is rebound to +run `picture-forward-column', which moves point one column to the +right, by inserting a space if necessary, so that the actual end of the +line makes no difference. `C-b' is rebound to run +`picture-backward-column', which always moves point left one column, +converting a tab to multiple spaces if necessary. `C-n' and `C-p' are +rebound to run `picture-move-down' and `picture-move-up', which can +either insert spaces or convert tabs as necessary to make sure that +point stays in exactly the same column. `C-e' runs +`picture-end-of-line', which moves to after the last non-blank +character on the line. There was no need to change `C-a', as the choice +of screen model does not affect beginnings of lines. + + Insertion of text is adapted to the quarter-plane screen model +through the use of Overwrite mode (*note Minor Modes::). +Self-inserting characters replace existing text, column by column, +rather than pushing existing text to the right. runs +`picture-newline', which just moves to the beginning of the following +line so that new text will replace that line. + + Text is erased instead of deleted and killed. +(`picture-backward-clear-column') replaces the preceding character with +a space rather than removing it. `C-d' (`picture-clear-column') does +the same in a forward direction. `C-k' (`picture-clear-line') really +kills the contents of lines, but never removes the newlines from a +buffer. + + To do actual insertion, you must use special commands. `C-o' +(`picture-open-line') creates a blank line, but does so after the +current line; it never splits a line. `C-M-o', `split-line', makes +sense in Picture mode, so it remains unchanged. +(`picture-duplicate-line') inserts another line with the same contents +below the current line. + + To actually delete parts of the picture, use `C-w', or with `C-c +C-d' (which is defined as `delete-char', as `C-d' is in other modes), +or with one of the picture rectangle commands (*note Rectangles in +Picture::). -`d' - Display all diary entries for the selected date - (`view-diary-entries'). + +File: xemacs.info, Node: Insert in Picture, Next: Tabs in Picture, Prev: Basic Picture, Up: Picture -`Button2 Diary' - Display all diary entries for the date you click on. +Controlling Motion After Insert +=============================== -`s' - Display the entire diary file (`show-all-diary-entries'). + Since "self-inserting" characters just overwrite and move point in +Picture mode, there is no essential restriction on how point should be +moved. Normally point moves right, but you can specify any of the eight +orthogonal or diagonal directions for motion after a "self-inserting" +character. This is useful for drawing lines in the buffer. -`m' - Mark all visible dates that have diary entries - (`mark-diary-entries'). +`C-c <' + Move left after insertion (`picture-movement-left'). -`u' - Unmark the calendar window (`calendar-unmark'). +`C-c >' + Move right after insertion (`picture-movement-right'). -`M-x print-diary-entries' - Print hard copy of the diary display as it appears. +`C-c ^' + Move up after insertion (`picture-movement-up'). -`M-x diary' - Display all diary entries for today's date. +`C-c .' + Move down after insertion (`picture-movement-down'). -`M-x diary-mail-entries' - Mail yourself email reminders about upcoming diary entries. +`C-c `' + Move up and left ("northwest") after insertion + (`picture-movement-nw'). - Displaying the diary entries with `d' shows in a separate window the -diary entries for the selected date in the calendar. The mode line of -the new window shows the date of the diary entries and any holidays -that fall on that date. If you specify a numeric argument with `d', it -shows all the diary entries for that many successive days. Thus, `2 d' -displays all the entries for the selected date and for the following -day. +`C-c '' + Move up and right ("northeast") after insertion + (`picture-movement-ne'). - Another way to display the diary entries for a date is to click -`Button2' on the date, and then choose `Diary' from the menu that -appears. +`C-c /' + Move down and left ("southwest") after insertion + (`picture-movement-sw'). - To get a broader view of which days are mentioned in the diary, use -the `m' command. This displays the dates that have diary entries in a -different face (or places a `+' after these dates, if display with -multiple faces is not available). The command applies both to the -currently visible months and to other months that subsequently become -visible by scrolling. To turn marking off and erase the current marks, -type `u', which also turns off holiday marks (*note Holidays::). +`C-c \' + Move down and right ("southeast") after insertion + (`picture-movement-se'). - To see the full diary file, rather than just some of the entries, use -the `s' command. + Two motion commands move based on the current Picture insertion +direction. The command `C-c C-f' (`picture-motion') moves in the same +direction as motion after "insertion" currently does, while `C-c C-b' +(`picture-motion-reverse') moves in the opposite direction. - Display of selected diary entries uses the selective display feature -to hide entries that don't apply. + +File: xemacs.info, Node: Tabs in Picture, Next: Rectangles in Picture, Prev: Insert in Picture, Up: Picture + +Picture Mode Tabs +================= + + Two kinds of tab-like action are provided in Picture mode. +Context-based tabbing is done with `M-' (`picture-tab-search'). +With no argument, it moves to a point underneath the next "interesting" +character that follows whitespace in the previous non-blank line. +"Next" here means "appearing at a horizontal position greater than the +one point starts out at". With an argument, as in `C-u M-', the +command moves to the next such interesting character in the current +line. `M-' does not change the text; it only moves point. +"Interesting" characters are defined by the variable +`picture-tab-chars', which contains a string of characters considered +interesting. Its default value is `"!-~"'. + + itself runs `picture-tab', which operates based on the current +tab stop settings; it is the Picture mode equivalent of +`tab-to-tab-stop'. Without arguments it just moves point, but with a +numeric argument it clears the text that it moves over. + + The context-based and tab-stop-based forms of tabbing are brought +together by the command `C-c ' (`picture-set-tab-stops'.) This +command sets the tab stops to the positions which `M-' would +consider significant in the current line. If you use this command with +, you can get the effect of context-based tabbing. But `M-' +is more convenient in the cases where it is sufficient. - The diary buffer as you see it is an illusion, so simply printing the -buffer does not print what you see on your screen. There is a special -command to print hard copy of the diary buffer _as it appears_; this -command is `M-x print-diary-entries'. It sends the data directly to -the printer. You can customize it like `lpr-region' (*note Hardcopy::). + +File: xemacs.info, Node: Rectangles in Picture, Prev: Tabs in Picture, Up: Picture - The command `M-x diary' displays the diary entries for the current -date, independently of the calendar display, and optionally for the next -few days as well; the variable `number-of-diary-entries' specifies how -many days to include (*note Customization::). +Picture Mode Rectangle Commands +=============================== - If you put `(diary)' in your `.emacs' file, this automatically -displays a window with the day's diary entries, when you enter Emacs. -The mode line of the displayed window shows the date and any holidays -that fall on that date. + Picture mode defines commands for working on rectangular pieces of +the text in ways that fit with the quarter-plane model. The standard +rectangle commands may also be useful (*note Rectangles::). - Many users like to receive notice of events in their diary as email. -To send such mail to yourself, use the command `M-x -diary-mail-entries'. A prefix argument specifies how many days -(starting with today) to check; otherwise, the variable -`diary-mail-days' says how many days. +`C-c C-k' + Clear out the region-rectangle (`picture-clear-rectangle'). With + argument, kill it. - -File: xemacs.info, Node: Format of Diary File, Next: Date Formats, Prev: Diary Commands, Up: Diary - -The Diary File --------------- - - Your "diary file" is a file that records events associated with -particular dates. The name of the diary file is specified by the -variable `diary-file'; `~/diary' is the default. The `calendar' -utility program supports a subset of the format allowed by the Emacs -diary facilities, so you can use that utility to view the diary file, -with reasonable results aside from the entries it cannot understand. - - Each entry in the diary file describes one event and consists of one -or more lines. An entry always begins with a date specification at the -left margin. The rest of the entry is simply text to describe the -event. If the entry has more than one line, then the lines after the -first must begin with whitespace to indicate they continue a previous -entry. Lines that do not begin with valid dates and do not continue a -preceding entry are ignored. - - You can inhibit the marking of certain diary entries in the calendar -window; to do this, insert an ampersand (`&') at the beginning of the -entry, before the date. This has no effect on display of the entry in -the diary window; it affects only marks on dates in the calendar -window. Nonmarking entries are especially useful for generic entries -that would otherwise mark many different dates. - - If the first line of a diary entry consists only of the date or day -name with no following blanks or punctuation, then the diary window -display doesn't include that line; only the continuation lines appear. -For example, this entry: - - 02/11/1989 - Bill B. visits Princeton today - 2pm Cognitive Studies Committee meeting - 2:30-5:30 Liz at Lawrenceville - 4:00pm Dentist appt - 7:30pm Dinner at George's - 8:00-10:00pm concert - -appears in the diary window without the date line at the beginning. -This style of entry looks neater when you display just a single day's -entries, but can cause confusion if you ask for more than one day's -entries. - - You can edit the diary entries as they appear in the window, but it -is important to remember that the buffer displayed contains the _entire_ -diary file, with portions of it concealed from view. This means, for -instance, that the `C-f' (`forward-char') command can put point at what -appears to be the end of the line, but what is in reality the middle of -some concealed line. - - _Be careful when editing the diary entries!_ Inserting additional -lines or adding/deleting characters in the middle of a visible line -cannot cause problems, but editing at the end of a line may not do what -you expect. Deleting a line may delete other invisible entries that -follow it. Before editing the diary, it is best to display the entire -file with `s' (`show-all-diary-entries'). +`C-c C-w R' + Similar but save rectangle contents in register R first + (`picture-clear-rectangle-to-register'). + +`C-c C-y' + Copy last killed rectangle into the buffer by overwriting, with + upper left corner at point (`picture-yank-rectangle'). With + argument, insert instead. + +`C-c C-x R' + Similar, but use the rectangle in register R + (`picture-yank-rectangle-from-register'). + + The picture rectangle commands `C-c C-k' (`picture-clear-rectangle') +and `C-c C-w' (`picture-clear-rectangle-to-register') differ from the +standard rectangle commands in that they normally clear the rectangle +instead of deleting it; this is analogous with the way `C-d' is changed +in Picture mode. + + However, deletion of rectangles can be useful in Picture mode, so +these commands delete the rectangle if given a numeric argument. + + The Picture mode commands for yanking rectangles differ from the +standard ones in overwriting instead of inserting. This is the same +way that Picture mode insertion of other text is different from other +modes. `C-c C-y' (`picture-yank-rectangle') inserts (by overwriting) +the rectangle that was most recently killed, while `C-c C-x' +(`picture-yank-rectangle-from-register') does for the rectangle found +in a specified register. + + Since most region commands in Picture mode operate on rectangles, +when you select a region of text with the mouse in Picture mode, it is +highlighted as a rectangle.  -File: xemacs.info, Node: Date Formats, Next: Adding to Diary, Prev: Format of Diary File, Up: Diary - -Date Formats ------------- - - Here are some sample diary entries, illustrating different ways of -formatting a date. The examples all show dates in American order -(month, day, year), but Calendar mode supports European order (day, -month, year) as an option. - - 4/20/93 Switch-over to new tabulation system - apr. 25 Start tabulating annual results - 4/30 Results for April are due - */25 Monthly cycle finishes - Friday Don't leave without backing up files - - The first entry appears only once, on April 20, 1993. The second and -third appear every year on the specified dates, and the fourth uses a -wildcard (asterisk) for the month, so it appears on the 25th of every -month. The final entry appears every week on Friday. - - You can use just numbers to express a date, as in `MONTH/DAY' or -`MONTH/DAY/YEAR'. This must be followed by a nondigit. In the date -itself, MONTH and DAY are numbers of one or two digits. The optional -YEAR is also a number, and may be abbreviated to the last two digits; -that is, you can use `11/12/1989' or `11/12/89'. - - Dates can also have the form `MONTHNAME DAY' or `MONTHNAME DAY, -YEAR', where the month's name can be spelled in full or abbreviated to -three characters (with or without a period). Case is not significant. - - A date may be "generic"; that is, partially unspecified. Then the -entry applies to all dates that match the specification. If the date -does not contain a year, it is generic and applies to any year. -Alternatively, MONTH, DAY, or YEAR can be a `*'; this matches any -month, day, or year, respectively. Thus, a diary entry `3/*/*' matches -any day in March of any year; so does `march *'. - - If you prefer the European style of writing dates--in which the day -comes before the month--type `M-x european-calendar' while in the -calendar, or set the variable `european-calendar-style' to `t' _before_ -using any calendar or diary command. This mode interprets all dates in -the diary in the European manner, and also uses European style for -displaying diary dates. (Note that there is no comma after the -MONTHNAME in the European style.) To go back to the (default) American -style of writing dates, type `M-x american-calendar'. - - You can use the name of a day of the week as a generic date which -applies to any date falling on that day of the week. You can abbreviate -the day of the week to three letters (with or without a period) or spell -it in full; case is not significant. +File: xemacs.info, Node: Sending Mail, Next: Reading Mail, Prev: Picture, Up: Top + +Sending Mail +************ + + To send a message in Emacs, start by typing the command (`C-x m') to +select and initialize the `*mail*' buffer. You can then edit the text +and headers of the message in the mail buffer, and type the command +(`C-c C-c') to send the message. + +`C-x m' + Begin composing a message to send (`mail'). + +`C-x 4 m' + Likewise, but display the message in another window + (`mail-other-window'). + +`C-c C-c' + In Mail mode, send the message and switch to another buffer + (`mail-send-and-exit'). + + The command `C-x m' (`mail') selects a buffer named `*mail*' and +initializes it with the skeleton of an outgoing message. `C-x 4 m' +(`mail-other-window') selects the `*mail*' buffer in a different +window, leaving the previous current buffer visible. + + Because the buffer for mail composition is an ordinary Emacs buffer, +you can switch to other buffers while in the middle of composing mail, +and switch back later (or never). If you use the `C-x m' command again +when you have been composing another message but have not sent it, a +new mail buffer will be created; in this way, you can compose multiple +messages at once. You can switch back to and complete an unsent +message by using the normal buffer selection mechanisms. + + `C-u C-x m' is another way to switch back to a message in progress: +it will search for an existing, unsent mail message buffer and select +it. + +* Menu: + +* Format: Mail Format. Format of the mail being composed. +* Headers: Mail Headers. Details of allowed mail header fields. +* Mode: Mail Mode. Special commands for editing mail being composed.  -File: xemacs.info, Node: Adding to Diary, Next: Special Diary Entries, Prev: Date Formats, Up: Diary +File: xemacs.info, Node: Mail Format, Next: Mail Headers, Prev: Sending Mail, Up: Sending Mail -Commands to Add to the Diary ----------------------------- +The Format of the Mail Buffer +============================= - While in the calendar, there are several commands to create diary -entries: + In addition to the "text" or contents, a message has "header +fields", which say who sent it, when, to whom, why, and so on. Some +header fields, such as the date and sender, are created automatically +after the message is sent. Others, such as the recipient names, must +be specified by you in order to send the message properly. -`i d' - Add a diary entry for the selected date (`insert-diary-entry'). + Mail mode provides a few commands to help you edit some header +fields, and some are preinitialized in the buffer automatically at +times. You can insert or edit any header fields using ordinary editing +commands. -`i w' - Add a diary entry for the selected day of the week - (`insert-weekly-diary-entry'). + The line in the buffer that says: -`i m' - Add a diary entry for the selected day of the month - (`insert-monthly-diary-entry'). + --text follows this line-- -`i y' - Add a diary entry for the selected day of the year - (`insert-yearly-diary-entry'). +is a special delimiter that separates the headers you have specified +from the text. Whatever follows this line is the text of the message; +the headers precede it. The delimiter line itself does not appear in +the message actually sent. The text used for the delimiter line is +controlled by the variable `mail-header-separator'. - You can make a diary entry for a specific date by selecting that date -in the calendar window and typing the `i d' command. This command -displays the end of your diary file in another window and inserts the -date; you can then type the rest of the diary entry. + Here is an example of what the headers and text in the `*mail*' +buffer might look like. - If you want to make a diary entry that applies to a specific day of -the week, select that day of the week (any occurrence will do) and type -`i w'. This inserts the day-of-week as a generic date; you can then -type the rest of the diary entry. You can make a monthly diary entry in -the same fashion. Select the day of the month, use the `i m' command, -and type rest of the entry. Similarly, you can insert a yearly diary -entry with the `i y' command. + To: rms@mc + CC: mly@mc, rg@oz + Subject: The XEmacs User's Manual + --Text follows this line-- + Please ignore this message. - All of the above commands make marking diary entries by default. To -make a nonmarking diary entry, give a numeric argument to the command. -For example, `C-u i w' makes a nonmarking weekly diary entry. + +File: xemacs.info, Node: Mail Headers, Next: Mail Mode, Prev: Mail Format, Up: Sending Mail + +Mail Header Fields +================== + + There are several header fields you can use in the `*mail*' buffer. +Each header field starts with a field name at the beginning of a line, +terminated by a colon. It does not matter whether you use upper or +lower case in the field name. After the colon and optional whitespace +comes the contents of the field. + +`To' + This field contains the mailing addresses of the message. + +`Subject' + The contents of the `Subject' field should be a piece of text that + says what the message is about. Subject fields are useful because + most mail-reading programs can provide a summary of messages, + listing the subject of each message but not its text. + +`CC' + This field contains additional mailing addresses to send the + message to, but whose readers should not regard the message as + addressed to them. + +`BCC' + This field contains additional mailing addresses to send the + message to, but which should not appear in the header of the + message actually sent. + +`FCC' + This field contains the name of one file (in Unix mail file + format) to which a copy of the message should be appended when the + message is sent. + +`From' + Use the `From' field to say who you are, when the account you are + using to send the mail is not your own. The contents of the + `From' field should be a valid mailing address, since replies will + normally go there. + +`Reply-To' + Use the `Reply-To' field to direct replies to a different address, + not your own. `From' and `Reply-To' have the same effect on where + replies go, but they convey a different meaning to the person who + reads the message. + +`In-Reply-To' + This field contains a piece of text describing a message you are + replying to. Some mail systems can use the information to + correlate related pieces of mail. This field is normally filled + in by your mail handling package when you are replying to a + message and you never need to think about it. + +The `To', `CC', `BCC' and `FCC' fields can appear any number of times, +to specify many places to send the message. + +The `To', `CC', and `BCC', fields can have continuation lines. All the +lines starting with whitespace, following the line on which the field +starts, are considered part of the field. For example, + + To: foo@here, this@there, + me@gnu.cambridge.mass.usa.earth.spiral3281 + +If you have a `~/.mailrc' file, Emacs scans it for mail aliases the +first time you try to send mail in an Emacs session. Emacs expands +aliases found in the `To', `CC', and `BCC' fields where appropriate. +You can set the variable `mail-abbrev-mailrc-file' to the name of the +file with mail aliases. If `nil', `~/.mailrc' is used. + + Your `.mailrc' file ensures that word-abbrevs are defined for each +of your mail aliases when point is in a `To', `CC', `BCC', or `From' +field. The aliases are defined in your `.mailrc' file or in a file +specified by the MAILRC environment variable if it exists. Your mail +aliases expand any time you type a word-delimiter at the end of an +abbreviation. + + In this version of Emacs, what you see is what you get: in contrast +to some other versions, no abbreviations are expanded after you have +sent the mail. This means you don't suffer the annoyance of having the +system do things behind your back--if the system rewrites an address +you typed, you know it immediately, instead of after the mail has been +sent and it's too late to do anything about it. For example, you will +never again be in trouble because you forgot to delete an old alias +from your `.mailrc' and a new local user is given a userid which +conflicts with one of your aliases. + + Your mail alias abbrevs are in effect only when point is in an +appropriate header field. The mail aliases will not expand in the body +of the message, or in other header fields. The default mode-specific +abbrev table `mail-mode-abbrev-table' is used instead if defined. That +means if you have been using mail-mode specific abbrevs, this code will +not adversely affect you. You can control which header fields the +abbrevs are used in by changing the variable `mail-abbrev-mode-regexp'. + + If auto-fill mode is on, abbrevs wrap at commas instead of at word +boundaries, and header continuation lines will be properly indented. + + You can also insert a mail alias with +`mail-interactive-insert-alias'. This function, which is bound to `C-c +C-a', prompts you for an alias (with completion) and inserts its +expansion at point. + + In this version of Emacs, it is possible to have lines like the +following in your `.mailrc' file: + + alias someone "John Doe " + + That is, if you want an address to have embedded spaces, simply +surround it with double-quotes. The quotes are necessary because the +format of the `.mailrc' file uses spaces as address delimiters. + + Aliases in the `.mailrc' file may be nested. For example, assume you +define aliases like: + alias group1 fred ethel + alias group2 larry curly moe + alias everybody group1 group2 + + When you now type `everybody' on the `To' line, it will expand to: + fred, ethyl, larry, curly, moe + + Aliases may contain forward references; the alias of `everybody' in +the example above can precede the aliases of `group1' and `group2'. + + In this version of Emacs, you can use the `source' `.mailrc' command +for reading aliases from some other file as well. + + Aliases may contain hyphens, as in `"alias foo-bar foo@bar"', even +though word-abbrevs normally cannot contain hyphens. + + To read in the contents of another `.mailrc'-type file from Emacs, +use the command `M-x merge-mail-aliases'. The `rebuild-mail-aliases' +command is similar, but deletes existing aliases first. + + If you want multiple addresses separated by a string other than `,' +(a comma), then set the variable `mail-alias-separator-string' to it. +This has to be a comma bracketed by whitespace if you want any kind of +reasonable behavior. + + If the variable `mail-archive-file-name' is non-`nil', it should be +a string naming a file. Each time you start to edit a message to send, +an `FCC' field is entered for that file. Unless you remove the `FCC' +field, every message is written into that file when it is sent. - When you modify the diary file, be sure to save the file before -exiting Emacs. + +File: xemacs.info, Node: Mail Mode, Prev: Mail Headers, Up: Sending Mail + +Mail Mode +========= + + The major mode used in the `*mail*' buffer is Mail mode. Mail mode +is similar to Text mode, but several commands are provided on the `C-c' +prefix. These commands all deal specifically with editing or sending +the message. + +`C-c C-s' + Send the message, and leave the `*mail*' buffer selected + (`mail-send'). + +`C-c C-c' + Send the message, and select some other buffer + (`mail-send-and-exit'). + +`C-c C-f C-t' + Move to the `To' header field, creating one if there is none + (`mail-to'). + +`C-c C-f C-s' + Move to the `Subject' header field, creating one if there is none + (`mail-subject'). + +`C-c C-f C-c' + Move to the `CC' header field, creating one if there is none + (`mail-cc'). + +`C-c C-w' + Insert the file `~/.signature' at the end of the message text + (`mail-signature'). + +`C-c C-y' + Yank the selected message (`mail-yank-original'). + +`C-c C-q' + Fill all paragraphs of yanked old messages, each individually + (`mail-fill-yanked-message'). + +`' + Pops up a menu of useful mail-mode commands. + + There are two ways to send a message. `C-c C-c' +(`mail-send-and-exit') is the usual way to send the message. It sends +the message and then deletes the window (if there is another window) or +switches to another buffer. It puts the `*mail*' buffer at the lowest +priority for automatic reselection, since you are finished with using +it. `C-c C-s' (`mail-send') sends the message and marks the `*mail*' +buffer unmodified, but leaves that buffer selected so that you can +modify the message (perhaps with new recipients) and send it again. + + Mail mode provides some other special commands that are useful for +editing the headers and text of the message before you send it. There +are three commands defined to move point to particular header fields, +all based on the prefix `C-c C-f' (`C-f' is for "field"). They are +`C-c C-f C-t' (`mail-to') to move to the `To' field, `C-c C-f C-s' +(`mail-subject') for the `Subject' field, and `C-c C-f C-c' (`mail-cc') +for the `CC' field. These fields have special motion commands because +they are edited most frequently. + + `C-c C-w' (`mail-signature') adds a standard piece of text at the +end of the message to say more about who you are. The text comes from +the file `.signature' in your home directory. + + When you use an Rmail command to send mail from the Rmail mail +reader, you can use `C-c C-y' `mail-yank-original' inside the `*mail*' +buffer to insert the text of the message you are replying to. Normally +Rmail indents each line of that message four spaces and eliminates most +header fields. A numeric argument specifies the number of spaces to +indent. An argument of just `C-u' says not to indent at all and not to +eliminate anything. `C-c C-y' always uses the current message from the +`RMAIL' buffer, so you can insert several old messages by selecting one +in `RMAIL', switching to `*mail*' and yanking it, then switching back +to `RMAIL' to select another. + + After using `C-c C-y', you can use the command `C-c C-q' +(`mail-fill-yanked-message') to fill the paragraphs of the yanked old +message or messages. One use of `C-c C-q' fills all such paragraphs, +each one separately. + + Clicking the right mouse button in a mail buffer pops up a menu of +the above commands, for easy access. + + Turning on Mail mode (which `C-x m' does automatically) calls the +value of `text-mode-hook', if it is not void or `nil', and then calls +the value of `mail-mode-hook' if that is not void or `nil'.  -File: xemacs.info, Node: Special Diary Entries, Prev: Adding to Diary, Up: Diary - -Special Diary Entries ---------------------- - - In addition to entries based on calendar dates, the diary file can -contain "sexp entries" for regular events such as anniversaries. These -entries are based on Lisp expressions (sexps) that Emacs evaluates as -it scans the diary file. Instead of a date, a sexp entry contains `%%' -followed by a Lisp expression which must begin and end with -parentheses. The Lisp expression determines which dates the entry -applies to. - - Calendar mode provides commands to insert certain commonly used sexp -entries: - -`i a' - Add an anniversary diary entry for the selected date - (`insert-anniversary-diary-entry'). - -`i b' - Add a block diary entry for the current region - (`insert-block-diary-entry'). - -`i c' - Add a cyclic diary entry starting at the date - (`insert-cyclic-diary-entry'). - - If you want to make a diary entry that applies to the anniversary of -a specific date, move point to that date and use the `i a' command. -This displays the end of your diary file in another window and inserts -the anniversary description; you can then type the rest of the diary -entry. The entry looks like this: - - The effect of `i a' is to add a `diary-anniversary' sexp to your -diary file. You can also add one manually, for instance: - - %%(diary-anniversary 10 31 1948) Arthur's birthday - -This entry applies to October 31 in any year after 1948; `10 31 1948' -specifies the date. (If you are using the European calendar style, the -month and day are interchanged.) The reason this expression requires a -beginning year is that advanced diary functions can use it to calculate -the number of elapsed years. - - A "block" diary entry applies to a specified range of consecutive -dates. Here is a block diary entry that applies to all dates from June -24, 1990 through July 10, 1990: - - %%(diary-block 6 24 1990 7 10 1990) Vacation - -The `6 24 1990' indicates the starting date and the `7 10 1990' -indicates the stopping date. (Again, if you are using the European -calendar style, the month and day are interchanged.) - - To insert a block entry, place point and the mark on the two dates -that begin and end the range, and type `i b'. This command displays -the end of your diary file in another window and inserts the block -description; you can then type the diary entry. - - "Cyclic" diary entries repeat after a fixed interval of days. To -create one, select the starting date and use the `i c' command. The -command prompts for the length of interval, then inserts the entry, -which looks like this: - - %%(diary-cyclic 50 3 1 1990) Renew medication - -This entry applies to March 1, 1990 and every 50th day following; `3 1 -1990' specifies the starting date. (If you are using the European -calendar style, the month and day are interchanged.) - - All three of these commands make marking diary entries. To insert a -nonmarking entry, give a numeric argument to the command. For example, -`C-u i a' makes a nonmarking anniversary diary entry. - - Marking sexp diary entries in the calendar is _extremely_ -time-consuming, since every date visible in the calendar window must be -individually checked. So it's a good idea to make sexp diary entries -nonmarking (with `&') when possible. - - Another sophisticated kind of sexp entry, a "floating" diary entry, -specifies a regularly occurring event by offsets specified in days, -weeks, and months. It is comparable to a crontab entry interpreted by -the `cron' utility. Here is a nonmarking, floating diary entry that -applies to the last Thursday in November: - - &%%(diary-float 11 4 -1) American Thanksgiving - -The 11 specifies November (the eleventh month), the 4 specifies Thursday -(the fourth day of the week, where Sunday is numbered zero), and the -1 -specifies "last" (1 would mean "first", 2 would mean "second", -2 would -mean "second-to-last", and so on). The month can be a single month or -a list of months. Thus you could change the 11 above to `'(1 2 3)' and -have the entry apply to the last Thursday of January, February, and -March. If the month is `t', the entry applies to all months of the -year. - - The sexp feature of the diary allows you to specify diary entries -based on any Emacs Lisp expression. You can use the library of built-in -functions or you can write your own functions. The built-in functions -include the ones shown in this section, plus a few others (*note Sexp -Diary Entries::). - - The generality of sexps lets you specify any diary entry that you can -describe algorithmically. Suppose you get paid on the 21st of the month -if it is a weekday, and to the Friday before if the 21st is on a -weekend. The diary entry - - &%%(let ((dayname (calendar-day-of-week date)) - (day (car (cdr date)))) - (or (and (= day 21) (memq dayname '(1 2 3 4 5))) - (and (memq day '(19 20)) (= dayname 5))) - ) Pay check deposited - -to just those dates. This example illustrates how the sexp can depend -on the variable `date'; this variable is a list (MONTH DAY YEAR) that -gives the Gregorian date for which the diary entries are being found. -If the value of the sexp is `t', the entry applies to that date. If -the sexp evaluates to `nil', the entry does _not_ apply to that date. +File: xemacs.info, Node: Reading Mail, Next: Calendar/Diary, Prev: Sending Mail, Up: Top + +Reading Mail +************ + + XEmacs provides three separate mail-reading packages. Each one +comes with its own manual, which is included standard with the XEmacs +distribution. + + The recommended mail-reading package for new users is VM. VM works +with standard Unix-mail-format folders and was designed as a replacement +for the older Rmail. + + XEmacs also provides a sophisticated and comfortable front-end to the +MH mail-processing system, called `mh-e'. Unlike in other mail +programs, folders in MH are stored as file-system directories, with +each message occupying one (numbered) file. This facilitates working +with mail using shell commands, and many other features of MH are also +designed to integrate well with the shell and with shell scripts. Keep +in mind, however, that in order to use mh-e you must have the MH +mail-processing system installed on your computer. + + Finally, XEmacs provides the Rmail package. Rmail is (currently) the +only mail reading package distributed with FSF GNU Emacs, and is +powerful in its own right. However, it stores mail folders in a special +format called `Babyl', that is incompatible with all other +frequently-used mail programs. A utility program is provided for +converting Babyl folders to standard Unix-mail format; however, unless +you already have mail in Babyl-format folders, you should consider +using VM or mh-e instead. (If at times you have to use FSF Emacs, it is +not hard to obtain and install VM for that editor.)  -File: xemacs.info, Node: Calendar Customization, Prev: Diary, Up: Calendar/Diary +File: xemacs.info, Node: Calendar/Diary, Next: Sorting, Prev: Reading Mail, Up: Top + +Calendar Mode and the Diary +=========================== + + Emacs provides the functions of a desk calendar, with a diary of +planned or past events. To enter the calendar, type `M-x calendar'; +this displays a three-month calendar centered on the current month, with +point on the current date. With a numeric argument, as in `C-u M-x +calendar', it prompts you for the month and year to be the center of the +three-month calendar. The calendar uses its own buffer, whose major +mode is Calendar mode. + + `Button2' in the calendar brings up a menu of operations on a +particular date; `Buttons3' brings up a menu of commonly used calendar +features that are independent of any particular date. To exit the +calendar, type `q'. *Note Customizing the Calendar and Diary: +(lispref)Calendar, for customization information about the calendar and +diary. -Customizing the Calendar and Diary ----------------------------------- +* Menu: - There are many customizations that you can use to make the calendar -and diary suit your personal tastes. +* Calendar Motion:: Moving through the calendar; selecting a date. +* Scroll Calendar:: Bringing earlier or later months onto the screen. +* Mark and Region:: Remembering dates, the mark ring. +* General Calendar:: Exiting or recomputing the calendar. +* LaTeX Calendar:: Print a calendar using LaTeX. +* Holidays:: Displaying dates of holidays. +* Sunrise/Sunset:: Displaying local times of sunrise and sunset. +* Lunar Phases:: Displaying phases of the moon. +* Other Calendars:: Converting dates to other calendar systems. +* Diary:: Displaying events from your diary. +* Calendar Customization:: Altering the behavior of the features above. + + +File: xemacs.info, Node: Calendar Motion, Next: Scroll Calendar, Prev: Calendar/Diary, Up: Calendar/Diary + +Movement in the Calendar +------------------------ + + Calendar mode lets you move through the calendar in logical units of +time such as days, weeks, months, and years. If you move outside the +three months originally displayed, the calendar display "scrolls" +automatically through time to make the selected date visible. Moving to +a date lets you view its holidays or diary entries, or convert it to +other calendars; moving longer time periods is also useful simply to +scroll the calendar. * Menu: -* Calendar Customizing:: Defaults you can set. -* Holiday Customizing:: Defining your own holidays. -* Date Display Format:: Changing the format. -* Time Display Format:: Changing the format. -* Daylight Savings:: Changing the default. -* Diary Customizing:: Defaults you can set. -* Hebrew/Islamic Entries:: How to obtain them. -* Fancy Diary Display:: Enhancing the diary display, sorting entries. -* Included Diary Files:: Sharing a common diary file. -* Sexp Diary Entries:: Fancy things you can do. -* Appt Customizing:: Customizing appointment reminders. +* Calendar Unit Motion:: Moving by days, weeks, months, and years. +* Move to Beginning or End:: Moving to start/end of weeks, months, and years. +* Specified Dates:: Moving to the current date or another + specific date.  -File: xemacs.info, Node: Calendar Customizing, Next: Holiday Customizing, Up: Calendar Customization - -Customizing the Calendar -........................ - - If you set the variable `view-diary-entries-initially' to `t', -calling up the calendar automatically displays the diary entries for -the current date as well. The diary dates appear only if the current -date is visible. If you add both of the following lines to your -`.emacs' file: - - (setq view-diary-entries-initially t) - (calendar) - -this displays both the calendar and diary windows whenever you start -Emacs. - - Similarly, if you set the variable -`view-calendar-holidays-initially' to `t', entering the calendar -automatically displays a list of holidays for the current three-month -period. The holiday list appears in a separate window. - - You can set the variable `mark-diary-entries-in-calendar' to `t' in -order to mark any dates with diary entries. This takes effect whenever -the calendar window contents are recomputed. There are two ways of -marking these dates: by changing the face (*note Faces::), if the -display supports that, or by placing a plus sign (`+') beside the date -otherwise. - - Similarly, setting the variable `mark-holidays-in-calendar' to `t' -marks holiday dates, either with a change of face or with an asterisk -(`*'). - - The variable `calendar-holiday-marker' specifies how to mark a date -as being a holiday. Its value may be a character to insert next to the -date, or a face name to use for displaying the date. Likewise, the -variable `diary-entry-marker' specifies how to mark a date that has -diary entries. The calendar creates faces named `holiday-face' and -`diary-face' for these purposes; those symbols are the default values -of these variables, when Emacs supports multiple faces on your terminal. - - The variable `calendar-load-hook' is a normal hook run when the -calendar package is first loaded (before actually starting to display -the calendar). - - Starting the calendar runs the normal hook -`initial-calendar-window-hook'. Recomputation of the calendar display -does not run this hook. But if you leave the calendar with the `q' -command and reenter it, the hook runs again. - - The variable `today-visible-calendar-hook' is a normal hook run -after the calendar buffer has been prepared with the calendar when the -current date is visible in the window. One use of this hook is to -replace today's date with asterisks; to do that, use the hook function -`calendar-star-date'. - - (add-hook 'today-visible-calendar-hook 'calendar-star-date) - -Another standard hook function marks the current date, either by -changing its face or by adding an asterisk. Here's how to use it: - - (add-hook 'today-visible-calendar-hook 'calendar-mark-today) - -The variable `calendar-today-marker' specifies how to mark today's -date. Its value should be a character to insert next to the date or a -face name to use for displaying the date. A face named -`calendar-today-face' is provided for this purpose; that symbol is the -default for this variable when Emacs supports multiple faces on your -terminal. - -A similar normal hook, `today-invisible-calendar-hook' is run if the -current date is _not_ visible in the window. +File: xemacs.info, Node: Calendar Unit Motion, Next: Move to Beginning or End, Prev: Calendar Motion, Up: Calendar Motion + +Motion by Integral Days, Weeks, Months, Years +............................................. + + The commands for movement in the calendar buffer parallel the +commands for movement in text. You can move forward and backward by +days, weeks, months, and years. + +`C-f' + Move point one day forward (`calendar-forward-day'). + +`C-b' + Move point one day backward (`calendar-backward-day'). + +`C-n' + Move point one week forward (`calendar-forward-week'). + +`C-p' + Move point one week backward (`calendar-backward-week'). + +`M-}' + Move point one month forward (`calendar-forward-month'). + +`M-{' + Move point one month backward (`calendar-backward-month'). + +`C-x ]' + Move point one year forward (`calendar-forward-year'). + +`C-x [' + Move point one year backward (`calendar-backward-year'). + + The day and week commands are natural analogues of the usual Emacs +commands for moving by characters and by lines. Just as `C-n' usually +moves to the same column in the following line, in Calendar mode it +moves to the same day in the following week. And `C-p' moves to the +same day in the previous week. + + The arrow keys are equivalent to `C-f', `C-b', `C-n' and `C-p', just +as they normally are in other modes. + + The commands for motion by months and years work like those for +weeks, but move a larger distance. The month commands `M-}' and `M-{' +move forward or backward by an entire month's time. The year commands +`C-x ]' and `C-x [' move forward or backward a whole year. + + The easiest way to remember these commands is to consider months and +years analogous to paragraphs and pages of text, respectively. But the +commands themselves are not quite analogous. The ordinary Emacs +paragraph commands move to the beginning or end of a paragraph, whereas +these month and year commands move by an entire month or an entire +year, which usually involves skipping across the end of a month or year. + + All these commands accept a numeric argument as a repeat count. For +convenience, the digit keys and the minus sign specify numeric +arguments in Calendar mode even without the Meta modifier. For example, +`100 C-f' moves point 100 days forward from its present location. + + +File: xemacs.info, Node: Move to Beginning or End, Next: Specified Dates, Prev: Calendar Unit Motion, Up: Calendar Motion + +Beginning or End of Week, Month or Year +....................................... + + A week (or month, or year) is not just a quantity of days; we think +of weeks (months, years) as starting on particular dates. So Calendar +mode provides commands to move to the beginning or end of a week, month +or year: + +`C-a' + Move point to start of week (`calendar-beginning-of-week'). + +`C-e' + Move point to end of week (`calendar-end-of-week'). + +`M-a' + Move point to start of month (`calendar-beginning-of-month'). + +`M-e' + Move point to end of month (`calendar-end-of-month'). + +`M-<' + Move point to start of year (`calendar-beginning-of-year'). + +`M->' + Move point to end of year (`calendar-end-of-year'). + + These commands also take numeric arguments as repeat counts, with the +repeat count indicating how many weeks, months, or years to move +backward or forward. + + By default, weeks begin on Sunday. To make them begin on Monday +instead, set the variable `calendar-week-start-day' to 1.