|
|
1.1 ! root 1: Info file emacs, produced by texinfo-format-buffer -*-Text-*- ! 2: from file emacs.tex ! 3: ! 4: This file documents the GNU Emacs editor. ! 5: ! 6: Copyright (C) 1985, 1986 Richard M. Stallman. ! 7: ! 8: Permission is granted to make and distribute verbatim copies of ! 9: this manual provided the copyright notice and this permission notice ! 10: are preserved on all copies. ! 11: ! 12: Permission is granted to copy and distribute modified versions of this ! 13: manual under the conditions for verbatim copying, provided also that the ! 14: sections entitled "The GNU Manifesto", "Distribution" and "GNU Emacs ! 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 manual ! 20: into another language, under the above conditions for modified versions, ! 21: except that the sections entitled "The GNU Manifesto", "Distribution" ! 22: and "GNU Emacs General Public License" may be included in a translation ! 23: approved by the author instead of in the original English. ! 24: ! 25: ! 26: File: emacs Node: Top, Up: (DIR), Next: Distrib ! 27: ! 28: The Emacs Editor ! 29: **************** ! 30: ! 31: Emacs is the extensible, customizable, self-documenting real-time ! 32: display editor. This Info file describes how to edit with Emacs ! 33: and some of how to customize it, but not how to extend it. ! 34: ! 35: * Menu: ! 36: ! 37: * Distrib:: How to get the latest Emacs distribution. ! 38: * License:: The GNU Emacs General Public License gives you permission ! 39: to redistribute GNU Emacs on certain terms; and also ! 40: explains that there is no warranty. ! 41: * Intro:: An introduction to Emacs concepts. ! 42: * Glossary:: The glossary. ! 43: * Manifesto:: What's GNU? Gnu's Not Unix! ! 44: ! 45: Indexes, nodes containing large menus ! 46: * Key Index:: An item for each standard Emacs key sequence. ! 47: * Command Index:: An item for each command name. ! 48: * Variable Index:: An item for each documented variable. ! 49: * Concept Index:: An item for each concept. ! 50: ! 51: Important General Concepts ! 52: * Screen:: How to interpret what you see on the screen. ! 53: * Characters:: Emacs's character sets for file contents and for keyboard. ! 54: * Keys:: Key sequences: what you type to request one editing action. ! 55: * Commands:: Commands: named functions run by key sequences to do editing. ! 56: * Entering Emacs:: Starting Emacs from the shell. ! 57: * Command Switches:: Hairy startup options. ! 58: * Exiting:: Stopping or killing Emacs. ! 59: * Basic:: The most basic editing commands. ! 60: * Undo:: Undoing recently made changes in the text. ! 61: * Minibuffer:: Entering arguments that are prompted for. ! 62: * M-x:: Invoking commands by their names. ! 63: * Help:: Commands for asking Emacs about its commands. ! 64: ! 65: Important Text-Changing Commands ! 66: * Mark:: The mark: how to delimit a "region" of text. ! 67: * Killing:: Killing text. ! 68: * Yanking:: Recovering killed text. Moving text. ! 69: * Accumulating Text:: ! 70: Other ways of copying text. ! 71: * Rectangles:: Operating on the text inside a rectangle on the screen. ! 72: * Registers:: Saving a text string or a location in the buffer. ! 73: * Display:: Controlling what text is displayed. ! 74: * Search:: Finding or replacing occurrences of a string. ! 75: * Fixit:: Commands especially useful for fixing typos. ! 76: ! 77: Larger Units of Text ! 78: * Files:: All about handling files. ! 79: * Buffers:: Multiple buffers; editing several files at once. ! 80: * Windows:: Viewing two pieces of text at once. ! 81: ! 82: Advanced Features ! 83: * Major Modes:: Text mode vs. Lisp mode vs. C mode ... ! 84: * Indentation:: Editing the white space at the beginnings of lines. ! 85: * Text:: Commands and modes for editing English. ! 86: * Programs:: Commands and modes for editing programs. ! 87: * Running:: Compiling, running and debugging programs. ! 88: * Abbrevs:: How to define text abbreviations to reduce ! 89: the number of characters you must type. ! 90: * Picture:: Editing pictures made up of characters ! 91: using the quarter-plane screen model. ! 92: * Sending Mail::Sending mail in Emacs. ! 93: * Rmail:: Reading mail in Emacs. ! 94: * Recursive Edit:: ! 95: A command can allow you to do editing ! 96: "within the command". This is called a ! 97: `recursive editing level'. ! 98: * Narrowing:: Restricting display and editing to a portion ! 99: of the buffer. ! 100: * Sorting:: Sorting lines, paragraphs or pages within Emacs. ! 101: * Shell:: Executing shell commands from Emacs. ! 102: * Hardcopy:: Printing buffers or regions. ! 103: * Dissociated Press:: Dissociating text for fun. ! 104: * Amusements:: Various games and hacks. ! 105: * Emulation:: Emulating some other editors with Emacs. ! 106: * Customization:: Modifying the behavior of Emacs. ! 107: ! 108: Recovery from Problems. ! 109: * Quitting:: Quitting and aborting. ! 110: * Lossage:: What to do if Emacs is hung or malfunctioning. ! 111: * Bugs:: How and when to report a bug. ! 112: ! 113: Here are some other nodes which are really inferiors of the ones ! 114: already listed, mentioned here so you can get to them in one step: ! 115: ! 116: Subnodes of Screen ! 117: * Point:: The place in the text where editing commands operate. ! 118: * Echo Area:: Short messages appear at the bottom of the screen. ! 119: * Mode Line:: Interpreting the mode line. ! 120: ! 121: Subnodes of Basic ! 122: * Blank Lines:: Commands to make or delete blank lines. ! 123: * Continuation Lines:: Lines too wide for the screen. ! 124: * Position Info:: What page, line, row, or column is point on? ! 125: * Arguments:: Giving numeric arguments to commands. ! 126: ! 127: Subnodes of Minibuffer ! 128: * Minibuffer File:: Entering file names with the minibuffer. ! 129: * Minibuffer Edit:: How to edit in the minibuffer. ! 130: * Completion:: An abbreviation facility for minibuffer input. ! 131: * Repetition:: Re-executing previous commands that used the minibuffer. ! 132: ! 133: Subnodes of Mark ! 134: * Setting Mark:: Commands to set the mark. ! 135: * Using Region:: Summary of ways to operate on contents of the region. ! 136: * Marking Objects:: Commands to put region around textual units. ! 137: * Mark Ring:: Previous mark positions saved so you can go back there. ! 138: ! 139: Subnodes of Yanking ! 140: * Kill Ring:: Where killed text is stored. Basic yanking. ! 141: * Appending Kills:: Several kills in a row all yank together. ! 142: * Earlier Kills:: Yanking something killed some time ago. ! 143: ! 144: Subnodes of Registers ! 145: * RegPos:: Saving positions in registers. ! 146: * RegText:: Saving text in registers. ! 147: * RegRect:: Saving rectangles in registers. ! 148: ! 149: Subnodes of Display ! 150: * Scrolling:: Moving text up and down in a window. ! 151: * Horizontal Scrolling:: Moving text left and right in a window. ! 152: * Selective Display:: Hiding lines with lots of indentation. ! 153: * Display Vars:: Information on variables for customizing display. ! 154: ! 155: Subnodes of Search ! 156: * Incremental Search:: Search happens as you type the string. ! 157: * Nonincremental Search:: Specify entire string and then search. ! 158: * Word Search:: Search for sequence of words. ! 159: * Regexp Search:: Search for match for a regexp. ! 160: * Regexps:: Syntax of regular expressions. ! 161: * Search Case:: To ignore case while searching, or not. ! 162: * Replace:: Search, and replace some or all matches. ! 163: * Unconditional Replace:: Everything about replacement except for querying. ! 164: * Query Replace:: How to use querying. ! 165: * Other Repeating Search:: Operating on all matches for some regexp. ! 166: ! 167: Subnodes of Fixit ! 168: * Kill Errors:: Commands to kill a batch of recently entered text. ! 169: * Transpose:: Exchanging two characters, words, lines, lists... ! 170: * Fixing Case:: Correcting case of last word entered. ! 171: * Spelling:: Apply spelling checker to a word, or a whole file. ! 172: ! 173: Subnodes of Files ! 174: * File Names:: How to type and edit file name arguments. ! 175: * Visiting:: Visiting a file prepares Emacs to edit the file. ! 176: * Saving:: Saving makes your changes permanent. ! 177: * Backup:: How Emacs saves the old version of your file. ! 178: * Interlocking::How Emacs protects against simultaneous editing ! 179: of one file by two users. ! 180: * Reverting:: Reverting cancels all the changes not saved. ! 181: * Auto Save:: Auto Save periodically protects against loss of data. ! 182: * ListDir:: Listing the contents of a file directory. ! 183: * Dired:: "Editing" a directory to delete, rename, etc. ! 184: the files in it. ! 185: * Misc File Ops:: Other things you can do on files. ! 186: ! 187: Subnodes of Buffers ! 188: * Select Buffer:: Creating a new buffer or reselecting an old one. ! 189: * List Buffers:: Getting a list of buffers that exist. ! 190: * Misc Buffer:: Renaming; changing read-only status. ! 191: * Kill Buffer:: Killing buffers you no longer need. ! 192: * Several Buffers:: How to go through the list of all buffers ! 193: and operate variously on several of them. ! 194: ! 195: Subnodes of Windows ! 196: * Basic Window:: Introduction to Emacs windows. ! 197: * Split Window:: New windows are made by splitting existing windows. ! 198: * Other Window:: Moving to another window or doing something to it. ! 199: * Pop Up Window:: Finding a file or buffer in another window. ! 200: * Change Window:: Deleting windows and changing their sizes. ! 201: ! 202: Subnodes of Indentation ! 203: * Indentation Commands:: Various commands and techniques for indentation. ! 204: * Tab Stops:: You can set arbitrary "tab stops" and then ! 205: indent to the next tab stop when you want to. ! 206: * Just Spaces:: You can request indentation using just spaces. ! 207: ! 208: Subnodes of Text ! 209: * Text Mode:: The major mode for editing text files. ! 210: * Nroff Mode:: The major mode for editing input to the formatter nroff. ! 211: * TeX Mode:: The major mode for editing input to the formatter TeX. ! 212: * Outline Mode::The major mode for editing outlines. ! 213: * Words:: Moving over and killing words. ! 214: * Sentences:: Moving over and killing sentences. ! 215: * Paragraphs:: Moving over paragraphs. ! 216: * Pages:: Moving over pages. ! 217: * Filling:: Filling or justifying text ! 218: * Case:: Changing the case of text ! 219: ! 220: Subnodes of Programs ! 221: * Program Modes:: Major modes for editing programs. ! 222: * Lists:: Expressions with balanced parentheses. ! 223: There are editing commands to operate on them. ! 224: * Defuns:: Each program is made up of separate functions. ! 225: There are editing commands to operate on them. ! 226: * Grinding:: Adjusting indentation to show the nesting. ! 227: * Matching:: Insertion of a close-delimiter flashes matching open. ! 228: * Comments:: Inserting, illing and aligning comments. ! 229: * Balanced Editing:: Inserting two matching parentheses at once, etc. ! 230: * Lisp Completion:: Completion on symbol names in Lisp code. ! 231: * Documentation:: Getting documentation of functions you plan to call. ! 232: * Change Log:: Maintaining a change history for your program. ! 233: * Tags:: Go direct to any function in your program in one ! 234: command. Tags remembers which file it is in. ! 235: * Fortran:: Fortran mode and its special features. ! 236: ! 237: Subnodes of Running ! 238: * Compilation:: Compiling programs in languages other than Lisp ! 239: (C, Pascal, etc.) ! 240: * Lisp Modes:: Various modes for editing Lisp programs, with ! 241: different facilities for running the Lisp programs. ! 242: * Lisp Libraries:: Creating Lisp programs to run in Emacs. ! 243: * Lisp Interaction:: Executing Lisp in an Emacs buffer. ! 244: * Lisp Eval:: Executing a single Lisp expression in Emacs. ! 245: * Lisp Debug:: Debugging Lisp programs running in Emacs. ! 246: * External Lisp:: Communicating through Emacs with a separate Lisp. ! 247: ! 248: Subnodes of Abbrevs ! 249: * Defining Abbrevs:: Defining an abbrev, so it will expand when typed. ! 250: * Expanding Abbrevs:: Controlling expansion: prefixes, canceling expansion. ! 251: * Editing Abbrevs:: Viewing or editing the entire list of defined abbrevs. ! 252: * Saving Abbrevs:: Saving the entire list of abbrevs for another session. ! 253: * Dynamic Abbrevs:: Abbreviations for words already in the buffer. ! 254: ! 255: Subnodes of Picture ! 256: * Basic Picture:: Basic concepts and simple commands of Picture Mode. ! 257: * Insert in Picture:: Controlling direction of cursor motion ! 258: after "self-inserting" characters. ! 259: * Tabs in Picture:: Various features for tab stops and indentation. ! 260: * Rectangles in Picture:: Clearing and superimposing rectangles. ! 261: ! 262: Subnodes of Sending Mail ! 263: * Mail Format:: Format of the mail being composed. ! 264: * Mail Headers:: Details of allowed mail header fields. ! 265: * Mail Mode:: Special commands for editing mail being composed. ! 266: ! 267: Subnodes of Rmail ! 268: * Rmail Scrolling:: Scrolling through a message. ! 269: * Rmail Motion:: Moving to another message. ! 270: * Rmail Deletion:: Deleting and expunging messages. ! 271: * Rmail Inbox:: How mail gets into the Rmail file. ! 272: * Rmail Files:: Using multiple Rmail files. ! 273: * Rmail Output:: Copying message out to files. ! 274: * Rmail Labels:: Classifying messages by labeling them. ! 275: * Rmail Summary:: Summaries show brief info on many messages. ! 276: * Rmail Reply:: Sending replies to messages you are viewing. ! 277: * Rmail Editing:: Editing message text and headers in Rmail. ! 278: * Rmail Digest:: Extracting the messages from a digest message. ! 279: ! 280: Subnodes of Shell ! 281: * Single Shell:: Commands to run one shell command and return. ! 282: * Interactive Shell:: Permanent shell taking input via Emacs. ! 283: * Shell Mode:: Special Emacs commands used with permanent shell. ! 284: ! 285: Subnodes of Customization ! 286: * Minor Modes:: Each minor mode is one feature you can turn on ! 287: independently of any others. ! 288: * Variables:: Many Emacs commands examine Emacs variables ! 289: to decide what to do; by setting variables, ! 290: you can control their functioning. ! 291: * Examining:: Examining or setting one variable's value. ! 292: * Edit Options:: Examining or editing list of all variables' values. ! 293: * Locals:: Per-buffer values of variables. ! 294: * File Variables:: How files can specify variable values. ! 295: * Keyboard Macros:: A keyboard macro records a sequence of keystrokes ! 296: to be replayed with a single command. ! 297: * Key Bindings:: The keymaps say what command each key runs. ! 298: By changing them, you can "redefine keys". ! 299: * Keymaps:: Definition of the keymap data structure. ! 300: * Rebinding:: How to redefine one key's meaning conveniently. ! 301: * Disabling:: Disabling a command means confirmation is required ! 302: before it can be executed. This is done to protect ! 303: beginners from surprises. ! 304: * Syntax:: The syntax table controls how words and expressions ! 305: are parsed. ! 306: * Init File:: How to write common customizations in the `.emacs' file. ! 307: ! 308: Subnodes of Lossage (and recovery) ! 309: * Stuck Recursive:: `[...]' in mode line around the parentheses. ! 310: * Screen Garbled:: Garbage on the screen. ! 311: * Text Garbled:: Garbage in the text. ! 312: * Unasked-for Search::Spontaneous entry to incremental search. ! 313: * Emergency Escape:: Emergency escape--- ! 314: What to do if Emacs stops responding. ! 315: * Total Frustration:: When you are at your wits' end. ! 316: ! 317: ! 318: ! 319: File: emacs Node: Distrib, Prev: Top, Up: Top, Next: License ! 320: ! 321: Distribution ! 322: ************ ! 323: ! 324: GNU Emacs is "free"; this means that everyone is free to use it and ! 325: free to redistribute it on a free basis. GNU Emacs is not in the public ! 326: domain; it is copyrighted and there are restrictions on its distribution, ! 327: but these restrictions are designed to permit everything that a good ! 328: cooperating citizen would want to do. What is not allowed is to try to ! 329: prevent others from further sharing any version of GNU Emacs that they ! 330: might get from you. The precise conditions are found in the GNU Emacs ! 331: General Public License that comes with Emacs and also appears following ! 332: this section. ! 333: ! 334: The easiest way to get a copy of GNU Emacs is from someone else who has it. ! 335: You need not ask for permission to do so, or tell any one else; just copy ! 336: it. ! 337: ! 338: If you have access to the Internet, you can get the latest distribution ! 339: version of GNU Emacs from host `prep.ai.mit.edu' using anonymous ! 340: login. See the file `/u2/emacs/GETTING.GNU.SOFTWARE' on that host ! 341: to find out about your options for copying and which files to use. ! 342: ! 343: You may also receive GNU Emacs when you buy a computer. Computer ! 344: manufacturers are free to distribute copies on the same terms that apply to ! 345: everyone else. These terms require them to give you the full sources, ! 346: including whatever changes they may have made, and to permit you to ! 347: redistribute the GNU Emacs received from them under the usual terms of the ! 348: General Public License. In other words, the program must be free for you ! 349: when you get it, not just free for the manufacturer. ! 350: ! 351: If you cannot get a copy in any of those ways, you can order one from the ! 352: Free Software Foundation. Though Emacs itself is free, our distribution ! 353: service is not. An order form is included at the end of manuals printed by ! 354: the Foundation. It is also included in the file `etc/DISTRIB' in the ! 355: Emacs distribution. For further information, write to ! 356: ! 357: Free Software Foundation ! 358: 675 Mass Ave ! 359: Cambridge, MA 02139 ! 360: USA ! 361: ! 362: The income from distribution fees goes to support the foundation's ! 363: purpose: the development of more free software to distribute just like ! 364: GNU Emacs. ! 365: ! 366: If you find GNU Emacs useful, please send a donation to the Free ! 367: Software Foundation. This will help support development of the rest of the ! 368: GNU system, and other useful software beyond that. Your donation is tax ! 369: deductible. ! 370: ! 371: ! 372: File: emacs Node: License, Prev: Distrib, Up: Top, Next: Intro ! 373: ! 374: GNU Emacs General Public License ! 375: ******************************** ! 376: (Clarified 11 Feb 1988) ! 377: ! 378: The license agreements of most software companies keep you at the ! 379: mercy of those companies. By contrast, our general public license is ! 380: intended to give everyone the right to share GNU Emacs. To make ! 381: sure that you get the rights we want you to have, we need to make ! 382: restrictions that forbid anyone to deny you these rights or to ask you ! 383: to surrender the rights. Hence this license agreement. ! 384: ! 385: Specifically, we want to make sure that you have the right to give ! 386: away copies of Emacs, that you receive source code or else can get it ! 387: if you want it, that you can change Emacs or use pieces of it in new ! 388: free programs, and that you know you can do these things. ! 389: ! 390: To make sure that everyone has such rights, we have to forbid you to ! 391: deprive anyone else of these rights. For example, if you distribute ! 392: copies of Emacs, you must give the recipients all the rights that you ! 393: have. You must make sure that they, too, receive or can get the ! 394: source code. And you must tell them their rights. ! 395: ! 396: Also, for our own protection, we must make certain that everyone ! 397: finds out that there is no warranty for GNU Emacs. If Emacs is ! 398: modified by someone else and passed on, we want its recipients to know ! 399: that what they have is not what we distributed, so that any problems ! 400: introduced by others will not reflect on our reputation. ! 401: ! 402: Therefore we (Richard Stallman and the Free Software Foundation, Inc.) ! 403: make the following terms which say what you must do to be allowed to ! 404: distribute or change GNU Emacs. ! 405: ! 406: ! 407: Copying Policies ! 408: ================ ! 409: ! 410: 1. You may copy and distribute verbatim copies of GNU Emacs source code as you ! 411: receive it, in any medium, provided that you conspicuously and ! 412: appropriately publish on each file a valid copyright notice "Copyright ! 413: (C) 1988 Free Software Foundation, Inc." (or with whatever year ! 414: is appropriate); keep intact the notices on all files that ! 415: refer to this License Agreement and to the absence of any warranty; and ! 416: give any other recipients of the GNU Emacs program a copy of this License ! 417: Agreement along with the program. You may charge a distribution fee ! 418: for the physical act of transferring a copy. ! 419: ! 420: 2. You may modify your copy or copies of GNU Emacs source code or ! 421: any portion of it, and copy and distribute such modifications under ! 422: the terms of Paragraph 1 above, provided that you also do the following: ! 423: ! 424: * cause the modified files to carry prominent notices stating ! 425: who last changed such files and the date of any change; and ! 426: ! 427: * cause the whole of any work that you distribute or publish, that ! 428: in whole or in part contains or is a derivative of GNU Emacs or any ! 429: part thereof, to be licensed at no charge to all third parties on ! 430: terms identical to those contained in this License Agreement ! 431: (except that you may choose to grant more extensive warranty ! 432: protection to some or all third parties, at your option). ! 433: ! 434: * if the modified program serves as a debugger, cause it, when ! 435: started running in the simplest and usual way, to print an ! 436: announcement including a valid copyright notice "Copyright ! 437: (C) 1988 Free Software Foundation, Inc." (or with the ! 438: year that is appropriate), saying that there is no warranty (or ! 439: else, saying that you provide a warranty) and that users may ! 440: redistribute the program under these conditions, and telling the ! 441: user how to view a copy of this License Agreement. ! 442: ! 443: * You may charge a distribution fee for the physical act of ! 444: transferring a copy, and you may at your option offer warranty ! 445: protection in exchange for a fee. ! 446: ! 447: Mere aggregation of another unrelated program with this program (or its ! 448: derivative) on a volume of a storage or distribution medium does not bring ! 449: the other program under the scope of these terms. ! 450: ! 451: 3. You may copy and distribute GNU Emacs (or a portion or derivative of it, ! 452: under Paragraph 2) in object code or executable form under the terms ! 453: of Paragraphs 1 and 2 above provided that you also do one of the ! 454: following: ! 455: ! 456: * accompany it with the complete corresponding machine-readable ! 457: source code, which must be distributed under the terms of ! 458: Paragraphs 1 and 2 above; or, ! 459: ! 460: * accompany it with a written offer, valid for at least three ! 461: years, to give any third party free (except for a nominal ! 462: shipping charge) a complete machine-readable copy of the ! 463: corresponding source code, to be distributed under the terms of ! 464: Paragraphs 1 and 2 above; or, ! 465: ! 466: * accompany it with the information you received as to where the ! 467: corresponding source code may be obtained. (This alternative is ! 468: allowed only for noncommercial distribution and only if you ! 469: received the program in object code or executable form alone.) ! 470: ! 471: For an executable file, complete source code means all the source code ! 472: for all modules it contains; but, as a special exception, it need not ! 473: include source code for modules which are standard libraries that ! 474: accompany the operating system on which the executable file runs. ! 475: ! 476: 4. You may not copy, sublicense, distribute or transfer GNU Emacs except ! 477: as expressly provided under this License Agreement. Any attempt ! 478: otherwise to copy, sublicense, distribute or transfer GNU Emacs is ! 479: void and your rights to use GNU Emacs under this License agreement ! 480: shall be automatically terminated. However, parties who have received ! 481: computer software programs from you with this License Agreement will ! 482: not have their licenses terminated so long as such parties remain in ! 483: full compliance. ! 484: ! 485: 5. If you wish to incorporate parts of GNU Emacs into other free programs ! 486: whose distribution conditions are different, write to the Free Software ! 487: Foundation. We have not yet worked out a simple rule that can be stated ! 488: here, but we will often permit this. We will be guided by the two goals of ! 489: preserving the free status of all derivatives of our free software and of ! 490: promoting the sharing and reuse of software. ! 491: ! 492: Your comments and suggestions about our licensing policies and our ! 493: software are welcome! Please contact the Free Software Foundation, Inc., ! 494: 675 Mass Ave, Cambridge, MA 02139. ! 495: ! 496: ! 497: NO WARRANTY ! 498: =========== ! 499: ! 500: BECAUSE GNU EMACS IS LICENSED FREE OF CHARGE, WE PROVIDE ABSOLUTELY ! 501: NO WARRANTY, TO THE EXTENT PERMITTED BY APPLICABLE STATE LAW. EXCEPT ! 502: WHEN OTHERWISE STATED IN WRITING, FREE SOFTWARE FOUNDATION, INC, ! 503: RICHARD M. STALLMAN AND/OR OTHER PARTIES PROVIDE GNU EMACS "AS IS" ! 504: WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, ! 505: BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND ! 506: FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY ! 507: AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE GNU EMACS ! 508: PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY ! 509: SERVICING, REPAIR OR CORRECTION. ! 510: ! 511: IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL FREE SOFTWARE ! 512: FOUNDATION, INC., RICHARD M. STALLMAN, AND/OR ANY OTHER PARTY WHO MAY ! 513: MODIFY AND REDISTRIBUTE GNU EMACS AS PERMITTED ABOVE, BE LIABLE TO YOU ! 514: FOR DAMAGES, INCLUDING ANY LOST PROFITS, LOST MONIES, OR OTHER ! 515: SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR ! 516: INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA ! 517: BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY THIRD PARTIES OR A ! 518: FAILURE OF THE PROGRAM TO OPERATE WITH PROGRAMS NOT DISTRIBUTED BY ! 519: FREE SOFTWARE FOUNDATION, INC.) THE PROGRAM, EVEN IF YOU HAVE BEEN ! 520: ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY ! 521: OTHER PARTY. ! 522: ! 523: ! 524: File: emacs Node: Intro, Prev: License, Up: Top, Next: Glossary ! 525: ! 526: Introduction ! 527: ************ ! 528: ! 529: You are reading about GNU Emacs, the GNU incarnation of the advanced, ! 530: self-documenting, customizable, extensible real-time display editor Emacs. ! 531: (The `G' in `GNU' is not silent.) ! 532: ! 533: We say that Emacs is a "display" editor because normally the text ! 534: being edited is visible on the screen and is updated automatically as you ! 535: type your commands. *Note Display: Screen. ! 536: ! 537: We call it a "real-time" editor because the display is updated very ! 538: frequently, usually after each character or pair of characters you ! 539: type. This minimizes the amount of information you must keep in your ! 540: head as you edit. *Note Real-time: Basic. ! 541: ! 542: We call Emacs advanced because it provides facilities that go beyond ! 543: simple insertion and deletion: filling of text; automatic indentation of ! 544: programs; viewing two or more files at once; and dealing in terms of ! 545: characters, words, lines, sentences, paragraphs, and pages, as well as ! 546: expressions and comments in several different programming languages. It is ! 547: much easier to type one command meaning "go to the end of the paragraph" ! 548: than to find that spot with simple cursor keys. ! 549: ! 550: "Self-documenting" means that at any time you can type a special ! 551: character, `Control-h', to find out what your options are. You can ! 552: also use it to find out what any command does, or to find all the commands ! 553: that pertain to a topic. *Note Help::. ! 554: ! 555: "Customizable" means that you can change the definitions of Emacs ! 556: commands in little ways. For example, if you use a programming language in ! 557: which comments start with `<**' and end with `**>', you can tell ! 558: the Emacs comment manipulation commands to use those strings ! 559: (*Note Comments::). Another sort of customization is rearrangement of the ! 560: command set. For example, if you prefer the four basic cursor motion ! 561: commands (up, down, left and right) on keys in a diamond pattern on the ! 562: keyboard, you can have it. *Note Customization::. ! 563: ! 564: "Extensible" means that you can go beyond simple customization and ! 565: write entirely new commands, programs in the Lisp language to be run by ! 566: Emacs's own Lisp interpreter. Emacs is an "on-line extensible" system, ! 567: which means that it is divided into many functions that call each other, ! 568: any of which can be redefined in the middle of an editing session. Any ! 569: part of Emacs can be replaced without making a separate copy of all of ! 570: Emacs. Most of the editing commands of Emacs are written in Lisp already; ! 571: the few exceptions could have been written in Lisp but are written in C for ! 572: efficiency. Although only a programmer can write an extension, anybody can ! 573: use it afterward. ! 574: ! 575: ! 576: File: emacs Node: Screen, Prev: Concept Index, Up: Top, Next: Characters ! 577: ! 578: ! 579: The Organization of the Screen ! 580: ****************************** ! 581: ! 582: Emacs divides the screen into several areas, each of which contains ! 583: its own sorts of information. The biggest area, of course, is the one ! 584: in which you usually see the text you are editing. ! 585: ! 586: When you are using Emacs, the screen is divided into a number of ! 587: "windows". Initially there is one text window occupying all but the ! 588: last line, plus the special "echo area" or "minibuffer window" in ! 589: the last line. The text window can be subdivided horizontally or ! 590: vertically into multiple text windows, each of which can be used for a ! 591: different file (*Note Windows::). The window that the cursor is in is the ! 592: "selected window", in which editing takes place. The other windows are ! 593: just for reference unless you select one of them. ! 594: ! 595: Each text window's last line is a "mode line" which describes what is ! 596: going on in that window. It is in inverse video if the terminal supports ! 597: that, and contains text that starts like `-----Emacs: SOMETHING'. Its ! 598: purpose is to indicate what buffer is being displayed above it in the ! 599: window; what major and minor modes are in use; and whether the buffer's ! 600: text has been changed. ! 601: ! 602: * Menu: ! 603: ! 604: * Point:: The place in the text where editing commands operate. ! 605: * Echo Area:: Short messages appear at the bottom of the screen. ! 606: * Mode Line:: Interpreting the mode line. ! 607: ! 608: ! 609: File: emacs Node: Point, Prev: Screen, Up: Screen, Next: Echo Area ! 610: ! 611: Point ! 612: ===== ! 613: ! 614: When Emacs is running, the terminal's cursor shows the location at ! 615: which editing commands will take effect. This location is called ! 616: "point". Other commands move point through the text, so that you ! 617: can edit at different places in it. ! 618: ! 619: While the cursor appears to point AT a character, point should be ! 620: thought of as BETWEEN two characters; it points BEFORE the character ! 621: that the cursor appears on top of. Sometimes people speak of "the ! 622: cursor" when they mean "point", or speak of commands that move point as ! 623: "cursor motion" commands. ! 624: ! 625: Terminals have only one cursor, and when output is in progress it must ! 626: appear where the typing is being done. This does not mean that point is ! 627: moving. It is only that Emacs has no way to show you the location of point ! 628: except when the terminal is idle. ! 629: ! 630: If you are editing several files in Emacs, each file has its own point ! 631: location. A file that is not being displayed remembers where point is so ! 632: that it can be seen when you look at that file again. ! 633: ! 634: When there are multiple text windows, each window has its own point ! 635: location. The cursor shows the location of point in the selected window. ! 636: This also is how you can tell which window is selected. If the same buffer ! 637: appears in more than one window, point can be moved in each window ! 638: independently. ! 639: ! 640: The term `point' comes from the character `.', which was the ! 641: command in TECO (the language in which the original Emacs was written) ! 642: for accessing the value now called `point'. ! 643: ! 644: ! 645: File: emacs Node: Echo Area, Prev: Point, Up: Screen, Next: Mode Line ! 646: ! 647: The Echo Area ! 648: ============= ! 649: ! 650: The line at the bottom of the screen (below the mode line) is the ! 651: "echo area". It is used to display small amounts of text for several ! 652: purposes. ! 653: ! 654: "Echoing" means printing out the characters that you type. Emacs ! 655: never echoes single-character commands, and multi-character commands are ! 656: echoed only if you pause while typing them. As soon as you pause for more ! 657: than a second in the middle of a command, all the characters of the command ! 658: so far are echoed. This is intended to "prompt" you for the rest of ! 659: the command. Once echoing has started, the rest of the command is echoed ! 660: immediately when you type it. This behavior is designed to give confident ! 661: users fast response, while giving hesitant users maximum feedback. You ! 662: can change this behavior by setting a variable (*Note Display Vars::). ! 663: ! 664: If a command cannot be executed, it may print an "error message" in ! 665: the echo area. Error messages are accompanied by a beep or by flashing the ! 666: screen. Also, any input you have typed ahead is thrown away when an error ! 667: happens. ! 668: ! 669: Some commands print informative messages in the echo area. These ! 670: messages look much like error messages, but they are not announced with a ! 671: beep and do not throw away input. Sometimes the message tells you what the ! 672: command has done, when this is not obvious from looking at the text being ! 673: edited. Sometimes the sole purpose of a command is to print a message ! 674: giving you specific information. For example, the command `C-x =' is ! 675: used to print a message describing the character position of point in the ! 676: text and its current column in the window. Commands that take a long time ! 677: often display messages ending in `...' while they are working, and ! 678: add `done' at the end when they are finished. ! 679: ! 680: The echo area is also used to display the "minibuffer", a window that ! 681: is used for reading arguments to commands, such as the name of a file to be ! 682: edited. When the minibuffer is in use, the echo area begins with a prompt ! 683: string that usually ends with a colon; also, the cursor appears in that line ! 684: because it is the selected window. You can always get out of the ! 685: minibuffer by typing `C-g'. *Note Minibuffer::. ! 686: ! 687: ! 688: File: emacs Node: Mode Line, Prev: Echo Area, Up: Screen ! 689: ! 690: The Mode Line ! 691: ============= ! 692: ! 693: Each text window's last line is a "mode line" which describes what is ! 694: going on in that window. When there is only one text window, the mode line ! 695: appears right above the echo area. The mode line is in inverse video if ! 696: the terminal supports that, starts and ends with dashes, and contains text ! 697: like `Emacs: SOMETHING'. ! 698: ! 699: If a mode line has something else in place of `Emacs: SOMETHING', ! 700: then the window above it is in a special subsystem such as Dired. The mode ! 701: line then indicates the status of the subsystem. ! 702: ! 703: Normally, the mode line has the following appearance: ! 704: ! 705: --CH-Emacs: BUF (MAJOR MINOR)----POS------ ! 706: ! 707: This gives information about the buffer being displayed in the window: the ! 708: buffer's name, what major and minor modes are in use, whether the buffer's ! 709: text has been changed, and how far down the buffer you are currently ! 710: looking. ! 711: ! 712: CH contains two stars `**' if the text in the buffer has been ! 713: edited (the buffer is "modified"), or `--' if the buffer has not been ! 714: edited. Exception: for a read-only buffer, it is `%%'. ! 715: ! 716: BUF is the name of the window's chosen "buffer". The chosen buffer ! 717: in the selected window (the window that the cursor is in) is also Emacs's ! 718: selected buffer, the one that editing takes place in. When we speak of ! 719: what some command does to "the buffer", we are talking about the ! 720: currently selected buffer. *Note Buffers::. ! 721: ! 722: POS tells you whether there is additional text above the top of the ! 723: screen, or below the bottom. If your file is small and it is all on the ! 724: screen, POS is `All'. Otherwise, it is `Top' if you are looking at the ! 725: beginning of the file, `Bot' if you are looking at the end of the file, or ! 726: `NN%', where NN is the percentage of the file above the top of the screen. ! 727: ! 728: MAJOR is the name of the "major mode" in effect in the buffer. At any ! 729: time, each buffer is in one and only one of the possible major modes. The ! 730: major modes available include Fundamental mode (the least specialized), ! 731: Text mode, Lisp mode, and C mode. *Note Major Modes::, for details of how ! 732: the modes differ and how to select one. ! 733: ! 734: MINOR is a list of some of the "minor modes" that are turned on ! 735: at the moment in the window's chosen buffer. `Fill' means that Auto ! 736: Fill mode is on. `Abbrev' means that Word Abbrev mode is on. ! 737: `Ovwrt' means that Overwrite mode is on. *Note Minor Modes::, for more ! 738: information. `Narrow' means that the buffer being displayed has ! 739: editing restricted to only a portion of its text. This is not really a ! 740: minor mode, but is like one. *Note Narrowing::. `Def' means that a ! 741: keyboard macro is being defined. *Note Keyboard Macros::. ! 742: ! 743: Some buffers display additional information after the minor modes. For ! 744: example, Rmail buffers display the current message number and the total ! 745: number of messages. Compilation buffers and Shell mode display the status ! 746: of the subprocess. ! 747: ! 748: In addition, if Emacs is currently inside a recursive editing level, ! 749: square brackets (`[...]') appear around the parentheses that surround the ! 750: modes. If Emacs is in one recursive editing level within another, double ! 751: square brackets appear, and so on. Since this information pertains to ! 752: Emacs in general and not to any one buffer, the square brackets appear in ! 753: every mode line on the screen or not in any of them. *Note Recursive ! 754: Edit::. ! 755: ! 756: Emacs can optionally display the time and system load in all mode lines. ! 757: To enable this feature, type `M-x display-time'. The information added ! 758: to the mode line usually appears after the file name, before the mode names ! 759: and their parentheses. It looks like this: ! 760: ! 761: HH:MMpm L.LL [D] ! 762: ! 763: (Some fields may be missing if your operating system cannot support them.) ! 764: HH and MM are the hour and minute, followed always by `am' ! 765: or `pm'. L.LL is the average number of running processes in the ! 766: whole system recently. D is an approximate index of the ratio of ! 767: disk activity to cpu activity for all users. ! 768: ! 769: The word `Mail' appears after the load level if there is mail for ! 770: you that you have not read yet. ! 771: ! 772: Customization note: the variable `mode-line-inverse-video' controls ! 773: whether the mode line is displayed in inverse video (assuming the terminal ! 774: supports it); `nil' means no inverse video. The default is `t'. ! 775: ! 776: ! 777: ! 778: File: emacs Node: Characters, Prev: Screen, Up: Top, Next: Keys ! 779: ! 780: The Emacs Character Set ! 781: ======================= ! 782: ! 783: GNU Emacs uses the ASCII character set, which defines 128 different ! 784: character codes. Some of these codes are assigned graphic symbols such as ! 785: `a' and `='; the rest are control characters, such as `Control-a' (also ! 786: called `C-a' for short). `C-a' gets its name from the fact that you type ! 787: it by holding down the CTRL key and then pressing `a'. There is no ! 788: distinction between `C-a' and `C-A'; they are the same character. ! 789: ! 790: Some control characters have special names, and special keys you can type ! 791: them with: RET, TAB, LFD, DEL and ESC. The space character is usually ! 792: referred to below as SPC, even though strictly speaking it is a graphic ! 793: character whose graphic happens to be blank. ! 794: ! 795: Emacs extends the 7-bit ASCII code to an 8-bit code by adding an extra ! 796: bit to each character. This makes 256 possible command characters. The ! 797: additional bit is called Meta. Any ASCII character can be made Meta; ! 798: examples of Meta characters include `Meta-a' (`M-a', for short), `M-A' (not ! 799: the same character as `M-a', but those two characters normally have the ! 800: same meaning in Emacs), `M-RET', and `M-C-a'. For traditional reasons, ! 801: `M-C-a' is usually called `C-M-a'; logically speaking, the order in which ! 802: the modifier keys CTRL and META are mentioned does not matter. ! 803: ! 804: Some terminals have a META key, and allow you to type Meta characters by ! 805: holding this key down. Thus, `Meta-a' is typed by holding down META and ! 806: pressing `a'. The META key works much like the SHIFT key. Such a key is ! 807: not always labeled META, however, as this function is often a special ! 808: option for a key with some other primary purpose. ! 809: ! 810: If there is no META key, you can still type Meta characters using ! 811: two-character sequences starting with ESC. Thus, to enter `M-a', you could ! 812: type `ESC a'. To enter `C-M-a', you would type `ESC C-a'. ESC is allowed ! 813: on terminals with Meta keys, too, in case you have formed a habit of using ! 814: it. ! 815: ! 816: Emacs believes the terminal has a META key if the variable ! 817: `meta-flag' is non-`nil'. Normally this is set automatically ! 818: according to the termcap entry for your terminal type. However, sometimes ! 819: the termcap entry is wrong, and then it is useful to set this variable ! 820: yourself. *Note Variables::, for how to do this. ! 821: ! 822: Emacs buffers also use an 8-bit character set, because bytes have 8 bits, ! 823: but only the ASCII characters are considered meaningful. ASCII graphic ! 824: characters in Emacs buffers are displayed with their graphics. LFD ! 825: is the same as a newline character; it is displayed by starting a new line. ! 826: TAB is displayed by moving to the next tab stop column (usually every ! 827: 8 columns). Other control characters are displayed as a caret (`^') ! 828: followed by the non-control version of the character; thus, `C-a' is ! 829: displayed as `^A'. Non-ASCII characters 128 and up are displayed with ! 830: octal escape sequences; thus, character code 243 (octal), also called ! 831: `M-#' when used as an input character, is displayed as `\243'. ! 832: ! 833: ! 834: File: emacs Node: Keys, Prev: Characters, Up: Top, Next: Commands ! 835: ! 836: Keys ! 837: ==== ! 838: ! 839: A "complete key"---where `key' is short for "key sequence"---is a ! 840: sequence of keystrokes that are understood by Emacs as a unit, as a single ! 841: command (possibly undefined). Most single characters constitute complete ! 842: keys in the standard Emacs command set; there are also some multi-character ! 843: keys. Examples of complete keys are `C-a', `X', RET, `C-x C-f' and `C-x 4 ! 844: C-f'. ! 845: ! 846: A "prefix key" is a sequence of keystrokes that are the beginning of ! 847: a complete key, but not a whole one. Prefix keys and complete keys are ! 848: collectively called "keys". ! 849: ! 850: A prefix key is the beginning of a series of longer sequences that are ! 851: valid keys; adding any single character to the end of the prefix gives a ! 852: valid key, which could be defined as an Emacs command, or could be a prefix ! 853: itself. For example, `C-x' is standardly defined as a prefix, so ! 854: `C-x' and the next input character combine to make a two-character key. ! 855: There are 256 different two-character keys starting with `C-x', one for ! 856: each possible second character. Many of these two-character keys starting ! 857: with `C-x' are standardly defined as Emacs commands. Notable examples ! 858: include `C-x C-f' and `C-x s' (*Note Files::). ! 859: ! 860: Adding one character to a prefix key does not have to form a complete ! 861: key. It could make another, longer prefix. For example, `C-x 4' is itself ! 862: a prefix that leads to 256 different three-character keys, including `C-x 4 ! 863: f', `C-x 4 b' and so on. It would be possible to define one of those ! 864: three-character sequences as a prefix, creating a series of four-character ! 865: keys, but we did not define any of them this way. ! 866: ! 867: By contrast, the two-character sequence `C-f C-k' is not a key, because ! 868: the `C-f' is a complete key in itself. It's impossible to give `C-f C-k' ! 869: an independent meaning as a command as long as `C-f' retains its meaning. ! 870: `C-f C-k' is two commands. ! 871: ! 872: All told, the prefix keys in Emacs are `C-c', `C-x', `C-h', `C-x 4', and ! 873: ESC. But this is not built in; it is just a matter of Emacs's standard key ! 874: bindings. In customizing Emacs, you could make new prefix keys, or ! 875: eliminate these. *Note Key Bindings::. ! 876: ! 877: Whether a sequence is a key can be changed by customization. For ! 878: example, if you redefine `C-f' as a prefix, `C-f C-k' automatically ! 879: becomes a key (complete, unless you define it too as a prefix). ! 880: Conversely, if you remove the prefix definition of `C-x 4', then ! 881: `C-x 4 f' (or `C-x 4 ANYTHING') is no longer a key. ! 882: ! 883: ! 884: File: emacs Node: Commands, Prev: Keys, Up: Top, Next: Entering Emacs ! 885: ! 886: Keys and Commands ! 887: ================= ! 888: ! 889: This manual is full of passages that tell you what particular keys do. ! 890: But Emacs does not assign meanings to keys directly. Instead, Emacs ! 891: assigns meanings to "functions", and then gives keys their meanings by ! 892: "binding" them to functions. ! 893: ! 894: A function is a Lisp object that can be executed as a program. Usually ! 895: it is a Lisp symbol which has been given a function definition; every ! 896: symbol has a name, usually made of a few English words separated by dashes, ! 897: such as `next-line' or `forward-word'. It also has a ! 898: "definition" which is a Lisp program; this is what makes the function ! 899: do what it does. Only some functions can be the bindings of keys; these ! 900: are functions whose definitions use `interactive' to specify how to ! 901: call them interactively. Such functions are called "commands", and ! 902: their names are "command names". More information on this subject will ! 903: appear in the GNU Emacs Lisp Manual (which is not yet written). ! 904: ! 905: The bindings between keys and functions are recorded in various tables ! 906: called "keymaps". *Note Keymaps::. ! 907: ! 908: When we say that "`C-n' moves down vertically one line" we are glossing ! 909: over a distinction that is irrelevant in ordinary use but is vital in ! 910: understanding how to customize Emacs. It is the function `next-line' that ! 911: is programmed to move down vertically. `C-n' has this effect because it is ! 912: bound to that function. If you rebind `C-n' to the function `forward-word' ! 913: then `C-n' will move forward by words instead. Rebinding keys is a common ! 914: method of customization. ! 915: ! 916: In the rest of this manual, we usually ignore this subtlety to keep ! 917: things simple. To give the customizer the information he needs, we ! 918: state the name of the command which really does the work in parentheses ! 919: after mentioning the key that runs it. For example, we will say that ! 920: "The command `C-n' (`next-line') moves point vertically down," ! 921: meaning that `next-line' is a command that moves vertically down ! 922: and `C-n' is a key that is standardly bound to it. ! 923: ! 924: While we are on the subject of information for customization only, it's a ! 925: good time to tell you about "variables". Often the description of a ! 926: command will say, "To change this, set the variable `mumble-foo'." ! 927: A variable is a name used to remember a value. Most of the variables ! 928: documented in this manual exist just to facilitate customization: some ! 929: command or other part of Emacs examines the variable and behaves ! 930: differently accordingly. Until you are interested in customizing, you can ! 931: ignore the information about variables. When you are ready to be ! 932: interested, read the basic information on variables, and then the ! 933: information on individual variables will make sense. *Note Variables::. ! 934: ! 935: ! 936: File: emacs Node: Entering Emacs, Prev: Commands, Up: Top, Next: Exiting ! 937: ! 938: Entering and Exiting Emacs ! 939: ************************** ! 940: ! 941: The usual way to invoke Emacs is just to type `emacs RET' at ! 942: the shell. Emacs clears the screen and then displays an initial advisor ! 943: message and copyright notice. You can begin typing Emacs commands ! 944: immediately afterward. ! 945: ! 946: Some operating systems insist on discarding all type-ahead when Emacs ! 947: starts up; they give Emacs no way to prevent this. Therefore, it is ! 948: wise to wait until Emacs clears the screen before typing your first ! 949: editing command. ! 950: ! 951: Before Emacs reads the first command, you have not had a chance to give a ! 952: command to specify a file to edit. But Emacs must always have a current ! 953: buffer for editing. In an attempt to do something useful, Emacs presents a ! 954: buffer named `*scratch*' which is in Lisp Interaction mode; you can ! 955: use it to type Lisp expressions and evaluate them, or you can ignore that ! 956: capability and simply doodle. (You can specify a different major mode for ! 957: this buffer by setting the variable `initial-major-mode' in your init ! 958: file. *Note Init File::.) ! 959: ! 960: It is also possible to specify files to be visited, Lisp files to be ! 961: loaded, and functions to be called, by giving Emacs arguments in the ! 962: shell command line. *Note Command Switches::. ! 963: ! 964: ! 965: File: emacs Node: Exiting, Prev: Entering Emacs, Up: Top, Next: Command Switches ! 966: ! 967: Exiting Emacs ! 968: ============= ! 969: ! 970: There are two commands for exiting Emacs because there are two kinds of ! 971: exiting: "suspending" Emacs and "killing" Emacs. "Suspending" means ! 972: stopping Emacs temporarily and returning control to its superior (usually ! 973: the shell), allowing you to resume editing later in the same Emacs job, ! 974: with the same files, same kill ring, same undo history, and so on. This is ! 975: the usual way to exit. "Killing" Emacs means destroying the Emacs job. ! 976: You can run Emacs again later, but you will get a fresh Emacs; there is no ! 977: way to resume the same editing session after it has been killed. ! 978: ! 979: `C-z' ! 980: Suspend Emacs (`suspend-emacs'). ! 981: `C-x C-c' ! 982: Kill Emacs (`save-buffers-kill-emacs'). ! 983: ! 984: To suspend Emacs, type `C-z' (`suspend-emacs'). This takes ! 985: you back to the shell from which you invoked Emacs. You can resume ! 986: Emacs with the command `%emacs' if you are using the C shell. ! 987: ! 988: On systems that do not permit programs to be suspended, `C-z' runs an ! 989: inferior shell that communicates directly with the terminal, and Emacs ! 990: waits until you exit the subshell. The only way on these systems to get ! 991: back to the shell from which Emacs was run (to log out, for example) is to ! 992: kill Emacs. `C-d' or `exit' are typical commands to exit a ! 993: subshell. ! 994: ! 995: To kill Emacs, type `C-x C-c' (`save-buffers-kill-emacs'). A ! 996: two-character key is used for this to make it harder to type. Unless a ! 997: numeric argument is used, this command first offers to save any modified ! 998: buffers. If you do not save them all, it asks for reconfirmation with ! 999: `yes' before killing Emacs, since any changes not saved before that will be ! 1000: lost forever. Also, if any subprocesses are still running, `C-x C-c' ! 1001: asks for confirmation about them, since killing Emacs will kill the ! 1002: subprocesses immediately. ! 1003: ! 1004: In most programs running on Unix, certain characters may instantly ! 1005: suspend or kill the program. (In Berkeley Unix these characters are ! 1006: normally `C-z' and `C-c'.) This Unix feature is turned off ! 1007: while you are in Emacs. The meanings of `C-z' and `C-x C-c' as ! 1008: keys in Emacs were inspired by the standard Berkeley Unix meanings of ! 1009: `C-z' and `C-c', but that is their only relationship with ! 1010: Unix. You could customize these keys to do anything (*Note Keymaps::). ! 1011: ! 1012: ! 1013: ! 1014: File: emacs Node: Command Switches, Prev: Exiting, Up: Top, Next: Basic ! 1015: ! 1016: Command Line Switches and Arguments ! 1017: =================================== ! 1018: ! 1019: ! 1020: GNU Emacs supports command line arguments to request various actions ! 1021: when invoking Emacs. These are for compatibility with other editors and ! 1022: for sophisticated activities. They are not needed for ordinary editing ! 1023: with Emacs, so new users can skip this section. ! 1024: ! 1025: You may be used to using command line arguments with other editors ! 1026: to specify which file to edit. That's because many other editors are ! 1027: designed to be started afresh each time you want to edit. You ! 1028: edit one file and then exit the editor. The next time you want to edit ! 1029: either another file or the same one, you must run the editor again. ! 1030: With these editors, it makes sense to use a command line argument ! 1031: to say which file to edit. ! 1032: ! 1033: The recommended way to use GNU Emacs is to start it only once, just after ! 1034: you log in, and do all your editing in the same Emacs process. Each time ! 1035: you want to edit a different file, you visit it with the existing Emacs, ! 1036: which eventually comes to have many files in it ready for editing. Usually ! 1037: you do not kill the Emacs until you are about to log out. ! 1038: ! 1039: When files are nearly always read by typing commands to an editor that is ! 1040: already running, command line arguments for specifying a file when the ! 1041: editor is started are seldom needed. ! 1042: ! 1043: Emacs accepts command-line arguments that specify files to visit, ! 1044: functions to call, and other activities and operating modes. ! 1045: ! 1046: The command arguments are processed in the order they appear in the ! 1047: command argument list; however, certain arguments (the ones in the second ! 1048: table) must be at the front of the list if they are used. ! 1049: ! 1050: Here are the arguments allowed: ! 1051: ! 1052: `FILE' ! 1053: Visit FILE using `find-file'. *Note Visiting::. ! 1054: ! 1055: `+LINENUM FILE' ! 1056: Visit FILE using `find-file', then go to line number ! 1057: LINENUM in it. ! 1058: ! 1059: `-l FILE' ! 1060: `-load FILE' ! 1061: Load a file FILE of Lisp code with the function `load'. ! 1062: *Note Lisp Libraries::. ! 1063: ! 1064: `-f FUNCTION' ! 1065: `-funcall FUNCTION' ! 1066: Call Lisp function FUNCTION with no arguments. ! 1067: ! 1068: `-i FILE' ! 1069: `-insert FILE' ! 1070: Insert the contents of FILE into the current buffer. ! 1071: This is like what `M-x insert-buffer' does; *Note Misc File Ops::. ! 1072: ! 1073: `-kill' ! 1074: Exit from Emacs without asking for confirmation. ! 1075: ! 1076: The remaining switches are recognized only at the beginning of the ! 1077: command line. If more than one of them appears, they must appear in the ! 1078: order that they appear in this table. ! 1079: ! 1080: `-t DEVICE' ! 1081: Use DEVICE as the device for terminal input and output. ! 1082: ! 1083: `-d DISPLAY' ! 1084: When running with the X window system, use the display named DISPLAY ! 1085: to make the window that serves as Emacs's terminal. ! 1086: ! 1087: `-batch' ! 1088: Run Emacs in "batch mode", which means that the text being edited is ! 1089: not displayed and the standard Unix interrupt characters such as `C-z' ! 1090: and `C-c' continue to have their normal effect. Emacs in batch mode ! 1091: outputs to `stdout' only what would normally be printed in the echo ! 1092: area under program control. ! 1093: ! 1094: Batch mode is used for running programs written in Emacs Lisp from ! 1095: shell scripts, makefiles, and so on. Normally the `-l' switch ! 1096: or `-f' switch will be used as well, to invoke a Lisp program ! 1097: to do the batch processing. ! 1098: ! 1099: `-batch' implies `-q' (do not load an init file). It also causes ! 1100: Emacs to kill itself after all command switches have been processed. In ! 1101: addition, auto-saving is not done except in buffers for which it has been ! 1102: explicitly requested. ! 1103: ! 1104: `-q' ! 1105: `-no-init-file' ! 1106: Do not load your Emacs init file `~/.emacs'. ! 1107: ! 1108: `-u USER' ! 1109: `-user USER' ! 1110: Load USER's Emacs init file `~USER/.emacs' instead of ! 1111: your own. ! 1112: ! 1113: Note that the init file can get access to the command line argument ! 1114: values as the elements of a list in the variable `command-line-args'. ! 1115: (The arguments in the second table above will already have been processed ! 1116: and will not be in the list.) The init file can override the normal ! 1117: processing of the other arguments by setting this variable. ! 1118: ! 1119: One way to use command switches is to visit many files automatically: ! 1120: ! 1121: emacs *.c ! 1122: ! 1123: passes each `.c' file as a separate argument to Emacs, so that Emacs ! 1124: visits each file (*Note Visiting::). ! 1125: ! 1126: Here is an advanced example that assumes you have a Lisp program ! 1127: file called `hack-c-program.el' which, when loaded, performs some ! 1128: useful operation on current buffer, expected to be a C program. ! 1129: ! 1130: emacs -batch foo.c -l hack-c-program -f save-buffer -kill > log ! 1131: ! 1132: Here Emacs is told to visit `foo.c', load `hack-c-program.el' ! 1133: (which makes changes in the visited file), save `foo.c' (note that ! 1134: `save-buffer' is the function that `C-x C-s' is bound to), and ! 1135: then exit to the shell that this command was done with. `-batch' ! 1136: guarantees there will be no problem redirecting output to `log', ! 1137: because Emacs will not assume that it has a display terminal to work with. ! 1138: ! 1139:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.