Annotation of GNUtools/emacs/info/emacs-10, revision 1.1

1.1     ! root        1: This is Info file ../info/emacs, produced by Makeinfo-1.49 from the
        !             2: input file emacs.texi.
        !             3: 
        !             4:    This file documents the GNU Emacs editor.
        !             5: 
        !             6:    Copyright (C) 1985, 1986, 1988, 1992 Richard M. Stallman.
        !             7: 
        !             8:    Permission is granted to make and distribute verbatim copies of this
        !             9: manual provided the copyright notice and this permission notice are
        !            10: preserved on all copies.
        !            11: 
        !            12:    Permission is granted to copy and distribute modified versions of
        !            13: this manual under the conditions for verbatim copying, provided also
        !            14: that the sections entitled "The GNU Manifesto", "Distribution" and "GNU
        !            15: General Public License" are included exactly as in the original, and
        !            16: provided that the entire resulting derived work is distributed under the
        !            17: terms of a permission notice identical to this one.
        !            18: 
        !            19:    Permission is granted to copy and distribute translations of this
        !            20: manual into another language, under the above conditions for modified
        !            21: versions, except that the sections entitled "The GNU Manifesto",
        !            22: "Distribution" and "GNU General Public License" may be included in a
        !            23: translation approved by the author instead of in the original English.
        !            24: 
        !            25: 
        !            26: File: emacs,  Node: Rmail Motion,  Next: Rmail Deletion,  Prev: Rmail Scrolling,  Up: Rmail
        !            27: 
        !            28: Moving Among Messages
        !            29: =====================
        !            30: 
        !            31:    The most basic thing to do with a message is to read it.  The way to
        !            32: do this in Rmail is to make the message current.  You can make any
        !            33: message current given its message number using the `j' command, but the
        !            34: usual thing to do is to move sequentially through the file, since this
        !            35: is the order of receipt of messages.  When you enter Rmail, you are
        !            36: positioned at the first new message (new messages are those received
        !            37: since the previous use of Rmail), or at the last message if there are
        !            38: no new messages this time.  Move forward to see the other new messages;
        !            39: move backward to reexamine old messages.
        !            40: 
        !            41: `n'
        !            42:      Move to the next nondeleted message, skipping any intervening
        !            43:      deleted messages (`rmail-next-undeleted-message').
        !            44: 
        !            45: `p'
        !            46:      Move to the previous nondeleted message
        !            47:      (`rmail-previous-undeleted-message').
        !            48: 
        !            49: `M-n'
        !            50:      Move to the next message, including deleted messages
        !            51:      (`rmail-next-message').
        !            52: 
        !            53: `M-p'
        !            54:      Move to the previous message, including deleted messages
        !            55:      (`rmail-previous-message').
        !            56: 
        !            57: `j'
        !            58:      Move to the first message.  With argument N, move to message
        !            59:      number N (`rmail-show-message').
        !            60: 
        !            61: `>'
        !            62:      Move to the last message (`rmail-last-message').
        !            63: 
        !            64: `M-s REGEXP RET'
        !            65:      Move to the next message containing a match for REGEXP
        !            66:      (`rmail-search').  If REGEXP is empty, the last regexp used is
        !            67:      used again.
        !            68: 
        !            69: `- M-s REGEXP RET'
        !            70:      Move to the previous message containing a match for REGEXP. If
        !            71:      REGEXP is empty, the last regexp used is used again.
        !            72: 
        !            73:    `n' and `p' are the usual way of moving among messages in Rmail. 
        !            74: They move through the messages sequentially, but skip over deleted
        !            75: messages, which is usually what you want to do.  Their command
        !            76: definitions are named `rmail-next-undeleted-message' and
        !            77: `rmail-previous-undeleted-message'.  If you do not want to skip deleted
        !            78: messages--for example, if you want to move to a message to undelete
        !            79: it--use the variants `M-n' and `M-p' (`rmail-next-message' and
        !            80: `rmail-previous-message').  A numeric argument to any of these commands
        !            81: serves as a repeat count.
        !            82: 
        !            83:    In Rmail, you can specify a numeric argument by typing the digits.
        !            84: It is not necessary to type `C-u' first.
        !            85: 
        !            86:    The `M-s' (`rmail-search') command is Rmail's version of search.  The
        !            87: usual incremental search command `C-s' works in Rmail, but it searches
        !            88: only within the current message.  The purpose of `M-s' is to search for
        !            89: another message.  It reads a regular expression (*note Regexps::.)
        !            90: nonincrementally, then searches starting at the beginning of the
        !            91: following message for a match.  The message containing the match is
        !            92: selected.
        !            93: 
        !            94:    To search backward in the file for another message, give `M-s' a
        !            95: negative argument.  In Rmail this can be done with `- M-s'.
        !            96: 
        !            97:    It is also possible to search for a message based on labels. *Note
        !            98: Rmail Labels::.
        !            99: 
        !           100:    To move to a message specified by absolute message number, use `j'
        !           101: (`rmail-show-message') with the message number as argument.  With no
        !           102: argument, `j' selects the first message.  `>' (`rmail-last-message')
        !           103: selects the last message.
        !           104: 
        !           105:    Each time Rmail selects a message, it calls (with no arguments) the
        !           106: value of the variable `rmail-show-message-hook', if that is non-`nil'.
        !           107: 
        !           108: 
        !           109: File: emacs,  Node: Rmail Deletion,  Next: Rmail Inbox,  Prev: Rmail Motion,  Up: Rmail
        !           110: 
        !           111: Deleting Messages
        !           112: =================
        !           113: 
        !           114:    When you no longer need to keep a message, you can "delete" it.  This
        !           115: flags it as ignorable, and some Rmail commands will pretend it is no
        !           116: longer present; but it still has its place in the Rmail file, and still
        !           117: has its message number.
        !           118: 
        !           119:    "Expunging" the Rmail file actually removes the deleted messages.
        !           120: The remaining messages are renumbered consecutively.  Expunging is the
        !           121: only action that changes the message number of any message, except for
        !           122: undigestifying (*note Rmail Digest::.).
        !           123: 
        !           124: `d'
        !           125:      Delete the current message, and move to the next nondeleted message
        !           126:      (`rmail-delete-forward').
        !           127: 
        !           128: `C-d'
        !           129:      Delete the current message, and move to the previous nondeleted
        !           130:      message (`rmail-delete-backward').
        !           131: 
        !           132: `u'
        !           133:      Undelete the current message, or move back to a deleted message and
        !           134:      undelete it (`rmail-undelete-previous-message').
        !           135: 
        !           136: `x'
        !           137: `e'
        !           138:      Expunge the Rmail file (`rmail-expunge').  These two commands are
        !           139:      synonyms.
        !           140: 
        !           141:    There are two Rmail commands for deleting messages.  Both delete the
        !           142: current message and select another message.  `d'
        !           143: (`rmail-delete-forward') moves to the following message, skipping
        !           144: messages already deleted, while `C-d' (`rmail-delete-backward') moves
        !           145: to the previous nondeleted message. If there is no nondeleted message
        !           146: to move to in the specified direction, the message that was just
        !           147: deleted remains current.
        !           148: 
        !           149:    To make all the deleted messages finally vanish from the Rmail file,
        !           150: type `e' (`rmail-expunge').  Until you do this, you can still "undelete"
        !           151: the deleted messages.
        !           152: 
        !           153:    To undelete, type `u' (`rmail-undelete-previous-message'), which is
        !           154: designed to cancel the effect of a `d' command (usually).  It undeletes
        !           155: the current message if the current message is deleted.  Otherwise it
        !           156: moves backward to previous messages until a deleted message is found,
        !           157: and undeletes that message.
        !           158: 
        !           159:    You can usually undo a `d' with a `u' because the `u' moves back to
        !           160: and undeletes the message that the `d' deleted.  But this does not work
        !           161: when the `d' skips a few already-deleted messages that follow the
        !           162: message being deleted; then the `u' command will undelete the last of
        !           163: the messages that were skipped.  There is no clean way to avoid this
        !           164: problem.  However, by repeating the `u' command, you can eventually get
        !           165: back to the message that you intended to undelete.  You can also reach
        !           166: that message with `M-p' commands and then type `u'.
        !           167: 
        !           168:    A deleted message has the `deleted' attribute, and as a result
        !           169: `deleted' appears in the mode line when the current message is deleted.
        !           170:  In fact, deleting or undeleting a message is nothing more than adding
        !           171: or removing this attribute.  *Note Rmail Labels::.
        !           172: 
        !           173: 
        !           174: File: emacs,  Node: Rmail Inbox,  Next: Rmail Files,  Prev: Rmail Deletion,  Up: Rmail
        !           175: 
        !           176: Rmail Files and Inboxes
        !           177: =======================
        !           178: 
        !           179:    Unix places incoming mail for you in a file that we call your
        !           180: "inbox". When you start up Rmail, it copies the new messages from your
        !           181: inbox into your primary mail file, an Rmail file, which also contains
        !           182: other messages saved from previous Rmail sessions.  It is in this file
        !           183: that you actually read the mail with Rmail.  This operation is called
        !           184: "getting new mail". It can be repeated at any time using the `g' key in
        !           185: Rmail.  The inbox file name is `/usr/spool/mail/USERNAME' in Berkeley
        !           186: Unix, `/usr/mail/USERNAME' in System V.
        !           187: 
        !           188:    There are two reasons for having separate Rmail files and inboxes.
        !           189: 
        !           190:   1. The format in which Unix delivers the mail in the inbox is not
        !           191:      adequate for Rmail mail storage.  It has no way to record
        !           192:      attributes (such as `deleted') or user-specified labels; it has no
        !           193:      way to record old headers and reformatted headers; it has no way
        !           194:      to record cached summary line information.
        !           195: 
        !           196:   2. It is very cumbersome to access an inbox file without danger of
        !           197:      losing mail, because it is necessary to interlock with mail
        !           198:      delivery. Moreover, different Unix systems use different
        !           199:      interlocking techniques.  The strategy of moving mail out of the
        !           200:      inbox once and for all into a separate Rmail file avoids the need
        !           201:      for interlocking in all the rest of Rmail, since only Rmail
        !           202:      operates on the Rmail file.
        !           203: 
        !           204:    When getting new mail, Rmail first copies the new mail from the inbox
        !           205: file to the Rmail file; then it saves the Rmail file; then it deletes
        !           206: the inbox file.  This way, a system crash may cause duplication of mail
        !           207: between the inbox and the Rmail file, but cannot lose mail.
        !           208: 
        !           209:    Copying mail from an inbox in the system's mailer directory actually
        !           210: puts it in an intermediate file `~/.newmail'.  This is because the
        !           211: interlocking is done by a C program that copies to another file.
        !           212: `~/.newmail' is deleted after mail merging is successful.  If there is
        !           213: a crash at the wrong time, this file will continue to exist and will be
        !           214: used as an inbox the next time you get new mail.
        !           215: 
        !           216: 
        !           217: File: emacs,  Node: Rmail Files,  Next: Rmail Output,  Prev: Rmail Inbox,  Up: Rmail
        !           218: 
        !           219: Multiple Mail Files
        !           220: ===================
        !           221: 
        !           222:    Rmail operates by default on your "primary mail file", which is named
        !           223: `~/RMAIL' and receives your incoming mail from your system inbox file.
        !           224: But you can also have other mail files and edit them with Rmail.  These
        !           225: files can receive mail through their own inboxes, or you can move
        !           226: messages into them by explicit command in Rmail (*note Rmail Output::.).
        !           227: 
        !           228: `i FILE RET'
        !           229:      Read FILE into Emacs and run Rmail on it (`rmail-input').
        !           230: 
        !           231: `M-x set-rmail-inbox-list RET FILES RET'
        !           232:      Specify inbox file names for current Rmail file to get mail from.
        !           233: 
        !           234: `g'
        !           235:      Merge new mail from current Rmail file's inboxes
        !           236:      (`rmail-get-new-mail').
        !           237: 
        !           238: `C-u g FILE'
        !           239:      Merge new mail from inbox file FILE.
        !           240: 
        !           241:    To run Rmail on a file other than your primary mail file, you may
        !           242: use the `i' (`rmail-input') command in Rmail.  This visits the file,
        !           243: puts it in Rmail mode, and then gets new mail from the file's inboxes
        !           244: if any. You can also use `M-x rmail-input' even when not in Rmail.
        !           245: 
        !           246:    The file you read with `i' does not have to be in Rmail file format.
        !           247: It could also be Unix mail format, or `mmdf' format; or it could be a
        !           248: mixture of all three, as long as each message belongs to one of the
        !           249: three formats.  Rmail recognizes all three and converts all the
        !           250: messages to proper Rmail format before showing you the file.
        !           251: 
        !           252:    Each Rmail file can contain a list of inbox file names; you can
        !           253: specify this list with `M-x set-rmail-inbox-list RET FILES RET'.  The
        !           254: argument can contain any number of file names, separated by commas.  It
        !           255: can also be empty, which specifies that this file should have no
        !           256: inboxes.  Once a list of inboxes is specified, the Rmail file remembers
        !           257: it permanently until it is explicitly changed.
        !           258: 
        !           259:    If an Rmail file has inboxes, new mail is merged in from the inboxes
        !           260: when the Rmail file is brought into Rmail, and when the `g'
        !           261: (`rmail-get-new-mail') command is used.  If the Rmail file specifies no
        !           262: inboxes, then no new mail is merged in at these times.  A special
        !           263: exception is made for your primary mail file in using the standard
        !           264: system inbox for it if it does not specify any.
        !           265: 
        !           266:    To merge mail from a file that is not the usual inbox, give the `g'
        !           267: key a numeric argument, as in `C-u g'.  Then it reads a file name and
        !           268: merges mail from that file.  The inbox file is not deleted or changed in
        !           269: any way when `g' with an argument is used.  This is, therefore, a
        !           270: general way of merging one file of messages into another.
        !           271: 
        !           272: 
        !           273: File: emacs,  Node: Rmail Output,  Next: Rmail Labels,  Prev: Rmail Files,  Up: Rmail
        !           274: 
        !           275: Copying Messages Out to Files
        !           276: =============================
        !           277: 
        !           278: `o FILE RET'
        !           279:      Append a copy of the current message to the file FILE, writing it
        !           280:      in Rmail file format (`rmail-output-to-rmail-file').
        !           281: 
        !           282: `C-o FILE RET'
        !           283:      Append a copy of the current message to the file FILE, writing it
        !           284:      in Unix mail file format (`rmail-output').
        !           285: 
        !           286:    If an Rmail file has no inboxes, how does it get anything in it?  By
        !           287: explicit `o' commands.
        !           288: 
        !           289:    `o' (`rmail-output-to-rmail-file') appends the current message in
        !           290: Rmail format to the end of the specified file.  This is the best command
        !           291: to use to move messages between Rmail files.  If the other Rmail file is
        !           292: currently visited, the copying is done into the other file's Emacs
        !           293: buffer instead.  You should eventually save it on disk.
        !           294: 
        !           295:    The `C-o' (`rmail-output') command in Rmail appends a copy of the
        !           296: current message to a specified file, in Unix mail file format.  This is
        !           297: useful for moving messages into files to be read by other mail
        !           298: processors that do not understand Rmail format.
        !           299: 
        !           300:    Copying a message with `o' or `C-o' gives the original copy of the
        !           301: message the `filed' attribute, so that `filed' appears in the mode line
        !           302: when such a message is current.
        !           303: 
        !           304:    Normally you should use only `o' to output messages to other Rmail
        !           305: files, never `C-o'.  But it is also safe if you always use `C-o', never
        !           306: `o'.  When a file is visited in Rmail, the last message is checked, and
        !           307: if it is in Unix format, the entire file is scanned and all Unix-format
        !           308: messages are converted to Rmail format.  (The reason for checking the
        !           309: last message is that scanning the file is slow and most Rmail files
        !           310: have only Rmail format messages.)  If you use `C-o' consistently, the
        !           311: last message is sure to be in Unix format, so Rmail will convert all
        !           312: messages properly.
        !           313: 
        !           314:    The case where you might want to use `C-o' always, instead of `o'
        !           315: always, is when you or other users want to append mail to the same file
        !           316: from other mail processors.  Other mail processors probably do not know
        !           317: Rmail format but do know Unix format.
        !           318: 
        !           319:    In any case, always use `o' to add to an Rmail file that is being
        !           320: visited in Rmail.  Adding messages with `C-o' to the actual disk file
        !           321: will trigger a "simultaneous editing" warning when you ask to save the
        !           322: Emacs buffer, and will be lost if you do save.
        !           323: 
        !           324: 
        !           325: File: emacs,  Node: Rmail Labels,  Next: Rmail Summary,  Prev: Rmail Output,  Up: Rmail
        !           326: 
        !           327: Labels
        !           328: ======
        !           329: 
        !           330:    Each message can have various "labels" assigned to it as a means of
        !           331: classification.  A label has a name; different names mean different
        !           332: labels. Any given label is either present or absent on a particular
        !           333: message.  A few label names have standard meanings and are given to
        !           334: messages automatically by Rmail when appropriate; these special labels
        !           335: are called "attributes". All other labels are assigned by the user.
        !           336: 
        !           337: `a LABEL RET'
        !           338:      Assign the label LABEL to the current message (`rmail-add-label').
        !           339: 
        !           340: `k LABEL RET'
        !           341:      Remove the label LABEL from the current message
        !           342:      (`rmail-kill-label').
        !           343: 
        !           344: `C-M-n LABELS RET'
        !           345:      Move to the next message that has one of the labels LABELS
        !           346:      (`rmail-next-labeled-message').
        !           347: 
        !           348: `C-M-p LABELS RET'
        !           349:      Move to the previous message that has one of the labels LABELS
        !           350:      (`rmail-previous-labeled-message').
        !           351: 
        !           352: `C-M-l LABELS RET'
        !           353:      Make a summary of all messages containing any of the labels LABELS
        !           354:      (`rmail-summary-by-labels').
        !           355: 
        !           356: Specifying an empty string for one these commands means to use the last
        !           357: label specified for any of these commands.
        !           358: 
        !           359:    The `a' (`rmail-add-label') and `k' (`rmail-kill-label') commands
        !           360: allow you to assign or remove any label on the current message.  If the
        !           361: LABEL argument is empty, it means to assign or remove the same label
        !           362: most recently assigned or removed.
        !           363: 
        !           364:    Once you have given messages labels to classify them as you wish,
        !           365: there are two ways to use the labels: in moving and in summaries.
        !           366: 
        !           367:    The command `C-M-n LABELS RET' (`rmail-next-labeled-message') moves
        !           368: to the next message that has one of the labels LABELS.  LABELS is one
        !           369: or more label names, separated by commas.  `C-M-p'
        !           370: (`rmail-previous-labeled-message') is similar, but moves backwards to
        !           371: previous messages.  A preceding numeric argument to either one serves
        !           372: as a repeat count.
        !           373: 
        !           374:    The command `C-M-l LABELS RET' (`rmail-summary-by-labels') displays
        !           375: a summary containing only the messages that have at least one of a
        !           376: specified set of messages.  The argument LABELS is one or more label
        !           377: names, separated by commas. *Note Rmail Summary::, for information on
        !           378: summaries.
        !           379: 
        !           380:    If the LABELS argument to `C-M-n', `C-M-p' or `C-M-l' is empty, it
        !           381: means to use the last set of labels specified for any of these commands.
        !           382: 
        !           383:    Some labels such as `deleted' and `filed' have built-in meanings and
        !           384: are assigned to or removed from messages automatically at appropriate
        !           385: times; these labels are called "attributes".  Here is a list of Rmail
        !           386: attributes:
        !           387: 
        !           388: `unseen'
        !           389:      Means the message has never been current.  Assigned to messages
        !           390:      when they come from an inbox file, and removed when a message is
        !           391:      made current.
        !           392: 
        !           393: `deleted'
        !           394:      Means the message is deleted.  Assigned by deletion commands and
        !           395:      removed by undeletion commands (*note Rmail Deletion::.).
        !           396: 
        !           397: `filed'
        !           398:      Means the message has been copied to some other file.  Assigned by
        !           399:      the file output commands (*note Rmail Files::.).
        !           400: 
        !           401: `answered'
        !           402:      Means you have mailed an answer to the message.  Assigned by the
        !           403:      `r' command (`rmail-reply').  *Note Rmail Reply::.
        !           404: 
        !           405: `forwarded'
        !           406:      Means you have forwarded the message to other users.  Assigned by
        !           407:      the `f' command (`rmail-forward').  *Note Rmail Reply::.
        !           408: 
        !           409: `edited'
        !           410:      Means you have edited the text of the message within Rmail. *Note
        !           411:      Rmail Editing::.
        !           412: 
        !           413:    All other labels are assigned or removed only by the user, and it is
        !           414: up to the user to decide what they mean.
        !           415: 
        !           416: 
        !           417: File: emacs,  Node: Rmail Summary,  Next: Rmail Reply,  Prev: Rmail Labels,  Up: Rmail
        !           418: 
        !           419: Summaries
        !           420: =========
        !           421: 
        !           422:    A "summary" is a buffer containing one line per message that Rmail
        !           423: can make and display to give you an overview of the mail in an Rmail
        !           424: file. Each line shows the message number, the sender, the labels, and
        !           425: the subject.  When the summary buffer is selected, various commands can
        !           426: be used to select messages by moving in the summary buffer, or delete
        !           427: or undelete messages.
        !           428: 
        !           429:    A summary buffer applies to a single Rmail file only; if you are
        !           430: editing multiple Rmail files, they have separate summary buffers.  The
        !           431: summary buffer name is made by appending `-summary' to the Rmail
        !           432: buffer's name.  Only one summary buffer will be displayed at a time
        !           433: unless you make several windows and select the summary buffers by hand.
        !           434: 
        !           435: * Menu:
        !           436: 
        !           437: * Rmail Make Summary::  Making various sorts of summaries.
        !           438: * Rmail Summary Edit::  Manipulating messages from the summary.
        !           439: 
        !           440: 
        !           441: File: emacs,  Node: Rmail Make Summary,  Next: Rmail Summary Edit,  Prev: Rmail Summary,  Up: Rmail Summary
        !           442: 
        !           443: Making Summaries
        !           444: ----------------
        !           445: 
        !           446:    Here are the commands to create a summary for the current Rmail file.
        !           447: Summaries do not update automatically; to make an updated summary, you
        !           448: must use one of these commands again.
        !           449: 
        !           450: `h'
        !           451: `C-M-h'
        !           452:      Summarize all messages (`rmail-summary').
        !           453: 
        !           454: `l LABELS RET'
        !           455: `C-M-l LABELS RET'
        !           456:      Summarize message that have one or more of the specified labels
        !           457:      (`rmail-summary-by-labels').
        !           458: 
        !           459: `C-M-r RCPTS RET'
        !           460:      Summarize messages that have one or more of the specified
        !           461:      recipients (`rmail-summary-by-recipients').
        !           462: 
        !           463:    The `h' or `C-M-h' (`rmail-summary') command fills the summary buffer
        !           464: for the current Rmail file with a summary of all the messages in the
        !           465: file. It then displays and selects the summary buffer in another window.
        !           466: 
        !           467:    `C-M-l LABELS RET' (`rmail-summary-by-labels') makes a partial
        !           468: summary mentioning only the messages that have one or more of the
        !           469: labels LABELS.  LABELS should contain label names separated by commas.
        !           470: 
        !           471:    `C-M-r RCPTS RET' (`rmail-summary-by-recipients') makes a partial
        !           472: summary mentioning only the messages that have one or more of the
        !           473: recipients RCPTS.  RCPTS should contain mailing addresses separated by
        !           474: commas.
        !           475: 
        !           476:    Note that there is only one summary buffer for any Rmail file;
        !           477: making one kind of summary discards any previously made summary.
        !           478: 
        !           479: 
        !           480: File: emacs,  Node: Rmail Summary Edit,  Prev: Rmail Make Summary,  Up: Rmail Summary
        !           481: 
        !           482: Editing in Summaries
        !           483: --------------------
        !           484: 
        !           485:    Summary buffers are given the major mode Rmail Summary mode, which
        !           486: provides the following special commands:
        !           487: 
        !           488: `j'
        !           489:      Select the message described by the line that point is on
        !           490:      (`rmail-summary-goto-msg').
        !           491: 
        !           492: `C-n'
        !           493:      Move to next line and select its message in Rmail
        !           494:      (`rmail-summary-next-all').
        !           495: 
        !           496: `C-p'
        !           497:      Move to previous line and select its message
        !           498:      (`rmail-summary-previous-all').
        !           499: 
        !           500: `n'
        !           501:      Move to next line, skipping lines saying `deleted', and select its
        !           502:      message (`rmail-summary-next-msg').
        !           503: 
        !           504: `p'
        !           505:      Move to previous line, skipping lines saying `deleted', and select
        !           506:      its message (`rmail-summary-previous-msg').
        !           507: 
        !           508: `d'
        !           509:      Delete the current line's message, then do like `n'
        !           510:      (`rmail-summary-delete-forward').
        !           511: 
        !           512: `u'
        !           513:      Undelete and select this message or the previous deleted message in
        !           514:      the summary (`rmail-summary-undelete').
        !           515: 
        !           516: `SPC'
        !           517:      Scroll the other window (presumably Rmail) forward
        !           518:      (`rmail-summary-scroll-msg-up').
        !           519: 
        !           520: `DEL'
        !           521:      Scroll the other window backward (`rmail-summary-scroll-msg-down').
        !           522: 
        !           523: `x'
        !           524:      Kill the summary window (`rmail-summary-exit').
        !           525: 
        !           526: `q'
        !           527:      Exit Rmail (`rmail-summary-quit').
        !           528: 
        !           529:    The keys `C-n' and `C-p' are modified in Rmail Summary mode so that
        !           530: in addition to moving point in the summary buffer they also cause the
        !           531: line's message to become current in the associated Rmail buffer.  That
        !           532: buffer is also made visible in another window if it is not already so.
        !           533: 
        !           534:    `n' and `p' are similar to `C-n' and `C-p', but skip lines that say
        !           535: `message deleted'.  They are like the `n' and `p' keys of Rmail itself.
        !           536:  Note, however, that in a partial summary these commands move only
        !           537: among the message listed in the summary.
        !           538: 
        !           539:    The other Emacs cursor motion commands are not changed in Rmail
        !           540: Summary mode, so it is easy to get the point on a line whose message is
        !           541: not selected in Rmail.  This can also happen if you switch to the Rmail
        !           542: window and switch messages there.  To get the Rmail buffer back in sync
        !           543: with the summary, use the `j' (`rmail-summary-goto-msg') command, which
        !           544: selects in Rmail the message of the current summary line.
        !           545: 
        !           546:    Deletion and undeletion can also be done from the summary buffer. 
        !           547: They always work based on where point is located in the summary buffer,
        !           548: ignoring which message is selected in Rmail.  `d'
        !           549: (`rmail-summary-delete-forward') deletes the current line's message,
        !           550: then moves to the next line whose message is not deleted and selects
        !           551: that message.  The inverse of this is `u' (`rmail-summary-undelete'),
        !           552: which moves back (if necessary) to a line whose message is deleted,
        !           553: undeletes that message, and selects it in Rmail.
        !           554: 
        !           555:    When moving through messages with the summary buffer, it is
        !           556: convenient to be able to scroll the message while remaining in the
        !           557: summary window. The commands SPC (`rmail-summary-scroll-msg-up') and DEL
        !           558: (`rmail-summary-scroll-msg-down') do this.  They scroll the message just
        !           559: as those same keys do when the Rmail buffer is selected.
        !           560: 
        !           561:    When you are finished using the summary, type `x'
        !           562: (`rmail-summary-exit') to kill the summary buffer's window.
        !           563: 
        !           564:    You can also exit Rmail while in the summary.  `q'
        !           565: (`rmail-summary-quit') kills the summary window, then saves the Rmail
        !           566: file and switches to another buffer.
        !           567: 
        !           568: 
        !           569: File: emacs,  Node: Rmail Reply,  Next: Rmail Editing,  Prev: Rmail Summary,  Up: Rmail
        !           570: 
        !           571: Sending Replies
        !           572: ===============
        !           573: 
        !           574:    Rmail has several commands that use Mail mode to send outgoing mail.
        !           575: *Note Sending Mail::, for information on using Mail mode.  What are
        !           576: documented here are the special commands of Rmail for entering Mail
        !           577: mode. Note that the usual keys for sending mail, `C-x m' and `C-x 4 m',
        !           578: are available in Rmail mode and work just as they usually do.
        !           579: 
        !           580: `m'
        !           581:      Send a message (`rmail-mail').
        !           582: 
        !           583: `c'
        !           584:      Continue editing already started outgoing message
        !           585:      (`rmail-continue').
        !           586: 
        !           587: `r'
        !           588:      Send a reply to the current Rmail message (`rmail-reply').
        !           589: 
        !           590: `f'
        !           591:      Forward current message to other users (`rmail-forward').
        !           592: 
        !           593:    The most common reason to send a message while in Rmail is to reply
        !           594: to the message you are reading.  To do this, type `r' (`rmail-reply'). 
        !           595: This displays the `*mail*' buffer in another window, much like `C-x 4
        !           596: m', but preinitializes the `Subject', `To', `CC' and `In-reply-to'
        !           597: header fields based on the message being replied to.  The `To' field is
        !           598: given the sender of that message, and the `CC' gets all the recipients
        !           599: of that message (but recipients that match elements of the list
        !           600: `rmail-dont-reply-to' are omitted; by default, this list contains your
        !           601: own mailing address).
        !           602: 
        !           603:    If you don't want to include the other recipients in the `cc' field,
        !           604: you can use a prefix argument to the `r' command.  In Rmail, you can do
        !           605: this with `1 r'.
        !           606: 
        !           607:    Once you have initialized the `*mail*' buffer this way, sending the
        !           608: mail goes as usual (*note Sending Mail::.).  You can edit the
        !           609: presupplied header fields if they are not right for you.
        !           610: 
        !           611:    One additional Mail mode command is available when mailing is invoked
        !           612: from Rmail: `C-c C-y' (`mail-yank-original') inserts into the outgoing
        !           613: message a copy of the current Rmail message; normally this is the
        !           614: message you are replying to, but you can also switch to the Rmail
        !           615: buffer, select a different message, switch back, and yank new current
        !           616: message.  Normally the yanked message is indented four spaces and has
        !           617: most header fields deleted from it; an argument to `C-c C-y' specifies
        !           618: the amount to indent, and `C-u C-c C-y' does not indent at all and does
        !           619: not delete any header fields.
        !           620: 
        !           621:    Another frequent reason to send mail in Rmail is to forward the
        !           622: current message to other users.  `f' (`rmail-forward') makes this easy
        !           623: by preinitializing the `*mail*' buffer with the current message as the
        !           624: text, and a subject designating a forwarded message.  All you have to
        !           625: do is fill in the recipients and send.
        !           626: 
        !           627:    The `m' (`rmail-mail') command is used to start editing an outgoing
        !           628: message that is not a reply.  It leaves the header fields empty. Its
        !           629: only difference from `C-x 4 m' is that it makes the Rmail buffer
        !           630: accessible for `C-c y', just as `r' does.  Thus, `m' can be used to
        !           631: reply to or forward a message; it can do anything `r' or `f' can do.
        !           632: 
        !           633:    The `c' (`rmail-continue') command resumes editing the `*mail*'
        !           634: buffer, to finish editing an outgoing message you were already
        !           635: composing, or to alter a message you have sent.
        !           636: 
        !           637: 
        !           638: File: emacs,  Node: Rmail Editing,  Next: Rmail Digest,  Prev: Rmail Reply,  Up: Rmail
        !           639: 
        !           640: Editing Within a Message
        !           641: ========================
        !           642: 
        !           643:    Rmail mode provides a few special commands for moving within and
        !           644: editing the current message.  In addition, the usual Emacs commands are
        !           645: available (except for a few, such as `C-M-n' and `C-M-h', that are
        !           646: redefined by Rmail for other purposes).  However, the Rmail buffer is
        !           647: normally read-only, and to alter it you must use the Rmail command `w'
        !           648: described below.
        !           649: 
        !           650: `t'
        !           651:      Toggle display of original headers (`rmail-toggle-headers').
        !           652: 
        !           653: `w'
        !           654:      Edit current message (`rmail-edit-current-message').
        !           655: 
        !           656:    Rmail reformats the header of each message before displaying it.
        !           657: Normally this involves deleting most header fields, on the grounds that
        !           658: they are not interesting.  The variable `rmail-ignored-headers' should
        !           659: contain a regexp that matches the header fields to discard in this way.
        !           660: The original headers are saved permanently, and to see what they look
        !           661: like, use the `t' (`rmail-toggle-headers') command.  This discards the
        !           662: reformatted headers of the current message and displays it with the
        !           663: original headers. Repeating `t' reformats the message again.  Selecting
        !           664: the message again also reformats.
        !           665: 
        !           666:    The Rmail buffer is normally read-only, and most of the characters
        !           667: you would type to modify it (including most letters) are redefined as
        !           668: Rmail commands.  This is usually not a problem since it is rare to want
        !           669: to change the text of a message.  When you do want to do this, the way
        !           670: is to type `w' (`rmail-edit-current-message'), which changes from Rmail
        !           671: mode into Rmail Edit mode, another major mode which is nearly the same
        !           672: as Text mode. The mode line illustrates this change.
        !           673: 
        !           674:    In Rmail Edit mode, letters insert themselves as usual and the Rmail
        !           675: commands are not available.  When you are finished editing the message
        !           676: and are ready to go back to Rmail, type `C-c C-c', which switches back
        !           677: to Rmail mode.  Alternatively, you can return to Rmail mode but cancel
        !           678: all the editing that you have done by typing `C-c C-]'.
        !           679: 
        !           680:    Entering Rmail Edit mode calls with no arguments the value of the
        !           681: variable `text-mode-hook', if that value exists and is not `nil'; then
        !           682: it does the same with the variable `rmail-edit-mode-hook'.  It adds the
        !           683: attribute `edited' to the message.
        !           684: 
        !           685: 
        !           686: File: emacs,  Node: Rmail Digest,  Prev: Rmail Editing,  Up: Rmail
        !           687: 
        !           688: Digest Messages
        !           689: ===============
        !           690: 
        !           691:    A "digest message" is a message which exists to contain and carry
        !           692: several other messages.  Digests are used on moderated mailing lists;
        !           693: all the messages that arrive for the list during a period of time such
        !           694: as one day are put inside a single digest which is then sent to the
        !           695: subscribers. Transmitting the single digest uses much less computer
        !           696: time than transmitting the individual messages even though the total
        !           697: size is the same, because the per-message overhead in network mail
        !           698: transmission is considerable.
        !           699: 
        !           700:    When you receive a digest message, the most convenient way to read
        !           701: it is to "undigestify" it: to turn it back into many individual
        !           702: messages. Then you can read and delete the individual messages as it
        !           703: suits you.
        !           704: 
        !           705:    To undigestify a message, select it and then type `M-x
        !           706: undigestify-rmail-message'.  This copies each submessage as a separate
        !           707: Rmail message and inserts them all following the digest.  The digest
        !           708: message itself is flagged as deleted.
        !           709: 
        !           710: 
        !           711: File: emacs,  Node: Recursive Edit,  Next: Narrowing,  Prev: Rmail,  Up: Top
        !           712: 
        !           713: Recursive Editing Levels
        !           714: ========================
        !           715: 
        !           716:    A "recursive edit" is a situation in which you are using Emacs
        !           717: commands to perform arbitrary editing while in the middle of another
        !           718: Emacs command.  For example, when you type `C-r' inside of a
        !           719: `query-replace', you enter a recursive edit in which you can change the
        !           720: current buffer.  On exiting from the recursive edit, you go back to the
        !           721: `query-replace'.
        !           722: 
        !           723:    "Exiting" the recursive edit means returning to the unfinished
        !           724: command, which continues execution.  For example, exiting the recursive
        !           725: edit requested by `C-r' in `query-replace' causes query replacing to
        !           726: resume.  Exiting is done with `C-M-c' (`exit-recursive-edit').
        !           727: 
        !           728:    You can also "abort" the recursive edit.  This is like exiting, but
        !           729: also quits the unfinished command immediately.  Use the command `C-]'
        !           730: (`abort-recursive-edit') for this.  *Note Quitting::.
        !           731: 
        !           732:    The mode line shows you when you are in a recursive edit by
        !           733: displaying square brackets around the parentheses that always surround
        !           734: the major and minor mode names.  Every window's mode line shows this,
        !           735: in the same way, since being in a recursive edit is true of Emacs as a
        !           736: whole rather than any particular buffer.
        !           737: 
        !           738:    It is possible to be in recursive edits within recursive edits.  For
        !           739: example, after typing `C-r' in a `query-replace', you might type a
        !           740: command that entered the debugger.  In such circumstances, two or more
        !           741: sets of square brackets appear in the mode line.  Exiting the inner
        !           742: recursive edit (such as, with the debugger `c' command) would resume
        !           743: the command where it called the debugger.  After the end of this
        !           744: command, you would be able to exit the first recursive edit.  Aborting
        !           745: also gets out of only one level of recursive edit; it returns
        !           746: immediately to the command level of the previous recursive edit.  So
        !           747: you could immediately abort that one too.
        !           748: 
        !           749:    Alternatively, the command `M-x top-level' aborts all levels of
        !           750: recursive edits, returning immediately to the top level command reader.
        !           751: 
        !           752:    The text being edited inside the recursive edit need not be the same
        !           753: text that you were editing at top level.  It depends on what the
        !           754: recursive edit is for.  If the command that invokes the recursive edit
        !           755: selects a different buffer first, that is the buffer you will edit
        !           756: recursively.  In any case, you can switch buffers within the recursive
        !           757: edit in the normal manner (as long as the buffer-switching keys have
        !           758: not been rebound).  You could probably do all the rest of your editing
        !           759: inside the recursive edit, visiting files and all.  But this could have
        !           760: surprising effects (such as stack overflow) from time to time.  So
        !           761: remember to exit or abort the recursive edit when you no longer need it.
        !           762: 
        !           763:    In general, GNU Emacs tries to avoid using recursive edits.  It is
        !           764: usually preferable to allow the user to switch among the possible
        !           765: editing modes in any order he likes.  With recursive edits, the only
        !           766: way to get to another state is to go "back" to the state that the
        !           767: recursive edit was invoked from.
        !           768: 
        !           769: 
        !           770: File: emacs,  Node: Narrowing,  Next: Sorting,  Prev: Recursive Edit,  Up: Top
        !           771: 
        !           772: Narrowing
        !           773: =========
        !           774: 
        !           775:    "Narrowing" means focusing in on some portion of the buffer, making
        !           776: the rest temporarily invisible and inaccessible.  Cancelling the
        !           777: narrowing, and making the entire buffer once again visible, is called
        !           778: "widening". The amount of narrowing in effect in a buffer at any time
        !           779: is called the buffer's "restriction".
        !           780: 
        !           781: `C-x n'
        !           782:      Narrow down to between point and mark (`narrow-to-region').
        !           783: 
        !           784: `C-x w'
        !           785:      Widen to make the entire buffer visible again (`widen').
        !           786: 
        !           787:    When you have narrowed down to a part of the buffer, that part
        !           788: appears to be all there is.  You can't see the rest, you can't move
        !           789: into it (motion commands won't go outside the visible part), you can't
        !           790: change it in any way.  However, it is not gone, and if you save the
        !           791: file all the invisible text will be saved.  In addition to sometimes
        !           792: making it easier to concentrate on a single subroutine or paragraph by
        !           793: eliminating clutter, narrowing can be used to restrict the range of
        !           794: operation of a replace command or repeating keyboard macro.  The word
        !           795: `Narrow' appears in the mode line whenever narrowing is in effect.
        !           796: 
        !           797:    The primary narrowing command is `C-x n' (`narrow-to-region'). It
        !           798: sets the current buffer's restrictions so that the text in the current
        !           799: region remains visible but all text before the region or after the
        !           800: region is invisible.  Point and mark do not change.
        !           801: 
        !           802:    Because narrowing can easily confuse users who do not understand it,
        !           803: `narrow-to-region' is normally a disabled command.  Attempting to use
        !           804: this command asks for confirmation and gives you the option of enabling
        !           805: it; once you enable the command, confirmation will no longer be
        !           806: required for it.  *Note Disabling::.
        !           807: 
        !           808:    The way to undo narrowing is to widen with `C-x w' (`widen'). This
        !           809: makes all text in the buffer accessible again.
        !           810: 
        !           811:    You can get information on what part of the buffer you are narrowed
        !           812: down to using the `C-x =' command.  *Note Position Info::.
        !           813: 
        !           814: 
        !           815: File: emacs,  Node: Sorting,  Next: Shell,  Prev: Narrowing,  Up: Top
        !           816: 
        !           817: Sorting Text
        !           818: ============
        !           819: 
        !           820:    Emacs provides several commands for sorting text in the buffer.  All
        !           821: operate on the contents of the region (the text between point and the
        !           822: mark).  They divide the text of the region into many "sort records",
        !           823: identify a "sort key" for each record, and then reorder the records
        !           824: into the order determined by the sort keys.  The records are ordered so
        !           825: that their keys are in alphabetical order, or, for numeric sorting, in
        !           826: numeric order.  In alphabetic sorting, all upper case letters `A'
        !           827: through `Z' come before lower case `a', in accord with the ASCII
        !           828: character sequence.
        !           829: 
        !           830:    The various sort commands differ in how they divide the text into
        !           831: sort records and in which part of each record is used as the sort key. 
        !           832: Most of the commands make each line a separate sort record, but some
        !           833: commands use paragraphs or pages as sort records.  Most of the sort
        !           834: commands use each entire sort record as its own sort key, but some use
        !           835: only a portion of the record as the sort key.
        !           836: 
        !           837: `M-x sort-lines'
        !           838:      Divide the region into lines, and sort by comparing the entire
        !           839:      text of a line.  A prefix argument means sort into descending
        !           840:      order.
        !           841: 
        !           842: `M-x sort-paragraphs'
        !           843:      Divide the region into paragraphs, and sort by comparing the entire
        !           844:      text of a paragraph (except for leading blank lines).  A prefix
        !           845:      argument means sort into descending order.
        !           846: 
        !           847: `M-x sort-pages'
        !           848:      Divide the region into pages, and sort by comparing the entire
        !           849:      text of a page (except for leading blank lines).  A prefix
        !           850:      argument means sort into descending order.
        !           851: 
        !           852: `M-x sort-fields'
        !           853:      Divide the region into lines, and sort by comparing the contents of
        !           854:      one field in each line.  Fields are defined as separated by
        !           855:      whitespace, so the first run of consecutive non-whitespace
        !           856:      characters in a line constitutes field 1, the second such run
        !           857:      constitutes field 2, etc.
        !           858: 
        !           859:      You specify which field to sort by with a numeric argument: 1 to
        !           860:      sort by field 1, etc.  A negative argument means sort into
        !           861:      descending order.  Thus, minus 2 means sort by field 2 in
        !           862:      reverse-alphabetical order.
        !           863: 
        !           864:      If two lines are equal in the field being compared, their relative
        !           865:      order in the text is not changed.  This enables you to sort by
        !           866:      multiple keys: sort first by the least significant key, then by
        !           867:      the next-to-least key, and so on, ending with the most important
        !           868:      key.
        !           869: 
        !           870: `M-x sort-numeric-fields'
        !           871:      Like `M-x sort-fields' except the specified field is converted to
        !           872:      a number for each line, and the numbers are compared.  `10' comes
        !           873:      before `2' when considered as text, but after it when considered
        !           874:      as a number.
        !           875: 
        !           876: `M-x sort-columns'
        !           877:      Like `M-x sort-fields' except that the text within each line used
        !           878:      for comparison comes from a fixed range of columns.  See below for
        !           879:      an explanation.
        !           880: 
        !           881:    For example, if the buffer contains
        !           882: 
        !           883:      On systems where clash detection (locking of files being edited) is
        !           884:      implemented, Emacs also checks the first time you modify a buffer
        !           885:      whether the file has changed on disk since it was last visited or
        !           886:      saved.  If it has, you are asked to confirm that you want to change
        !           887:      the buffer.
        !           888: 
        !           889: then if you apply `M-x sort-lines' to the entire buffer you get
        !           890: 
        !           891:      On systems where clash detection (locking of files being edited) is
        !           892:      implemented, Emacs also checks the first time you modify a buffer
        !           893:      saved.  If it has, you are asked to confirm that you want to change
        !           894:      the buffer.
        !           895:      whether the file has changed on disk since it was last visited or
        !           896: 
        !           897: where the upper case `O' comes before all lower case letters.  If you
        !           898: apply instead `C-u 2 M-x sort-fields' you get
        !           899: 
        !           900:      implemented, Emacs also checks the first time you modify a buffer
        !           901:      saved.  If it has, you are asked to confirm that you want to change
        !           902:      the buffer.
        !           903:      On systems where clash detection (locking of files being edited) is
        !           904:      whether the file has changed on disk since it was last visited or
        !           905: 
        !           906: where the sort keys were `Emacs', `If', `buffer', `systems' and `the'.
        !           907: 
        !           908:    `M-x sort-columns' requires more explanation.  You specify the
        !           909: columns by putting point at one of the columns and the mark at the other
        !           910: column.  Because this means you cannot put point or the mark at the
        !           911: beginning of the first line to sort, this command uses an unusual
        !           912: definition of `region': all of the line point is in is considered part
        !           913: of the region, and so is all of the line the mark is in.
        !           914: 
        !           915:    For example, to sort a table by information found in columns 10 to
        !           916: 15, you could put the mark on column 10 in the first line of the table,
        !           917: and point on column 15 in the last line of the table, and then use this
        !           918: command. Or you could put the mark on column 15 in the first line and
        !           919: point on column 10 in the last line.
        !           920: 
        !           921:    This can be thought of as sorting the rectangle specified by point
        !           922: and the mark, except that the text on each line to the left or right of
        !           923: the rectangle moves along with the text inside the rectangle. *Note
        !           924: Rectangles::.
        !           925: 
        !           926: 
        !           927: File: emacs,  Node: Shell,  Next: Hardcopy,  Prev: Sorting,  Up: Top
        !           928: 
        !           929: Running Shell Commands from Emacs
        !           930: =================================
        !           931: 
        !           932:    Emacs has commands for passing single command lines to inferior shell
        !           933: processes; it can also run a shell interactively with input and output
        !           934: to an Emacs buffer `*shell*'.
        !           935: 
        !           936: `M-!'
        !           937:      Run a specified shell command line and display the output
        !           938:      (`shell-command').
        !           939: 
        !           940: `M-|'
        !           941:      Run a specified shell command line with region contents as input;
        !           942:      optionally replace the region with the output
        !           943:      (`shell-command-on-region').
        !           944: 
        !           945: `M-x shell'
        !           946:      Run a subshell with input and output through an Emacs buffer. You
        !           947:      can then give commands interactively.
        !           948: 
        !           949: * Menu:
        !           950: 
        !           951: * Single Shell::         How to run one shell command and return.
        !           952: * Interactive Shell::    Permanent shell taking input via Emacs.
        !           953: * Shell Mode::           Special Emacs commands used with permanent shell.
        !           954: 
        !           955: 
        !           956: File: emacs,  Node: Single Shell,  Next: Interactive Shell,  Prev: Shell,  Up: Shell
        !           957: 
        !           958: Single Shell Commands
        !           959: ---------------------
        !           960: 
        !           961:    `M-!' (`shell-command') reads a line of text using the minibuffer
        !           962: and creates an inferior shell to execute the line as a command.
        !           963: Standard input from the command comes from the null device.  If the
        !           964: shell command produces any output, the output goes into an Emacs buffer
        !           965: named `*Shell Command Output*', which is displayed in another window
        !           966: but not selected.  A numeric argument, as in `M-1 M-!', directs this
        !           967: command to insert any output into the current buffer.  In that case,
        !           968: point is left before the output and the mark is set after the output.
        !           969: 
        !           970:    `M-|' (`shell-command-on-region') is like `M-!' but passes the
        !           971: contents of the region as input to the shell command, instead of no
        !           972: input.  If a numeric argument is used, meaning insert output in the
        !           973: current buffer, then the old region is deleted first and the output
        !           974: replaces it as the contents of the region.
        !           975: 
        !           976:    Both `M-!' and `M-|' use `shell-file-name' to specify the shell to
        !           977: use.  This variable is initialized based on your `SHELL' environment
        !           978: variable when Emacs is started.  If the file name does not specify a
        !           979: directory, the directories in the list `exec-path' are searched; this
        !           980: list is initialized based on the environment variable `PATH' when Emacs
        !           981: is started.  Your `.emacs' file can override either or both of these
        !           982: default initializations.
        !           983: 
        !           984:    With `M-!' and `M-|', Emacs has to wait until the shell command
        !           985: completes.  You can quit with `C-g'; that terminates the shell command.
        !           986: 
        !           987: 
        !           988: File: emacs,  Node: Interactive Shell,  Next: Shell Mode,  Prev: Single Shell,  Up: Shell
        !           989: 
        !           990: Interactive Inferior Shell
        !           991: --------------------------
        !           992: 
        !           993:    To run a subshell interactively, putting its typescript in an Emacs
        !           994: buffer, use `M-x shell'.  This creates (or reuses) a buffer named
        !           995: `*shell*' and runs a subshell with input coming from and output going
        !           996: to that buffer.  That is to say, any "terminal output" from the subshell
        !           997: will go into the buffer, advancing point, and any "terminal input" for
        !           998: the subshell comes from text in the buffer.  To give input to the
        !           999: subshell, go to the end of the buffer and type the input, terminated by
        !          1000: RET.
        !          1001: 
        !          1002:    Emacs does not wait for the subshell to do anything.  You can switch
        !          1003: windows or buffers and edit them while the shell is waiting, or while
        !          1004: it is running a command.  Output from the subshell waits until Emacs
        !          1005: has time to process it; this happens whenever Emacs is waiting for
        !          1006: keyboard input or for time to elapse.
        !          1007: 
        !          1008:    If you would like multiple subshells, change the name of buffer
        !          1009: `*shell*' to something different by using `M-x rename-buffer'.  The
        !          1010: next use of `M-x shell' will create a new buffer `*shell*' with its own
        !          1011: subshell.  By renaming this buffer as well you can create a third one,
        !          1012: and so on.  All the subshells run independently and in parallel.
        !          1013: 
        !          1014:    The file name used to load the subshell is the value of the variable
        !          1015: `explicit-shell-file-name', if that is non-`nil'.  Otherwise, the
        !          1016: environment variable `ESHELL' is used, or the environment variable
        !          1017: `SHELL' if there is no `ESHELL'.  If the file name specified is
        !          1018: relative, the directories in the list `exec-path' are searched (*note
        !          1019: Single Shell Commands: Single Shell.).
        !          1020: 
        !          1021:    As soon as the subshell is started, it is sent as input the contents
        !          1022: of the file `~/.emacs_SHELLNAME', if that file exists, where SHELLNAME
        !          1023: is the name of the file that the shell was loaded from.  For example,
        !          1024: if you use `csh', the file sent to it is `~/.emacs_csh'; if you use the
        !          1025: Bourne-Again shell, the file sent to it is `~/.emacs_bash'.
        !          1026: 
        !          1027:    `cd', `pushd' and `popd' commands given to the inferior shell are
        !          1028: watched by Emacs so it can keep the `*shell*' buffer's default
        !          1029: directory the same as the shell's working directory.  These commands
        !          1030: are recognized syntactically by examining lines of input that are sent.
        !          1031:  If you use aliases for these commands, you can tell Emacs to recognize
        !          1032: them also.  For example, if the value of the variable
        !          1033: `shell-pushd-regexp' matches the beginning of a shell command line,
        !          1034: that line is regarded as a `pushd' command.  Change this variable when
        !          1035: you add aliases for `pushd'.  Likewise, `shell-popd-regexp' and
        !          1036: `shell-cd-regexp' are used to recognize commands with the meaning of
        !          1037: `popd' and `cd'.  These commands are recognized only at the beginning
        !          1038: of a shell command line.
        !          1039: 
        !          1040:    If Emacs gets an error while trying to handle what it believes is a
        !          1041: `cd', `pushd' or `popd' command, and the value of
        !          1042: `shell-set-directory-error-hook' is non-`nil', that value is called as
        !          1043: a function with no arguments.
        !          1044: 
        !          1045: 
        !          1046: File: emacs,  Node: Shell Mode,  Prev: Interactive Shell,  Up: Shell
        !          1047: 
        !          1048: Shell Mode
        !          1049: ----------
        !          1050: 
        !          1051:    The shell buffer uses Shell mode, which defines several special keys
        !          1052: attached to the `C-c' prefix.  They are chosen to resemble the usual
        !          1053: editing and job control characters present in shells that are not under
        !          1054: Emacs, except that you must type `C-c' first.  Here is a complete list
        !          1055: of the special key bindings of Shell mode:
        !          1056: 
        !          1057: `RET'
        !          1058:      At end of buffer, send line as input; otherwise, copy current line
        !          1059:      to end of buffer and send it (`send-shell-input').  When a line is
        !          1060:      copied, any text at the beginning of the line that matches the
        !          1061:      variable `shell-prompt-pattern' is left out; this variable's value
        !          1062:      should be a regexp string that matches the prompts that you use in
        !          1063:      your subshell.
        !          1064: 
        !          1065: `C-c C-d'
        !          1066:      Send end-of-file as input, probably causing the shell or its
        !          1067:      current subjob to finish (`shell-send-eof').
        !          1068: 
        !          1069: `C-c C-u'
        !          1070:      Kill all text that has yet to be sent as input
        !          1071:      (`kill-shell-input').
        !          1072: 
        !          1073: `C-c C-w'
        !          1074:      Kill a word before point (`backward-kill-word').
        !          1075: 
        !          1076: `C-c C-c'
        !          1077:      Interrupt the shell or its current subjob if any
        !          1078:      (`interrupt-shell-subjob').
        !          1079: 
        !          1080: `C-c C-z'
        !          1081:      Stop the shell or its current subjob if any (`stop-shell-subjob').
        !          1082: 
        !          1083: `C-c C-\'
        !          1084:      Send quit signal to the shell or its current subjob if any
        !          1085:      (`quit-shell-subjob').
        !          1086: 
        !          1087: `C-c C-o'
        !          1088:      Delete last batch of output from shell (`kill-output-from-shell').
        !          1089: 
        !          1090: `C-c C-r'
        !          1091:      Scroll top of last batch of output to top of window
        !          1092:      (`show-output-from-shell').
        !          1093: 
        !          1094: `C-c C-y'
        !          1095:      Copy the previous bunch of shell input, and insert it into the
        !          1096:      buffer before point (`copy-last-shell-input').  No final newline
        !          1097:      is inserted, and the input copied is not resubmitted until you type
        !          1098:      RET.
        !          1099: 
        !          1100: 
        !          1101: File: emacs,  Node: Hardcopy,  Next: Dissociated Press,  Prev: Shell,  Up: Top
        !          1102: 
        !          1103: Hardcopy Output
        !          1104: ===============
        !          1105: 
        !          1106:    The Emacs commands for making hardcopy derive their names from the
        !          1107: Unix commands `print' and `lpr'.
        !          1108: 
        !          1109: `M-x print-buffer'
        !          1110:      Print hardcopy of current buffer using Unix command `print' (`lpr
        !          1111:      -p').  This makes page headings containing the file name and page
        !          1112:      number.
        !          1113: 
        !          1114: `M-x lpr-buffer'
        !          1115:      Print hardcopy of current buffer using Unix command `lpr'. This
        !          1116:      makes no page headings.
        !          1117: 
        !          1118: `M-x print-region'
        !          1119:      Like `print-buffer' but prints only the current region.
        !          1120: 
        !          1121: `M-x lpr-region'
        !          1122:      Like `lpr-buffer' but prints only the current region.
        !          1123: 
        !          1124:    All the hardcopy commands pass extra switches to the `lpr' program
        !          1125: based on the value of the variable `lpr-switches'.  Its value should be
        !          1126: a list of strings, each string a switch starting with `-'.  For
        !          1127: example, the value could be `("-Pfoo")' to print on printer `foo'.  You
        !          1128: can specify an alternative command to run instead of `lpr' by setting
        !          1129: the variable `lpr-command'.
        !          1130: 
        !          1131: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.