Commit | Line | Data |
---|---|---|
3f973d9b AI |
1 | \input texinfo |
2 | ||
3 | @setchapternewpage odd | |
4 | @settitle GNU Emacs Manual | |
5 | @setfilename ../info/emacs | |
6 | @synindex pg cp | |
7 | ||
7a258cfb | 8 | @ifnottex |
3f973d9b | 9 | @c The edition number appears in several places in this file |
436b261d | 10 | This is the fourteenth edition of the @cite{GNU Emacs Manual}, |
cfec635c | 11 | updated for Emacs version 21.0.95. |
3f973d9b AI |
12 | @c Please REMEMBER to update edition number in *three* places in this file. |
13 | ||
4c2ca4f3 | 14 | @dircategory Emacs |
3f973d9b AI |
15 | @direntry |
16 | * Emacs: (emacs). The extensible self-documenting text editor. | |
17 | @end direntry | |
18 | ||
19 | Published by the Free Software Foundation | |
20 | 59 Temple Place, Suite 330 | |
21 | Boston, MA 02111-1307 USA | |
22 | ||
436b261d | 23 | Copyright (C) 1985, 1986,1987,1993,1994,1995,1996,1997,1998,1999,2000 |
3f973d9b AI |
24 | Free Software Foundation, Inc. |
25 | ||
7a258cfb DL |
26 | Permission is granted to copy, distribute and/or modify this document |
27 | under the terms of the GNU Free Documentation License, Version 1.1 or | |
28 | any later version published by the Free Software Foundation; with the | |
29 | Invariant Sections being ``The GNU Manifesto'', ``Distribution'' and | |
30 | ``GNU GENERAL PUBLIC LICENSE'', with the Front-Cover texts being ``A GNU | |
31 | Manual'', and with the Back-Cover Texts as in (a) below. A copy of the | |
32 | license is included in the section entitled ``GNU Free Documentation | |
33 | License''. | |
34 | ||
35 | (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify | |
36 | this GNU Manual, like GNU software. Copies published by the Free | |
37 | Software Foundation raise funds for GNU development.'' | |
7a258cfb | 38 | @end ifnottex |
3f973d9b AI |
39 | |
40 | @c in general, keep the following line commented out, unless doing a | |
41 | @c copy of this manual that will be published. the manual should go | |
42 | @c onto the distribution in the full, 8.5 x 11" size. | |
43 | ||
44 | @smallbook | |
45 | ||
46 | @iftex | |
47 | @kbdinputstyle code | |
48 | ||
49 | @shorttitlepage GNU Emacs Manual | |
50 | @end iftex | |
51 | @titlepage | |
52 | @sp 6 | |
53 | @center @titlefont{GNU Emacs Manual} | |
54 | @sp 4 | |
cfec635c | 55 | @center Fourteenth Edition, Updated for Emacs Version 21.0.95. |
3f973d9b AI |
56 | @sp 5 |
57 | @center Richard Stallman | |
58 | @page | |
59 | @vskip 0pt plus 1filll | |
436b261d | 60 | Copyright @copyright{} 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 |
3f973d9b AI |
61 | Free Software Foundation, Inc. |
62 | @sp 2 | |
436b261d | 63 | Fourteenth Edition @* |
cfec635c | 64 | Updated for Emacs Version 21.0.95, @* |
436b261d | 65 | August 2000 |
3f973d9b AI |
66 | |
67 | ISBN 1-882114-06-X | |
68 | @sp 1 | |
69 | Published by the Free Software Foundation @* | |
70 | 59 Temple Place, Suite 330 @* | |
71 | Boston, MA 02111-1307 USA | |
72 | @sp 1 | |
7a258cfb DL |
73 | Permission is granted to copy, distribute and/or modify this document |
74 | under the terms of the GNU Free Documentation License, Version 1.1 or | |
75 | any later version published by the Free Software Foundation; with the | |
76 | Invariant Sections being ``The GNU Manifesto'', ``Distribution'' and | |
77 | ``GNU GENERAL PUBLIC LICENSE'', with the Front-Cover texts being ``A GNU | |
78 | Manual'', and with the Back-Cover Texts as in (a) below. A copy of the | |
79 | license is included in the section entitled ``GNU Free Documentation | |
80 | License''. | |
81 | ||
82 | (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify | |
83 | this GNU Manual, like GNU software. Copies published by the Free | |
84 | Software Foundation raise funds for GNU development.'' | |
3f973d9b AI |
85 | |
86 | @sp 2 | |
87 | Cover art by Etienne Suvasa. | |
88 | ||
89 | @end titlepage | |
90 | @page | |
4f00b8c1 | 91 | @ifnottex |
3f973d9b AI |
92 | @node Top, Distrib, (dir), (dir) |
93 | @top The Emacs Editor | |
94 | ||
95 | Emacs is the extensible, customizable, self-documenting real-time | |
96 | display editor. This Info file describes how to edit with Emacs and | |
436b261d | 97 | some of how to customize it; it corresponds to GNU Emacs version 21.1. |
3f973d9b AI |
98 | For information on extending Emacs, see @ref{,Emacs Lisp,, elisp, The |
99 | Emacs Lisp Reference Manual}. | |
4f00b8c1 | 100 | @end ifnottex |
3f973d9b AI |
101 | |
102 | @ignore | |
103 | These subcategories have been deleted for simplicity | |
104 | and to avoid conflicts. | |
105 | Completion | |
106 | Backup Files | |
107 | Auto-Saving: Protection Against Disasters | |
108 | Snapshots | |
109 | Text Mode | |
110 | Outline Mode | |
111 | @TeX{} Mode | |
112 | Formatted Text | |
113 | Fortran Mode | |
114 | Fortran Indentation | |
115 | Shell Command History | |
116 | ||
117 | The ones for Dired and Rmail have had the items turned into :: items | |
118 | to avoid conflicts. | |
119 | Also Running Shell Commands from Emacs | |
120 | and Sending Mail and Registers and Minibuffer. | |
121 | @end ignore | |
122 | ||
123 | @menu | |
124 | * Distrib:: How to get the latest Emacs distribution. | |
125 | * Copying:: The GNU General Public License gives you permission | |
126 | to redistribute GNU Emacs on certain terms; | |
127 | it also explains that there is no warranty. | |
7a258cfb | 128 | * GNU Free Documentation License:: The license for this documentation. |
3f973d9b AI |
129 | * Intro:: An introduction to Emacs concepts. |
130 | * Glossary:: The glossary. | |
645b441b | 131 | * Antinews:: Information about Emacs version 20. |
2f920ca8 | 132 | * Mac OS:: Using Emacs in the Mac. |
3f973d9b AI |
133 | * MS-DOS:: Using Emacs on MS-DOS (otherwise known as "MS-DOG"). |
134 | * Manifesto:: What's GNU? Gnu's Not Unix! | |
135 | * Acknowledgments:: Major contributors to GNU Emacs. | |
136 | ||
137 | Indexes (nodes containing large menus) | |
138 | * Key Index:: An item for each standard Emacs key sequence. | |
139 | * Command Index:: An item for each command name. | |
140 | * Variable Index:: An item for each documented variable. | |
141 | * Concept Index:: An item for each concept. | |
142 | ||
143 | Important General Concepts | |
144 | * Screen:: How to interpret what you see on the screen. | |
145 | * User Input:: Kinds of input events (characters, buttons, | |
146 | function keys). | |
147 | * Keys:: Key sequences: what you type to request one | |
148 | editing action. | |
149 | * Commands:: Named functions run by key sequences to do editing. | |
150 | * Text Characters:: Character set for text (the contents of buffers | |
151 | and strings). | |
152 | * Entering Emacs:: Starting Emacs from the shell. | |
153 | * Exiting:: Stopping or killing Emacs. | |
154 | * Command Arguments:: Hairy startup options. | |
155 | ||
156 | Fundamental Editing Commands | |
157 | * Basic:: The most basic editing commands. | |
158 | * Minibuffer:: Entering arguments that are prompted for. | |
159 | * M-x:: Invoking commands by their names. | |
160 | * Help:: Commands for asking Emacs about its commands. | |
161 | ||
162 | Important Text-Changing Commands | |
163 | * Mark:: The mark: how to delimit a ``region'' of text. | |
164 | * Killing:: Killing text. | |
165 | * Yanking:: Recovering killed text. Moving text. | |
166 | * Accumulating Text:: Other ways of copying text. | |
167 | * Rectangles:: Operating on the text inside a rectangle on the screen. | |
168 | * Registers:: Saving a text string or a location in the buffer. | |
169 | * Display:: Controlling what text is displayed. | |
170 | * Search:: Finding or replacing occurrences of a string. | |
171 | * Fixit:: Commands especially useful for fixing typos. | |
172 | ||
173 | Major Structures of Emacs | |
174 | * Files:: All about handling files. | |
175 | * Buffers:: Multiple buffers; editing several files at once. | |
176 | * Windows:: Viewing two pieces of text at once. | |
177 | * Frames:: Running the same Emacs session in multiple X windows. | |
7fed4a7a | 178 | * International:: Using non-ASCII character sets (the MULE features). |
3f973d9b AI |
179 | |
180 | Advanced Features | |
181 | * Major Modes:: Text mode vs. Lisp mode vs. C mode ... | |
182 | * Indentation:: Editing the white space at the beginnings of lines. | |
183 | * Text:: Commands and modes for editing English. | |
184 | * Programs:: Commands and modes for editing programs. | |
185 | * Building:: Compiling, running and debugging programs. | |
186 | * Abbrevs:: How to define text abbreviations to reduce | |
187 | the number of characters you must type. | |
188 | * Picture:: Editing pictures made up of characters | |
189 | using the quarter-plane screen model. | |
190 | * Sending Mail:: Sending mail in Emacs. | |
191 | * Rmail:: Reading mail in Emacs. | |
192 | * Dired:: You can ``edit'' a directory to manage files in it. | |
193 | * Calendar/Diary:: The calendar and diary facilities. | |
194 | * Gnus:: How to read netnews with Emacs. | |
195 | * Shell:: Executing shell commands from Emacs. | |
196 | * Emacs Server:: Using Emacs as an editing server for @code{mail}, etc. | |
197 | * Hardcopy:: Printing buffers or regions. | |
d45bbb01 DL |
198 | * PostScript:: Printing buffers or regions as PostScript. |
199 | * PostScript Variables:: | |
200 | Customizing the PostScript printing commands. | |
3f973d9b AI |
201 | * Sorting:: Sorting lines, paragraphs or pages within Emacs. |
202 | * Narrowing:: Restricting display and editing to a portion | |
203 | of the buffer. | |
204 | * Two-Column:: Splitting apart columns to edit them | |
205 | in side-by-side windows. | |
206 | * Editing Binary Files:: | |
207 | Using Hexl mode to edit binary files. | |
208 | * Saving Emacs Sessions:: | |
209 | Saving Emacs state from one session to the next. | |
210 | * Recursive Edit:: A command can allow you to do editing | |
211 | "within the command". This is called a | |
212 | `recursive editing level'. | |
213 | * Emulation:: Emulating some other editors with Emacs. | |
4f00b8c1 | 214 | * Hyperlinking:: Following links in buffers. |
3f973d9b AI |
215 | * Dissociated Press:: Dissociating text for fun. |
216 | * Amusements:: Various games and hacks. | |
217 | * Customization:: Modifying the behavior of Emacs. | |
218 | ||
219 | Recovery from Problems | |
220 | * Quitting:: Quitting and aborting. | |
221 | * Lossage:: What to do if Emacs is hung or malfunctioning. | |
222 | * Bugs:: How and when to report a bug. | |
223 | * Contributing:: How to contribute improvements to Emacs. | |
224 | * Service:: How to get help for your own Emacs needs. | |
225 | ||
226 | Here are some other nodes which are really inferiors of the ones | |
227 | already listed, mentioned here so you can get to them in one step: | |
228 | ||
229 | --- The Detailed Node Listing --- | |
230 | ||
231 | The Organization of the Screen | |
232 | ||
233 | * Point:: The place in the text where editing commands operate. | |
234 | * Echo Area:: Short messages appear at the bottom of the screen. | |
235 | * Mode Line:: Interpreting the mode line. | |
236 | * Menu Bar:: How to use the menu bar. | |
237 | ||
238 | Basic Editing Commands | |
239 | ||
240 | * Inserting Text:: Inserting text by simply typing it. | |
241 | * Moving Point:: How to move the cursor to the place where you want to | |
242 | change something. | |
243 | * Erasing:: Deleting and killing text. | |
244 | * Undo:: Undoing recent changes in the text. | |
245 | * Files: Basic Files. Visiting, creating, and saving files. | |
246 | * Help: Basic Help. Asking what a character does. | |
247 | * Blank Lines:: Commands to make or delete blank lines. | |
248 | * Continuation Lines:: Lines too wide for the screen. | |
249 | * Position Info:: What page, line, row, or column is point on? | |
250 | * Arguments:: Numeric arguments for repeating a command. | |
251 | ||
252 | The Minibuffer | |
253 | ||
254 | * Minibuffer File:: Entering file names with the minibuffer. | |
255 | * Minibuffer Edit:: How to edit in the minibuffer. | |
256 | * Completion:: An abbreviation facility for minibuffer input. | |
257 | * Minibuffer History:: Reusing recent minibuffer arguments. | |
258 | * Repetition:: Re-executing commands that used the minibuffer. | |
259 | ||
260 | Help | |
261 | ||
262 | * Help Summary:: Brief list of all Help commands. | |
263 | * Key Help:: Asking what a key does in Emacs. | |
264 | * Name Help:: Asking about a command, variable or function name. | |
265 | * Apropos:: Asking what pertains to a given topic. | |
266 | * Library Keywords:: Finding Lisp libraries by keywords (topics). | |
267 | * Language Help:: Help relating to international language support. | |
268 | * Misc Help:: Other help commands. | |
269 | ||
270 | The Mark and the Region | |
271 | ||
272 | * Setting Mark:: Commands to set the mark. | |
273 | * Transient Mark:: How to make Emacs highlight the region-- | |
274 | when there is one. | |
275 | * Using Region:: Summary of ways to operate on contents of the region. | |
276 | * Marking Objects:: Commands to put region around textual units. | |
277 | * Mark Ring:: Previous mark positions saved so you can go back there. | |
278 | * Global Mark Ring:: Previous mark positions in various buffers. | |
279 | ||
280 | Deletion and Killing | |
281 | ||
282 | * Deletion:: Commands for deleting small amounts of text and | |
283 | blank areas. | |
284 | * Killing by Lines:: How to kill entire lines of text at one time. | |
285 | * Other Kill Commands:: Commands to kill large regions of text and | |
286 | syntactic units such as words and sentences. | |
287 | ||
288 | Yanking | |
289 | ||
290 | * Kill Ring:: Where killed text is stored. Basic yanking. | |
291 | * Appending Kills:: Several kills in a row all yank together. | |
292 | * Earlier Kills:: Yanking something killed some time ago. | |
293 | ||
294 | Registers | |
295 | ||
296 | * RegPos:: Saving positions in registers. | |
297 | * RegText:: Saving text in registers. | |
298 | * RegRect:: Saving rectangles in registers. | |
299 | * RegConfig:: Saving window configurations in registers. | |
300 | * RegFiles:: File names in registers. | |
301 | * Bookmarks:: Bookmarks are like registers, but persistent. | |
302 | ||
303 | Controlling the Display | |
304 | ||
305 | * Scrolling:: Moving text up and down in a window. | |
306 | * Horizontal Scrolling:: Moving text left and right in a window. | |
307 | * Follow Mode:: Follow mode lets two windows scroll as one. | |
308 | * Selective Display:: Hiding lines with lots of indentation. | |
309 | * Optional Mode Line:: Optional mode line display features. | |
310 | * Text Display:: How text is normally displayed. | |
311 | * Display Vars:: Information on variables for customizing display. | |
312 | ||
313 | Searching and Replacement | |
314 | ||
315 | * Incremental Search:: Search happens as you type the string. | |
316 | * Nonincremental Search:: Specify entire string and then search. | |
317 | * Word Search:: Search for sequence of words. | |
318 | * Regexp Search:: Search for match for a regexp. | |
319 | * Regexps:: Syntax of regular expressions. | |
320 | * Search Case:: To ignore case while searching, or not. | |
321 | * Replace:: Search, and replace some or all matches. | |
322 | * Other Repeating Search:: Operating on all matches for some regexp. | |
323 | ||
324 | Replacement Commands | |
325 | ||
326 | * Unconditional Replace:: Replacing all matches for a string. | |
327 | * Regexp Replace:: Replacing all matches for a regexp. | |
328 | * Replacement and Case:: How replacements preserve case of letters. | |
329 | * Query Replace:: How to use querying. | |
330 | ||
331 | Commands for Fixing Typos | |
332 | ||
333 | * Kill Errors:: Commands to kill a batch of recently entered text. | |
334 | * Transpose:: Exchanging two characters, words, lines, lists... | |
335 | * Fixing Case:: Correcting case of last word entered. | |
336 | * Spelling:: Apply spelling checker to a word or a whole buffer. | |
337 | ||
338 | File Handling | |
339 | ||
340 | * File Names:: How to type and edit file-name arguments. | |
341 | * Visiting:: Visiting a file prepares Emacs to edit the file. | |
342 | * Saving:: Saving makes your changes permanent. | |
343 | * Reverting:: Reverting cancels all the changes not saved. | |
344 | * Auto Save:: Auto Save periodically protects against loss of data. | |
345 | * File Aliases:: Handling multiple names for one file. | |
346 | * Version Control:: Version control systems (RCS, CVS and SCCS). | |
347 | * Directories:: Creating, deleting, and listing file directories. | |
348 | * Comparing Files:: Finding where two files differ. | |
349 | * Misc File Ops:: Other things you can do on files. | |
350 | * Compressed Files:: Accessing compressed files. | |
351 | * Remote Files:: Accessing files on other sites. | |
352 | * Quoted File Names:: Quoting special characters in file names. | |
353 | ||
354 | Saving Files | |
355 | ||
356 | * Backup:: How Emacs saves the old version of your file. | |
357 | * Interlocking:: How Emacs protects against simultaneous editing | |
358 | of one file by two users. | |
359 | ||
360 | Version Control | |
361 | ||
362 | * Introduction to VC:: How version control works in general. | |
363 | * VC Mode Line:: How the mode line shows version control status. | |
364 | * Basic VC Editing:: How to edit a file under version control. | |
365 | * Old Versions:: Examining and comparing old versions. | |
366 | * Secondary VC Commands:: The commands used a little less frequently. | |
367 | * Branches:: Multiple lines of development. | |
368 | * Snapshots:: Sets of file versions treated as a unit. | |
369 | * Miscellaneous VC:: Various other commands and features of VC. | |
370 | * Customizing VC:: Variables that change VC's behavior. | |
371 | ||
372 | Using Multiple Buffers | |
373 | ||
374 | * Select Buffer:: Creating a new buffer or reselecting an old one. | |
375 | * List Buffers:: Getting a list of buffers that exist. | |
376 | * Misc Buffer:: Renaming; changing read-onlyness; copying text. | |
377 | * Kill Buffer:: Killing buffers you no longer need. | |
378 | * Several Buffers:: How to go through the list of all buffers | |
379 | and operate variously on several of them. | |
380 | * Indirect Buffers:: An indirect buffer shares the text of another buffer. | |
381 | ||
382 | Multiple Windows | |
383 | ||
384 | * Basic Window:: Introduction to Emacs windows. | |
385 | * Split Window:: New windows are made by splitting existing windows. | |
386 | * Other Window:: Moving to another window or doing something to it. | |
387 | * Pop Up Window:: Finding a file or buffer in another window. | |
388 | * Force Same Window:: Forcing certain buffers to appear in the selected | |
389 | window rather than in another window. | |
390 | * Change Window:: Deleting windows and changing their sizes. | |
391 | ||
392 | Frames and X Windows | |
393 | ||
394 | * Mouse Commands:: Moving, cutting, and pasting, with the mouse. | |
395 | * Secondary Selection:: Cutting without altering point and mark. | |
396 | * Mouse References:: Using the mouse to select an item from a list. | |
397 | * Menu Mouse Clicks:: Mouse clicks that bring up menus. | |
398 | * Mode Line Mouse:: Mouse clicks on the mode line. | |
399 | * Creating Frames:: Creating additional Emacs frames with various contents. | |
400 | * Multiple Displays:: How one Emacs job can talk to several displays. | |
401 | * Special Buffer Frames:: You can make certain buffers have their own frames. | |
402 | * Frame Parameters:: Changing the colors and other modes of frames. | |
403 | * Scroll Bars:: How to enable and disable scroll bars; how to use them. | |
404 | * Menu Bars:: Enabling and disabling the menu bar. | |
405 | * Faces:: How to change the display style using faces. | |
406 | * Font Lock:: Minor mode for syntactic highlighting using faces. | |
407 | * Support Modes:: Font Lock support modes make Font Lock faster. | |
408 | * Misc X:: Iconifying and deleting frames. Region highlighting. | |
409 | * Non-Window Terminals:: Multiple frames on terminals that show only one. | |
410 | ||
411 | Font Lock Support Modes | |
412 | ||
413 | * Fast Lock Mode:: Saving font information in files. | |
414 | * Lazy Lock Mode:: Fontifying only text that is actually displayed. | |
415 | * Fast or Lazy:: Which support mode is best for you? | |
416 | ||
417 | International Character Set Support | |
418 | ||
419 | * International Intro:: Basic concepts of multibyte characters. | |
420 | * Enabling Multibyte:: Controlling whether to use multibyte characters. | |
421 | * Language Environments:: Setting things up for the language you use. | |
422 | * Input Methods:: Entering text characters not on your keyboard. | |
423 | * Select Input Method:: Specifying your choice of input methods. | |
424 | * Coding Systems:: Character set conversion when you read and | |
425 | write files, and so on. | |
426 | * Recognize Coding:: How Emacs figures out which conversion to use. | |
427 | * Specify Coding:: Various ways to choose which conversion to use. | |
428 | * Fontsets:: Fontsets are collections of fonts | |
429 | that cover the whole spectrum of characters. | |
430 | * Defining Fontsets:: Defining a new fontset. | |
d45bbb01 | 431 | * Single-Byte Character Support:: |
3f973d9b AI |
432 | You can pick one European character set |
433 | to use without multibyte characters. | |
434 | ||
435 | Major Modes | |
436 | ||
437 | * Choosing Modes:: How major modes are specified or chosen. | |
438 | ||
439 | Indentation | |
440 | ||
441 | * Indentation Commands:: Various commands and techniques for indentation. | |
442 | * Tab Stops:: You can set arbitrary "tab stops" and then | |
443 | indent to the next tab stop when you want to. | |
444 | * Just Spaces:: You can request indentation using just spaces. | |
445 | ||
446 | Commands for Human Languages | |
447 | ||
448 | * Words:: Moving over and killing words. | |
449 | * Sentences:: Moving over and killing sentences. | |
450 | * Paragraphs:: Moving over paragraphs. | |
451 | * Pages:: Moving over pages. | |
452 | * Filling:: Filling or justifying text. | |
453 | * Case:: Changing the case of text. | |
454 | * Text Mode:: The major modes for editing text files. | |
455 | * Outline Mode:: Editing outlines. | |
456 | * TeX Mode:: Editing input to the formatter TeX. | |
457 | * Nroff Mode:: Editing input to the formatter nroff. | |
458 | * Formatted Text:: Editing formatted text directly in WYSIWYG fashion. | |
459 | ||
460 | Filling Text | |
461 | ||
462 | * Auto Fill:: Auto Fill mode breaks long lines automatically. | |
463 | * Fill Commands:: Commands to refill paragraphs and center lines. | |
464 | * Fill Prefix:: Filling paragraphs that are indented | |
465 | or in a comment, etc. | |
466 | * Adaptive Fill:: How Emacs can determine the fill prefix automatically. | |
467 | ||
468 | Editing Programs | |
469 | ||
470 | * Program Modes:: Major modes for editing programs. | |
471 | * Lists:: Expressions with balanced parentheses. | |
472 | * List Commands:: The commands for working with list and sexps. | |
473 | * Defuns:: Each program is made up of separate functions. | |
474 | There are editing commands to operate on them. | |
475 | * Program Indent:: Adjusting indentation to show the nesting. | |
476 | * Matching:: Insertion of a close-delimiter flashes matching open. | |
477 | * Comments:: Inserting, killing, and aligning comments. | |
478 | * Balanced Editing:: Inserting two matching parentheses at once, etc. | |
479 | * Symbol Completion:: Completion on symbol names of your program or language. | |
480 | * Documentation:: Getting documentation of functions you plan to call. | |
481 | * Change Log:: Maintaining a change history for your program. | |
482 | * Tags:: Go directly to any function in your program in one | |
483 | command. Tags remembers which file it is in. | |
484 | * Emerge:: A convenient way of merging two versions of a program. | |
7fed4a7a | 485 | * C Modes:: Special commands of C, C++, Objective-C and Java modes. |
3f973d9b AI |
486 | * Fortran:: Fortran mode and its special features. |
487 | * Asm Mode:: Asm mode and its special features. | |
488 | ||
489 | Indentation for Programs | |
490 | ||
491 | * Basic Indent:: Indenting a single line. | |
492 | * Multi-line Indent:: Commands to reindent many lines at once. | |
493 | * Lisp Indent:: Specifying how each Lisp function should be indented. | |
494 | * C Indent:: Choosing an indentation style for C code. | |
495 | ||
496 | Tags Tables | |
497 | ||
498 | * Tag Syntax:: Tag syntax for various types of code and text files. | |
499 | * Create Tags Table:: Creating a tags table with @code{etags}. | |
500 | * Select Tags Table:: How to visit a tags table. | |
501 | * Find Tag:: Commands to find the definition of a specific tag. | |
502 | * Tags Search:: Using a tags table for searching and replacing. | |
503 | * List Tags:: Listing and finding tags defined in a file. | |
504 | ||
505 | Merging Files with Emerge | |
506 | ||
507 | * Overview of Emerge:: How to start Emerge. Basic concepts. | |
508 | * Submodes of Emerge:: Fast mode vs. Edit mode. | |
509 | Skip Prefers mode and Auto Advance mode. | |
510 | * State of Difference:: You do the merge by specifying state A or B | |
511 | for each difference. | |
512 | * Merge Commands:: Commands for selecting a difference, | |
513 | changing states of differences, etc. | |
514 | * Exiting Emerge:: What to do when you've finished the merge. | |
515 | * Combining in Emerge:: How to keep both alternatives for a difference. | |
516 | * Fine Points of Emerge:: Misc. | |
517 | ||
518 | Compiling and Testing Programs | |
519 | ||
520 | * Compilation:: Compiling programs in languages other | |
521 | than Lisp (C, Pascal, etc.). | |
522 | * Compilation Mode:: The mode for visiting compiler errors. | |
523 | * Compilation Shell:: Customizing your shell properly | |
524 | for use in the compilation buffer. | |
525 | * Debuggers:: Running symbolic debuggers for non-Lisp programs. | |
526 | * Executing Lisp:: Various modes for editing Lisp programs, | |
527 | with different facilities for running | |
528 | the Lisp programs. | |
529 | * Lisp Libraries:: Creating Lisp programs to run in Emacs. | |
530 | * Lisp Interaction:: Executing Lisp in an Emacs buffer. | |
531 | * Lisp Eval:: Executing a single Lisp expression in Emacs. | |
532 | * External Lisp:: Communicating through Emacs with a separate Lisp. | |
533 | ||
534 | Running Debuggers Under Emacs | |
535 | ||
536 | * Starting GUD:: How to start a debugger subprocess. | |
537 | * Debugger Operation:: Connection between the debugger and source buffers. | |
538 | * Commands of GUD:: Key bindings for common commands. | |
539 | * GUD Customization:: Defining your own commands for GUD. | |
540 | ||
541 | Abbrevs | |
542 | ||
543 | * Abbrev Concepts:: Fundamentals of defined abbrevs. | |
544 | * Defining Abbrevs:: Defining an abbrev, so it will expand when typed. | |
545 | * Expanding Abbrevs:: Controlling expansion: prefixes, canceling expansion. | |
546 | * Editing Abbrevs:: Viewing or editing the entire list of defined abbrevs. | |
547 | * Saving Abbrevs:: Saving the entire list of abbrevs for another session. | |
548 | * Dynamic Abbrevs:: Abbreviations for words already in the buffer. | |
549 | ||
550 | Editing Pictures | |
551 | ||
552 | * Basic Picture:: Basic concepts and simple commands of Picture Mode. | |
553 | * Insert in Picture:: Controlling direction of cursor motion | |
554 | after "self-inserting" characters. | |
555 | * Tabs in Picture:: Various features for tab stops and indentation. | |
556 | * Rectangles in Picture:: Clearing and superimposing rectangles. | |
557 | ||
558 | Sending Mail | |
559 | ||
560 | * Mail Format:: Format of the mail being composed. | |
561 | * Mail Headers:: Details of permitted mail header fields. | |
562 | * Mail Aliases:: Abbreviating and grouping mail addresses. | |
563 | * Mail Mode:: Special commands for editing mail being composed. | |
564 | * Distracting NSA:: How to distract the NSA's attention. | |
565 | * Mail Methods:: Using alternative mail-composition methods. | |
566 | ||
567 | Reading Mail with Rmail | |
568 | ||
569 | * Rmail Basics:: Basic concepts of Rmail, and simple use. | |
570 | * Rmail Scrolling:: Scrolling through a message. | |
571 | * Rmail Motion:: Moving to another message. | |
572 | * Rmail Deletion:: Deleting and expunging messages. | |
573 | * Rmail Inbox:: How mail gets into the Rmail file. | |
574 | * Rmail Files:: Using multiple Rmail files. | |
575 | * Rmail Output:: Copying message out to files. | |
576 | * Rmail Labels:: Classifying messages by labeling them. | |
577 | * Rmail Attributes:: Certain standard labels, called attributes. | |
578 | * Rmail Reply:: Sending replies to messages you are viewing. | |
579 | * Rmail Summary:: Summaries show brief info on many messages. | |
580 | * Rmail Sorting:: Sorting messages in Rmail. | |
581 | * Rmail Display:: How Rmail displays a message; customization. | |
582 | * Rmail Editing:: Editing message text and headers in Rmail. | |
583 | * Rmail Digest:: Extracting the messages from a digest message. | |
584 | * Out of Rmail:: Converting an Rmail file to mailbox format. | |
585 | * Rmail Rot13:: Reading messages encoded in the rot13 code. | |
586 | * Movemail:: More details of fetching new mail. | |
587 | ||
588 | Dired, the Directory Editor | |
589 | ||
590 | * Dired Enter:: How to invoke Dired. | |
591 | * Dired Commands:: Commands in the Dired buffer. | |
592 | * Dired Deletion:: Deleting files with Dired. | |
593 | * Flagging Many Files:: Flagging files based on their names. | |
594 | * Dired Visiting:: Other file operations through Dired. | |
595 | * Marks vs Flags:: Flagging for deletion vs marking. | |
596 | * Operating on Files:: How to copy, rename, print, compress, etc. | |
597 | either one file or several files. | |
598 | * Shell Commands in Dired:: Running a shell command on the marked files. | |
599 | * Transforming File Names:: Using patterns to rename multiple files. | |
600 | * Comparison in Dired:: Running `diff' by way of Dired. | |
601 | * Subdirectories in Dired:: Adding subdirectories to the Dired buffer. | |
602 | * Subdirectory Motion:: Moving across subdirectories, and up and down. | |
603 | * Hiding Subdirectories:: Making subdirectories visible or invisible. | |
604 | * Dired Updating:: Discarding lines for files of no interest. | |
605 | * Dired and Find:: Using `find' to choose the files for Dired. | |
606 | ||
607 | The Calendar and the Diary | |
608 | ||
609 | * Calendar Motion:: Moving through the calendar; selecting a date. | |
610 | * Scroll Calendar:: Bringing earlier or later months onto the screen. | |
611 | * Counting Days:: How many days are there between two dates? | |
612 | * General Calendar:: Exiting or recomputing the calendar. | |
613 | * LaTeX Calendar:: Print a calendar using LaTeX. | |
614 | * Holidays:: Displaying dates of holidays. | |
615 | * Sunrise/Sunset:: Displaying local times of sunrise and sunset. | |
616 | * Lunar Phases:: Displaying phases of the moon. | |
617 | * Other Calendars:: Converting dates to other calendar systems. | |
618 | * Diary:: Displaying events from your diary. | |
619 | * Appointments:: Reminders when it's time to do something. | |
620 | * Daylight Savings:: How to specify when daylight savings time is active. | |
621 | ||
622 | Movement in the Calendar | |
623 | ||
624 | * Calendar Unit Motion:: Moving by days, weeks, months, and years. | |
625 | * Move to Beginning or End:: Moving to start/end of weeks, months, and years. | |
626 | * Specified Dates:: Moving to the current date or another | |
627 | specific date. | |
628 | ||
629 | Conversion To and From Other Calendars | |
630 | ||
631 | * Calendar Systems:: The calendars Emacs understands | |
632 | (aside from Gregorian). | |
633 | * To Other Calendar:: Converting the selected date to various calendars. | |
634 | * From Other Calendar:: Moving to a date specified in another calendar. | |
635 | * Mayan Calendar:: Moving to a date specified in a Mayan calendar. | |
636 | ||
637 | The Diary | |
638 | ||
639 | * Diary Commands:: Viewing diary entries and associated calendar dates. | |
640 | * Format of Diary File:: Entering events in your diary. | |
641 | * Date Formats:: Various ways you can specify dates. | |
642 | * Adding to Diary:: Commands to create diary entries. | |
643 | * Special Diary Entries:: Anniversaries, blocks of dates, cyclic entries, etc. | |
644 | ||
645 | @sc{Gnus} | |
646 | ||
647 | * Buffers of Gnus:: The group, summary, and article buffers. | |
648 | * Gnus Startup:: What you should know about starting Gnus. | |
649 | * Summary of Gnus:: A short description of the basic Gnus commands. | |
650 | ||
651 | Running Shell Commands from Emacs | |
652 | ||
653 | * Single Shell:: How to run one shell command and return. | |
654 | * Interactive Shell:: Permanent shell taking input via Emacs. | |
655 | * Shell Mode:: Special Emacs commands used with permanent shell. | |
656 | * Shell History:: Repeating previous commands in a shell buffer. | |
657 | * Shell Options:: Options for customizing Shell mode. | |
658 | * Remote Host:: Connecting to another computer. | |
659 | ||
660 | Customization | |
661 | ||
662 | * Minor Modes:: Each minor mode is one feature you can turn on | |
663 | independently of any others. | |
664 | * Variables:: Many Emacs commands examine Emacs variables | |
665 | to decide what to do; by setting variables, | |
666 | you can control their functioning. | |
667 | * Keyboard Macros:: A keyboard macro records a sequence of | |
668 | keystrokes to be replayed with a single command. | |
669 | * Key Bindings:: The keymaps say what command each key runs. | |
670 | By changing them, you can "redefine keys". | |
671 | * Keyboard Translations:: | |
672 | If your keyboard passes an undesired code | |
673 | for a key, you can tell Emacs to | |
674 | substitute another code. | |
675 | * Syntax:: The syntax table controls how words and | |
676 | expressions are parsed. | |
677 | * Init File:: How to write common customizations in the | |
678 | @file{.emacs} file. | |
679 | ||
680 | Variables | |
681 | ||
682 | * Examining:: Examining or setting one variable's value. | |
683 | * Easy Customization:: | |
684 | Convenient and easy customization of variables. | |
685 | * Hooks:: Hook variables let you specify programs for parts | |
686 | of Emacs to run on particular occasions. | |
687 | * Locals:: Per-buffer values of variables. | |
688 | * File Variables:: How files can specify variable values. | |
689 | ||
690 | Keyboard Macros | |
691 | ||
692 | * Basic Kbd Macro:: Defining and running keyboard macros. | |
693 | * Save Kbd Macro:: Giving keyboard macros names; saving them in files. | |
694 | * Kbd Macro Query:: Making keyboard macros do different things each time. | |
695 | ||
696 | Customizing Key Bindings | |
697 | ||
698 | * Keymaps:: Generalities. The global keymap. | |
699 | * Prefix Keymaps:: Keymaps for prefix keys. | |
700 | * Local Keymaps:: Major and minor modes have their own keymaps. | |
701 | * Minibuffer Maps:: The minibuffer uses its own local keymaps. | |
702 | * Rebinding:: How to redefine one key's meaning conveniently. | |
703 | * Init Rebinding:: Rebinding keys with your init file, @file{.emacs}. | |
704 | * Function Keys:: Rebinding terminal function keys. | |
705 | * Named ASCII Chars:: Distinguishing @key{TAB} from @kbd{C-i}, and so on. | |
706 | * Mouse Buttons:: Rebinding mouse buttons in Emacs. | |
707 | * Disabling:: Disabling a command means confirmation is required | |
708 | before it can be executed. This is done to protect | |
709 | beginners from surprises. | |
710 | ||
711 | The Init File, @file{~/.emacs} | |
712 | ||
713 | * Init Syntax:: Syntax of constants in Emacs Lisp. | |
714 | * Init Examples:: How to do some things with an init file. | |
715 | * Terminal Init:: Each terminal type can have an init file. | |
716 | * Find Init:: How Emacs finds the init file. | |
717 | ||
718 | Dealing with Emacs Trouble | |
719 | ||
720 | * DEL Gets Help:: What to do if @key{DEL} doesn't delete. | |
721 | * Stuck Recursive:: `[...]' in mode line around the parentheses. | |
722 | * Screen Garbled:: Garbage on the screen. | |
723 | * Text Garbled:: Garbage in the text. | |
724 | * Unasked-for Search:: Spontaneous entry to incremental search. | |
725 | * Memory Full:: How to cope when you run out of memory. | |
726 | * Emergency Escape:: Emergency escape--- | |
727 | What to do if Emacs stops responding. | |
728 | * Total Frustration:: When you are at your wits' end. | |
729 | ||
730 | Reporting Bugs | |
731 | ||
732 | * Criteria: Bug Criteria. Have you really found a bug? | |
733 | * Understanding Bug Reporting:: How to report a bug effectively. | |
734 | * Checklist:: Steps to follow for a good bug report. | |
735 | * Sending Patches:: How to send a patch for GNU Emacs. | |
736 | ||
737 | Command Line Options and Arguments | |
738 | ||
739 | * Action Arguments:: Arguments to visit files, load libraries, | |
740 | and call functions. | |
741 | * Initial Options:: Arguments that take effect while starting Emacs. | |
742 | * Command Example:: Examples of using command line arguments. | |
743 | * Resume Arguments:: Specifying arguments when you resume a running Emacs. | |
744 | * Environment:: Environment variables that Emacs uses. | |
745 | ||
746 | * Display X:: Changing the default display and using remote login. | |
747 | * Font X:: Choosing a font for text, under X. | |
748 | * Colors X:: Choosing colors, under X. | |
749 | * Window Size X:: Start-up window size, under X. | |
750 | * Borders X:: Internal and external borders, under X. | |
751 | * Title X:: Specifying the initial frame's title. | |
752 | * Icons X:: Choosing what sort of icon to use, under X. | |
753 | * Resources X:: Advanced use of classes and resources, under X. | |
754 | * Lucid Resources:: X resources for Lucid menus. | |
755 | * Motif Resources:: X resources for Motif menus. | |
756 | ||
757 | Environment Variables | |
758 | ||
759 | * General Variables:: Environment variables that all versions of Emacs use. | |
760 | * Misc Variables:: Certain system specific variables. | |
761 | ||
6714412b | 762 | MS-DOS and Windows 95/98/NT |
3f973d9b AI |
763 | |
764 | * MS-DOS Input:: Keyboard and mouse usage on MS-DOS. | |
765 | * MS-DOS Display:: Fonts, frames and display size on MS-DOS. | |
766 | * MS-DOS File Names:: File-name conventions on MS-DOS. | |
767 | * Text and Binary:: Text files on MS-DOS use CRLF to separate lines. | |
768 | * MS-DOS Printing:: How to specify the printer on MS-DOS. | |
769 | * MS-DOS Processes:: Running subprocesses on MS-DOS. | |
770 | * Windows Processes:: Running subprocesses on Windows. | |
771 | * Windows System Menu:: Controlling what the ALT key does. | |
772 | @end menu | |
773 | ||
774 | @iftex | |
775 | @unnumbered Preface | |
776 | ||
777 | This manual documents the use and simple customization of the Emacs | |
778 | editor. The reader is not expected to be a programmer; simple | |
779 | customizations do not require programming skill. But the user who is not | |
780 | interested in customizing can ignore the scattered customization hints. | |
781 | ||
782 | This is primarily a reference manual, but can also be used as a | |
783 | primer. For complete beginners, it is a good idea to start with the | |
784 | on-line, learn-by-doing tutorial, before reading the manual. To run the | |
785 | tutorial, start Emacs and type @kbd{C-h t}. This way you can learn | |
786 | Emacs by using Emacs on a specially designed file which describes | |
787 | commands, tells you when to try them, and then explains the results you | |
788 | see. | |
789 | ||
790 | On first reading, just skim chapters 1 and 2, which describe the | |
791 | notational conventions of the manual and the general appearance of the | |
792 | Emacs display screen. Note which questions are answered in these | |
793 | chapters, so you can refer back later. After reading chapter 4, you | |
794 | should practice the commands there. The next few chapters describe | |
795 | fundamental techniques and concepts that are used constantly. You need | |
796 | to understand them thoroughly, experimenting with them if necessary. | |
797 | ||
798 | Chapters 14 through 19 describe intermediate-level features that are | |
799 | useful for all kinds of editing. Chapter 20 and following chapters | |
800 | describe features that you may or may not want to use; read those | |
801 | chapters when you need them. | |
802 | ||
803 | Read the Trouble chapter if Emacs does not seem to be working | |
804 | properly. It explains how to cope with some common problems | |
805 | (@pxref{Lossage}), as well as when and how to report Emacs bugs | |
806 | (@pxref{Bugs}). | |
807 | ||
808 | To find the documentation on a particular command, look in the index. | |
809 | Keys (character commands) and command names have separate indexes. There | |
810 | is also a glossary, with a cross reference for each term. | |
811 | ||
812 | This manual is available as a printed book and also as an Info file. | |
813 | The Info file is for on-line perusal with the Info program, which will | |
814 | be the principal way of viewing documentation on-line in the GNU system. | |
815 | Both the Info file and the Info program itself are distributed along | |
816 | with GNU Emacs. The Info file and the printed book contain | |
817 | substantially the same text and are generated from the same source | |
818 | files, which are also distributed along with GNU Emacs. | |
819 | ||
820 | GNU Emacs is a member of the Emacs editor family. There are many Emacs | |
821 | editors, all sharing common principles of organization. For information on | |
822 | the underlying philosophy of Emacs and the lessons learned from its | |
823 | development, write for a copy of AI memo 519a, ``Emacs, the Extensible, | |
824 | Customizable Self-Documenting Display Editor,'' to Publications Department, | |
825 | Artificial Intelligence Lab, 545 Tech Square, Cambridge, MA 02139, USA@. At | |
826 | last report they charge $2.25 per copy. Another useful publication is LCS | |
827 | TM-165, ``A Cookbook for an Emacs,'' by Craig Finseth, available from | |
828 | Publications Department, Laboratory for Computer Science, 545 Tech Square, | |
829 | Cambridge, MA 02139, USA@. The price today is $3. | |
830 | ||
831 | This edition of the manual is intended for use with GNU Emacs installed | |
832 | on GNU and Unix systems. GNU Emacs can also be used on VMS, MS-DOS | |
833 | (also called MS-DOG), Windows NT, and Windows 95 systems. Those systems use | |
834 | different file name syntax; in addition, VMS and MS-DOS do not support | |
835 | all GNU Emacs features. We don't try to describe VMS usage in this | |
836 | manual. @xref{MS-DOS}, for information about using Emacs on MS-DOS. | |
837 | @end iftex | |
838 | ||
839 | @node Distrib, Copying, Top, Top | |
840 | @unnumbered Distribution | |
841 | ||
842 | GNU Emacs is @dfn{free software}; this means that everyone is free to | |
843 | use it and free to redistribute it on certain conditions. GNU Emacs is | |
844 | not in the public domain; it is copyrighted and there are restrictions | |
845 | on its distribution, but these restrictions are designed to permit | |
846 | everything that a good cooperating citizen would want to do. What is | |
847 | not allowed is to try to prevent others from further sharing any version | |
848 | of GNU Emacs that they might get from you. The precise conditions are | |
849 | found in the GNU General Public License that comes with Emacs and also | |
850 | appears following this section. | |
851 | ||
852 | One way to get a copy of GNU Emacs is from someone else who has it. You | |
853 | need not ask for our permission to do so, or tell any one else; just | |
854 | copy it. If you have access to the Internet, you can get the latest | |
855 | distribution version of GNU Emacs by anonymous FTP; see the file | |
856 | @file{etc/FTP} in the Emacs distribution for more information. | |
857 | ||
858 | You may also receive GNU Emacs when you buy a computer. Computer | |
859 | manufacturers are free to distribute copies on the same terms that apply to | |
860 | everyone else. These terms require them to give you the full sources, | |
861 | including whatever changes they may have made, and to permit you to | |
862 | redistribute the GNU Emacs received from them under the usual terms of the | |
863 | General Public License. In other words, the program must be free for you | |
864 | when you get it, not just free for the manufacturer. | |
865 | ||
866 | You can also order copies of GNU Emacs from the Free Software Foundation | |
867 | on CD-ROM@. This is a convenient and reliable way to get a copy; it is | |
868 | also a good way to help fund our work. (The Foundation has always | |
869 | received most of its funds in this way.) An order form is included in | |
870 | the file @file{etc/ORDERS} in the Emacs distribution, and on our web | |
871 | site in @url{http://www.gnu.org/order/order.html}. For further | |
872 | information, write to | |
873 | ||
874 | @display | |
875 | Free Software Foundation | |
876 | 59 Temple Place, Suite 330 | |
877 | Boston, MA 02111-1307 USA | |
878 | USA | |
879 | @end display | |
880 | ||
881 | The income from distribution fees goes to support the foundation's | |
882 | purpose: the development of new free software, and improvements to our | |
883 | existing programs including GNU Emacs. | |
884 | ||
885 | If you find GNU Emacs useful, please @strong{send a donation} to the | |
886 | Free Software Foundation to support our work. Donations to the Free | |
887 | Software Foundation are tax deductible in the US. If you use GNU Emacs | |
888 | at your workplace, please suggest that the company make a donation. If | |
889 | company policy is unsympathetic to the idea of donating to charity, you | |
890 | might instead suggest ordering a CD-ROM from the Foundation | |
891 | occasionally, or subscribing to periodic updates. | |
892 | ||
893 | @iftex | |
894 | Contributors to GNU Emacs include Per Abrahamsen, Jay K. Adams, Joe | |
895 | Arceneaux, Boaz Ben-Zvi, Jim Blandy, Terrence Brannon, Frank Bresz, | |
896 | Peter Breton, Kevin Broadey, Vincent Broman, David M. Brown, Bill | |
897 | Carpenter, Hans Chalupsky, Bob Chassell, James Clark, Mike Clarkson, | |
898 | Glynn Clements, Andrew Csillag, Doug Cutting, Michael DeCorte, Gary | |
899 | Delp, Matthieu Devin, Eri Ding, Carsten Dominik, Scott Draves, Viktor | |
900 | Dukhovni, John Eaton, Rolf Ebert, Stephen Eglen, Torbj@"orn Einarsson, | |
901 | Tsugumoto Enami, Hans Henrik Eriksen, Michael Ernst, Ata Etemadi, | |
902 | Frederick Farnback, Fred Fish, Karl Fogel, Gary Foster, Noah Friedman, | |
903 | Keith Gabryelski, Kevin Gallagher, Kevin Gallo, Howard Gayle, Stephen | |
904 | Gildea, David Gillespie, Bob Glickstein, Boris Goldowsky, Michelangelo | |
bf35727d | 905 | Grigni, Michael Gschwind, Henry Guillaume, Doug Gwyn, Ken'ichi Handa, |
3f973d9b AI |
906 | Chris Hanson, K. Shane Hartman, John Heidemann, Markus Heritsch, Karl |
907 | Heuer, Manabu Higashida, Anders Holst, Kurt Hornik, Tom Houlder, Lars | |
908 | Ingebrigtsen, Andrew Innes, Michael K. Johnson, Kyle Jones, Tomoji | |
909 | Kagatani, Brewster Kahle, David Kaufman, Henry Kautz, Howard Kaye, | |
910 | Michael Kifer, Richard King, Larry K. Kolodney, Robert Krawitz, | |
911 | Sebastian Kremer, Geoff Kuenning, David K@aa gedal, Daniel LaLiberte, | |
912 | Aaron Larson, James R. Larus, Frederic Lepied, Lars Lindberg, Eric | |
913 | Ludlam, Neil M. Mager, Ken Manheimer, Bill Mann, Brian Marick, Simon | |
914 | Marshall, Bengt Martensson, Charlie Martin, Thomas May, Roland McGrath, | |
915 | David Megginson, Wayne Mesard, Richard Mlynarik, Keith Moore, Erik | |
916 | Naggum, Thomas Neumann, Mike Newton, Jurgen Nickelsen, Jeff Norden, | |
917 | Andrew Norman, Jeff Peck, Damon Anton Permezel, Tom Perrine, Jens | |
918 | Petersen, Daniel Pfeiffer, Fred Pierresteguy, Christian Plaunt, | |
919 | Francesco A. Potorti, Michael D. Prange, Ashwin Ram, Eric S. Raymond, | |
920 | Paul Reilly, Edward M. Reingold, Rob Riepel, Roland B. Roberts, John | |
921 | Robinson, Danny Roozendaal, William Rosenblatt, Guillermo J. Rozas, Ivar | |
922 | Rummelhoff, Wolfgang Rupprecht, James B. Salem, Masahiko Sato, William | |
923 | Schelter, Ralph Schleicher, Gregor Schmid, Michael Schmidt, Ronald | |
924 | S. Schnell, Philippe Schnoebelen, Stephen Schoef, Randal Schwartz, | |
925 | Manuel Serrano, Stanislav Shalunov, Mark Shapiro, Richard Sharman, Olin | |
926 | Shivers, Espen Skoglund, Rick Sladkey, Lynn Slater, Chris Smith, David | |
927 | Smith, Paul D. Smith, William Sommerfeld, Michael Staats, Sam Steingold, | |
928 | Ake Stenhoff, Peter Stephenson, Jonathan Stigelman, Steve Strassman, | |
929 | Jens T. Berger Thielemann, Spencer Thomas, Jim Thompson, Masanobu Umeda, | |
930 | Neil W. Van Dyke, Ulrik Vieth, Geoffrey Voelker, Johan Vromans, Barry | |
931 | Warsaw, Morten Welinder, Joseph Brian Wells, Rodney Whitby, Ed | |
932 | Wilkinson, Mike Williams, Steven A. Wood, Dale R. Worley, Felix | |
933 | S. T. Wu, Tom Wurgler, Eli Zaretskii, Jamie Zawinski, Ian T. Zimmermann, | |
934 | Reto Zimmermann, and Neal Ziring. | |
935 | @end iftex | |
936 | ||
7a258cfb | 937 | @node Copying, GNU Free Documentation License, Distrib, Top |
3f973d9b AI |
938 | @unnumbered GNU GENERAL PUBLIC LICENSE |
939 | @center Version 2, June 1991 | |
940 | ||
941 | @display | |
942 | Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc. | |
943 | 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
944 | ||
945 | Everyone is permitted to copy and distribute verbatim copies | |
946 | of this license document, but changing it is not allowed. | |
947 | @end display | |
948 | ||
949 | @unnumberedsec Preamble | |
950 | ||
951 | The licenses for most software are designed to take away your | |
952 | freedom to share and change it. By contrast, the GNU General Public | |
953 | License is intended to guarantee your freedom to share and change free | |
954 | software---to make sure the software is free for all its users. This | |
955 | General Public License applies to most of the Free Software | |
956 | Foundation's software and to any other program whose authors commit to | |
957 | using it. (Some other Free Software Foundation software is covered by | |
958 | the GNU Library General Public License instead.) You can apply it to | |
959 | your programs, too. | |
960 | ||
961 | When we speak of free software, we are referring to freedom, not | |
962 | price. Our General Public Licenses are designed to make sure that you | |
963 | have the freedom to distribute copies of free software (and charge for | |
964 | this service if you wish), that you receive source code or can get it | |
965 | if you want it, that you can change the software or use pieces of it | |
966 | in new free programs; and that you know you can do these things. | |
967 | ||
968 | To protect your rights, we need to make restrictions that forbid | |
969 | anyone to deny you these rights or to ask you to surrender the rights. | |
970 | These restrictions translate to certain responsibilities for you if you | |
971 | distribute copies of the software, or if you modify it. | |
972 | ||
973 | For example, if you distribute copies of such a program, whether | |
974 | gratis or for a fee, you must give the recipients all the rights that | |
975 | you have. You must make sure that they, too, receive or can get the | |
976 | source code. And you must show them these terms so they know their | |
977 | rights. | |
978 | ||
979 | We protect your rights with two steps: (1) copyright the software, and | |
980 | (2) offer you this license which gives you legal permission to copy, | |
981 | distribute and/or modify the software. | |
982 | ||
983 | Also, for each author's protection and ours, we want to make certain | |
984 | that everyone understands that there is no warranty for this free | |
985 | software. If the software is modified by someone else and passed on, we | |
986 | want its recipients to know that what they have is not the original, so | |
987 | that any problems introduced by others will not reflect on the original | |
988 | authors' reputations. | |
989 | ||
990 | Finally, any free program is threatened constantly by software | |
991 | patents. We wish to avoid the danger that redistributors of a free | |
992 | program will individually obtain patent licenses, in effect making the | |
993 | program proprietary. To prevent this, we have made it clear that any | |
994 | patent must be licensed for everyone's free use or not licensed at all. | |
995 | ||
996 | The precise terms and conditions for copying, distribution and | |
997 | modification follow. | |
998 | ||
999 | @iftex | |
1000 | @unnumberedsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | |
1001 | @end iftex | |
1002 | @ifinfo | |
1003 | @center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | |
1004 | @end ifinfo | |
1005 | ||
1006 | @enumerate 0 | |
1007 | @item | |
1008 | This License applies to any program or other work which contains | |
1009 | a notice placed by the copyright holder saying it may be distributed | |
1010 | under the terms of this General Public License. The ``Program'', below, | |
1011 | refers to any such program or work, and a ``work based on the Program'' | |
1012 | means either the Program or any derivative work under copyright law: | |
1013 | that is to say, a work containing the Program or a portion of it, | |
1014 | either verbatim or with modifications and/or translated into another | |
1015 | language. (Hereinafter, translation is included without limitation in | |
1016 | the term ``modification''.) Each licensee is addressed as ``you''. | |
1017 | ||
1018 | Activities other than copying, distribution and modification are not | |
1019 | covered by this License; they are outside its scope. The act of | |
1020 | running the Program is not restricted, and the output from the Program | |
1021 | is covered only if its contents constitute a work based on the | |
1022 | Program (independent of having been made by running the Program). | |
1023 | Whether that is true depends on what the Program does. | |
1024 | ||
1025 | @item | |
1026 | You may copy and distribute verbatim copies of the Program's | |
1027 | source code as you receive it, in any medium, provided that you | |
1028 | conspicuously and appropriately publish on each copy an appropriate | |
1029 | copyright notice and disclaimer of warranty; keep intact all the | |
1030 | notices that refer to this License and to the absence of any warranty; | |
1031 | and give any other recipients of the Program a copy of this License | |
1032 | along with the Program. | |
1033 | ||
1034 | You may charge a fee for the physical act of transferring a copy, and | |
1035 | you may at your option offer warranty protection in exchange for a fee. | |
1036 | ||
1037 | @item | |
1038 | You may modify your copy or copies of the Program or any portion | |
1039 | of it, thus forming a work based on the Program, and copy and | |
1040 | distribute such modifications or work under the terms of Section 1 | |
1041 | above, provided that you also meet all of these conditions: | |
1042 | ||
1043 | @enumerate a | |
1044 | @item | |
1045 | You must cause the modified files to carry prominent notices | |
1046 | stating that you changed the files and the date of any change. | |
1047 | ||
1048 | @item | |
1049 | You must cause any work that you distribute or publish, that in | |
1050 | whole or in part contains or is derived from the Program or any | |
1051 | part thereof, to be licensed as a whole at no charge to all third | |
1052 | parties under the terms of this License. | |
1053 | ||
1054 | @item | |
1055 | If the modified program normally reads commands interactively | |
1056 | when run, you must cause it, when started running for such | |
1057 | interactive use in the most ordinary way, to print or display an | |
1058 | announcement including an appropriate copyright notice and a | |
1059 | notice that there is no warranty (or else, saying that you provide | |
1060 | a warranty) and that users may redistribute the program under | |
1061 | these conditions, and telling the user how to view a copy of this | |
1062 | License. (Exception: if the Program itself is interactive but | |
1063 | does not normally print such an announcement, your work based on | |
1064 | the Program is not required to print an announcement.) | |
1065 | @end enumerate | |
1066 | ||
1067 | These requirements apply to the modified work as a whole. If | |
1068 | identifiable sections of that work are not derived from the Program, | |
1069 | and can be reasonably considered independent and separate works in | |
1070 | themselves, then this License, and its terms, do not apply to those | |
1071 | sections when you distribute them as separate works. But when you | |
1072 | distribute the same sections as part of a whole which is a work based | |
1073 | on the Program, the distribution of the whole must be on the terms of | |
1074 | this License, whose permissions for other licensees extend to the | |
1075 | entire whole, and thus to each and every part regardless of who wrote it. | |
1076 | ||
1077 | Thus, it is not the intent of this section to claim rights or contest | |
1078 | your rights to work written entirely by you; rather, the intent is to | |
1079 | exercise the right to control the distribution of derivative or | |
1080 | collective works based on the Program. | |
1081 | ||
1082 | In addition, mere aggregation of another work not based on the Program | |
1083 | with the Program (or with a work based on the Program) on a volume of | |
1084 | a storage or distribution medium does not bring the other work under | |
1085 | the scope of this License. | |
1086 | ||
1087 | @item | |
1088 | You may copy and distribute the Program (or a work based on it, | |
1089 | under Section 2) in object code or executable form under the terms of | |
1090 | Sections 1 and 2 above provided that you also do one of the following: | |
1091 | ||
1092 | @enumerate a | |
1093 | @item | |
1094 | Accompany it with the complete corresponding machine-readable | |
1095 | source code, which must be distributed under the terms of Sections | |
1096 | 1 and 2 above on a medium customarily used for software interchange; or, | |
1097 | ||
1098 | @item | |
1099 | Accompany it with a written offer, valid for at least three | |
1100 | years, to give any third party, for a charge no more than your | |
1101 | cost of physically performing source distribution, a complete | |
1102 | machine-readable copy of the corresponding source code, to be | |
1103 | distributed under the terms of Sections 1 and 2 above on a medium | |
1104 | customarily used for software interchange; or, | |
1105 | ||
1106 | @item | |
1107 | Accompany it with the information you received as to the offer | |
1108 | to distribute corresponding source code. (This alternative is | |
1109 | allowed only for noncommercial distribution and only if you | |
1110 | received the program in object code or executable form with such | |
1111 | an offer, in accord with Subsection b above.) | |
1112 | @end enumerate | |
1113 | ||
1114 | The source code for a work means the preferred form of the work for | |
1115 | making modifications to it. For an executable work, complete source | |
1116 | code means all the source code for all modules it contains, plus any | |
1117 | associated interface definition files, plus the scripts used to | |
1118 | control compilation and installation of the executable. However, as a | |
1119 | special exception, the source code distributed need not include | |
1120 | anything that is normally distributed (in either source or binary | |
1121 | form) with the major components (compiler, kernel, and so on) of the | |
1122 | operating system on which the executable runs, unless that component | |
1123 | itself accompanies the executable. | |
1124 | ||
1125 | If distribution of executable or object code is made by offering | |
1126 | access to copy from a designated place, then offering equivalent | |
1127 | access to copy the source code from the same place counts as | |
1128 | distribution of the source code, even though third parties are not | |
1129 | compelled to copy the source along with the object code. | |
1130 | ||
1131 | @item | |
1132 | You may not copy, modify, sublicense, or distribute the Program | |
1133 | except as expressly provided under this License. Any attempt | |
1134 | otherwise to copy, modify, sublicense or distribute the Program is | |
1135 | void, and will automatically terminate your rights under this License. | |
1136 | However, parties who have received copies, or rights, from you under | |
1137 | this License will not have their licenses terminated so long as such | |
1138 | parties remain in full compliance. | |
1139 | ||
1140 | @item | |
1141 | You are not required to accept this License, since you have not | |
1142 | signed it. However, nothing else grants you permission to modify or | |
1143 | distribute the Program or its derivative works. These actions are | |
1144 | prohibited by law if you do not accept this License. Therefore, by | |
1145 | modifying or distributing the Program (or any work based on the | |
1146 | Program), you indicate your acceptance of this License to do so, and | |
1147 | all its terms and conditions for copying, distributing or modifying | |
1148 | the Program or works based on it. | |
1149 | ||
1150 | @item | |
1151 | Each time you redistribute the Program (or any work based on the | |
1152 | Program), the recipient automatically receives a license from the | |
1153 | original licensor to copy, distribute or modify the Program subject to | |
1154 | these terms and conditions. You may not impose any further | |
1155 | restrictions on the recipients' exercise of the rights granted herein. | |
1156 | You are not responsible for enforcing compliance by third parties to | |
1157 | this License. | |
1158 | ||
1159 | @item | |
1160 | If, as a consequence of a court judgment or allegation of patent | |
1161 | infringement or for any other reason (not limited to patent issues), | |
1162 | conditions are imposed on you (whether by court order, agreement or | |
1163 | otherwise) that contradict the conditions of this License, they do not | |
1164 | excuse you from the conditions of this License. If you cannot | |
1165 | distribute so as to satisfy simultaneously your obligations under this | |
1166 | License and any other pertinent obligations, then as a consequence you | |
1167 | may not distribute the Program at all. For example, if a patent | |
1168 | license would not permit royalty-free redistribution of the Program by | |
1169 | all those who receive copies directly or indirectly through you, then | |
1170 | the only way you could satisfy both it and this License would be to | |
1171 | refrain entirely from distribution of the Program. | |
1172 | ||
1173 | If any portion of this section is held invalid or unenforceable under | |
1174 | any particular circumstance, the balance of the section is intended to | |
1175 | apply and the section as a whole is intended to apply in other | |
1176 | circumstances. | |
1177 | ||
1178 | It is not the purpose of this section to induce you to infringe any | |
1179 | patents or other property right claims or to contest validity of any | |
1180 | such claims; this section has the sole purpose of protecting the | |
1181 | integrity of the free software distribution system, which is | |
1182 | implemented by public license practices. Many people have made | |
1183 | generous contributions to the wide range of software distributed | |
1184 | through that system in reliance on consistent application of that | |
1185 | system; it is up to the author/donor to decide if he or she is willing | |
1186 | to distribute software through any other system and a licensee cannot | |
1187 | impose that choice. | |
1188 | ||
1189 | This section is intended to make thoroughly clear what is believed to | |
1190 | be a consequence of the rest of this License. | |
1191 | ||
1192 | @item | |
1193 | If the distribution and/or use of the Program is restricted in | |
1194 | certain countries either by patents or by copyrighted interfaces, the | |
1195 | original copyright holder who places the Program under this License | |
1196 | may add an explicit geographical distribution limitation excluding | |
1197 | those countries, so that distribution is permitted only in or among | |
1198 | countries not thus excluded. In such case, this License incorporates | |
1199 | the limitation as if written in the body of this License. | |
1200 | ||
1201 | @item | |
1202 | The Free Software Foundation may publish revised and/or new versions | |
1203 | of the General Public License from time to time. Such new versions will | |
1204 | be similar in spirit to the present version, but may differ in detail to | |
1205 | address new problems or concerns. | |
1206 | ||
1207 | Each version is given a distinguishing version number. If the Program | |
1208 | specifies a version number of this License which applies to it and ``any | |
1209 | later version'', you have the option of following the terms and conditions | |
1210 | either of that version or of any later version published by the Free | |
1211 | Software Foundation. If the Program does not specify a version number of | |
1212 | this License, you may choose any version ever published by the Free Software | |
1213 | Foundation. | |
1214 | ||
1215 | @item | |
1216 | If you wish to incorporate parts of the Program into other free | |
1217 | programs whose distribution conditions are different, write to the author | |
1218 | to ask for permission. For software which is copyrighted by the Free | |
1219 | Software Foundation, write to the Free Software Foundation; we sometimes | |
1220 | make exceptions for this. Our decision will be guided by the two goals | |
1221 | of preserving the free status of all derivatives of our free software and | |
1222 | of promoting the sharing and reuse of software generally. | |
1223 | ||
1224 | @iftex | |
1225 | @heading NO WARRANTY | |
1226 | @end iftex | |
1227 | @ifinfo | |
1228 | @center NO WARRANTY | |
1229 | @end ifinfo | |
1230 | ||
1231 | @item | |
1232 | BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY | |
1233 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW@. EXCEPT WHEN | |
1234 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES | |
1235 | PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED | |
1236 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | |
1237 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE@. THE ENTIRE RISK AS | |
1238 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU@. SHOULD THE | |
1239 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, | |
1240 | REPAIR OR CORRECTION. | |
1241 | ||
1242 | @item | |
1243 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | |
1244 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR | |
1245 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, | |
1246 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING | |
1247 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED | |
1248 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY | |
1249 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER | |
1250 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE | |
1251 | POSSIBILITY OF SUCH DAMAGES. | |
1252 | @end enumerate | |
1253 | ||
1254 | @iftex | |
1255 | @heading END OF TERMS AND CONDITIONS | |
1256 | @end iftex | |
1257 | @ifinfo | |
1258 | @center END OF TERMS AND CONDITIONS | |
1259 | @end ifinfo | |
1260 | ||
1261 | @page | |
1262 | @unnumberedsec How to Apply These Terms to Your New Programs | |
1263 | ||
1264 | If you develop a new program, and you want it to be of the greatest | |
1265 | possible use to the public, the best way to achieve this is to make it | |
1266 | free software which everyone can redistribute and change under these terms. | |
1267 | ||
1268 | To do so, attach the following notices to the program. It is safest | |
1269 | to attach them to the start of each source file to most effectively | |
1270 | convey the exclusion of warranty; and each file should have at least | |
1271 | the ``copyright'' line and a pointer to where the full notice is found. | |
1272 | ||
1273 | @smallexample | |
1274 | @var{one line to give the program's name and an idea of what it does.} | |
1275 | Copyright (C) 19@var{yy} @var{name of author} | |
1276 | ||
1277 | This program is free software; you can redistribute it and/or | |
1278 | modify it under the terms of the GNU General Public License | |
1279 | as published by the Free Software Foundation; either version 2 | |
1280 | of the License, or (at your option) any later version. | |
1281 | ||
1282 | This program is distributed in the hope that it will be useful, | |
1283 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
1284 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE@. See the | |
1285 | GNU General Public License for more details. | |
1286 | ||
1287 | You should have received a copy of the GNU General Public License along | |
1288 | with this program; if not, write to the Free Software Foundation, Inc., | |
1289 | 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. | |
1290 | @end smallexample | |
1291 | ||
1292 | Also add information on how to contact you by electronic and paper mail. | |
1293 | ||
1294 | If the program is interactive, make it output a short notice like this | |
1295 | when it starts in an interactive mode: | |
1296 | ||
1297 | @smallexample | |
645b441b | 1298 | Gnomovision version 69, Copyright (C) 20@var{yy} @var{name of author} |
3f973d9b AI |
1299 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details |
1300 | type `show w'. This is free software, and you are welcome | |
1301 | to redistribute it under certain conditions; type `show c' | |
1302 | for details. | |
1303 | @end smallexample | |
1304 | ||
1305 | The hypothetical commands @samp{show w} and @samp{show c} should show | |
1306 | the appropriate parts of the General Public License. Of course, the | |
1307 | commands you use may be called something other than @samp{show w} and | |
1308 | @samp{show c}; they could even be mouse-clicks or menu items---whatever | |
1309 | suits your program. | |
1310 | ||
1311 | You should also get your employer (if you work as a programmer) or your | |
1312 | school, if any, to sign a ``copyright disclaimer'' for the program, if | |
1313 | necessary. Here is a sample; alter the names: | |
1314 | ||
1315 | @smallexample | |
1316 | @group | |
1317 | Yoyodyne, Inc., hereby disclaims all copyright | |
1318 | interest in the program `Gnomovision' | |
1319 | (which makes passes at compilers) written | |
1320 | by James Hacker. | |
1321 | ||
1322 | @var{signature of Ty Coon}, 1 April 1989 | |
1323 | Ty Coon, President of Vice | |
1324 | @end group | |
1325 | @end smallexample | |
1326 | ||
1327 | This General Public License does not permit incorporating your program into | |
1328 | proprietary programs. If your program is a subroutine library, you may | |
1329 | consider it more useful to permit linking proprietary applications with the | |
1330 | library. If this is what you want to do, use the GNU Library General | |
1331 | Public License instead of this License. | |
1332 | ||
7a258cfb DL |
1333 | @include doclicense.texi |
1334 | ||
1335 | @node Intro, Glossary, GNU Free Documentation License, Top | |
3f973d9b AI |
1336 | @unnumbered Introduction |
1337 | ||
1338 | You are reading about GNU Emacs, the GNU incarnation of the advanced, | |
1339 | self-documenting, customizable, extensible real-time display editor Emacs. | |
1340 | (The `G' in `GNU' is not silent.) | |
1341 | ||
1342 | We say that Emacs is a @dfn{display} editor because normally the text | |
1343 | being edited is visible on the screen and is updated automatically as you | |
1344 | type your commands. @xref{Screen,Display}. | |
1345 | ||
1346 | We call it a @dfn{real-time} editor because the display is updated very | |
1347 | frequently, usually after each character or pair of characters you | |
1348 | type. This minimizes the amount of information you must keep in your | |
1349 | head as you edit. @xref{Basic,Real-time,Basic Editing}. | |
1350 | ||
1351 | We call Emacs advanced because it provides facilities that go beyond | |
1352 | simple insertion and deletion: controlling subprocesses; automatic | |
1353 | indentation of programs; viewing two or more files at once; editing | |
1354 | formatted text; and dealing in terms of characters, words, lines, | |
1355 | sentences, paragraphs, and pages, as well as expressions and comments in | |
1356 | several different programming languages. | |
1357 | ||
1358 | @dfn{Self-documenting} means that at any time you can type a special | |
1359 | character, @kbd{Control-h}, to find out what your options are. You can | |
1360 | also use it to find out what any command does, or to find all the commands | |
1361 | that pertain to a topic. @xref{Help}. | |
1362 | ||
1363 | @dfn{Customizable} means that you can change the definitions of Emacs | |
1364 | commands in little ways. For example, if you use a programming language in | |
1365 | which comments start with @samp{<**} and end with @samp{**>}, you can tell | |
1366 | the Emacs comment manipulation commands to use those strings | |
1367 | (@pxref{Comments}). Another sort of customization is rearrangement of the | |
1368 | command set. For example, if you prefer the four basic cursor motion | |
1369 | commands (up, down, left and right) on keys in a diamond pattern on the | |
1370 | keyboard, you can rebind the keys that way. @xref{Customization}. | |
1371 | ||
1372 | @dfn{Extensible} means that you can go beyond simple customization and | |
1373 | write entirely new commands, programs in the Lisp language to be run by | |
1374 | Emacs's own Lisp interpreter. Emacs is an ``on-line extensible'' | |
1375 | system, which means that it is divided into many functions that call | |
1376 | each other, any of which can be redefined in the middle of an editing | |
1377 | session. Almost any part of Emacs can be replaced without making a | |
1378 | separate copy of all of Emacs. Most of the editing commands of Emacs | |
1379 | are written in Lisp already; the few exceptions could have been written | |
1380 | in Lisp but are written in C for efficiency. Although only a programmer | |
1381 | can write an extension, anybody can use it afterward. If you want to | |
1382 | learn Emacs Lisp programming, we recommend the @cite{Introduction to | |
1383 | Emacs Lisp} by Robert J. Chassell, also published by the Free Software | |
1384 | Foundation. | |
1385 | ||
1386 | When run under the X Window System, Emacs provides its own menus and | |
1387 | convenient bindings to mouse buttons. But Emacs can provide many of the | |
1388 | benefits of a window system on a text-only terminal. For instance, you | |
1389 | can look at or edit several files at once, move text between files, and | |
1390 | edit files while running shell commands. | |
1391 | ||
1392 | @include screen.texi | |
1393 | @include commands.texi | |
1394 | @include entering.texi | |
1395 | @include basic.texi | |
1396 | @include mini.texi | |
1397 | @include m-x.texi | |
1398 | @include help.texi | |
1399 | @include mark.texi | |
1400 | @include killing.texi | |
1401 | @include regs.texi | |
1402 | @include display.texi | |
1403 | @include search.texi | |
1404 | @include fixit.texi | |
1405 | @include files.texi | |
1406 | @include buffers.texi | |
1407 | @include windows.texi | |
1408 | @include frames.texi | |
1409 | @include mule.texi | |
1410 | @include major.texi | |
1411 | @include indent.texi | |
1412 | @include text.texi | |
1413 | @include programs.texi | |
1414 | @include building.texi | |
1415 | @include abbrevs.texi | |
1416 | @include picture.texi | |
1417 | @include sending.texi | |
1418 | @include rmail.texi | |
1419 | @include dired.texi | |
1420 | @include calendar.texi | |
1421 | @include misc.texi | |
1422 | @include custom.texi | |
1423 | @include trouble.texi | |
1424 | @include cmdargs.texi | |
1425 | ||
1426 | @include anti.texi | |
2f920ca8 | 1427 | @include macos.texi |
3f973d9b AI |
1428 | @include msdog.texi |
1429 | @include gnu.texi | |
1430 | @include glossary.texi | |
1431 | @ifinfo | |
1432 | @include ack.texi | |
1433 | @end ifinfo | |
1434 | ||
1435 | @node Key Index, Command Index, Glossary, Top | |
1436 | @unnumbered Key (Character) Index | |
1437 | @printindex ky | |
1438 | ||
1439 | @node Command Index, Variable Index, Key Index, Top | |
1440 | @unnumbered Command and Function Index | |
1441 | @printindex fn | |
1442 | ||
1443 | @node Variable Index, Concept Index, Command Index, Top | |
1444 | @unnumbered Variable Index | |
1445 | @printindex vr | |
1446 | ||
1447 | @node Concept Index, Acknowledgments, Variable Index, Top | |
1448 | @unnumbered Concept Index | |
1449 | @printindex cp | |
1450 | ||
1451 | @summarycontents | |
1452 | @contents | |
1453 | @bye | |
1454 |