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