|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.