Merge from emacs--rel--22
[emacs.git] / man / emacs.texi
blob3b9484dcc06d0759c4126db6cc3e1b904466984c
1 \input texinfo
3 @setfilename ../info/emacs
4 @settitle GNU Emacs Manual
6 @c The edition number appears in several places in this file
7 @set EDITION   Sixteenth
8 @set EMACSVER  22.1.50
10 @copying
11 This is the @value{EDITION} edition of the @cite{GNU Emacs Manual},@*
12 updated for Emacs version @value{EMACSVER}.
14 Copyright @copyright{} 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997,
15 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
16 Foundation, Inc.
18 @quotation
19 Permission is granted to copy, distribute and/or modify this document
20 under the terms of the GNU Free Documentation License, Version 1.2 or
21 any later version published by the Free Software Foundation; with the
22 Invariant Sections being ``The GNU Manifesto,'' ``Distribution'' and
23 ``GNU GENERAL PUBLIC LICENSE,'' with the Front-Cover texts being ``A GNU
24 Manual,'' and with the Back-Cover Texts as in (a) below.  A copy of the
25 license is included in the section entitled ``GNU Free Documentation
26 License.''
28 (a) The FSF's Back-Cover Text is: ``You are free to copy and modify
29 this GNU Manual. Buying copies from GNU Press supports the FSF in
30 developing GNU and promoting software freedom.''
31 @end quotation
32 @end copying
34 @dircategory Emacs
35 @direntry
36 * Emacs: (emacs).       The extensible self-documenting text editor.
37 @end direntry
39 @c in general, keep the following line commented out, unless doing a
40 @c copy of this manual that will be published.  The manual should go
41 @c onto the distribution in the full, 8.5 x 11" size.
42 @c set smallbook
44 @ifset smallbook
45 @smallbook
46 @end ifset
48 @c per rms and peterb, use 10pt fonts for the main text, mostly to
49 @c save on paper cost.
50 @c Do this inside @tex for now, so current makeinfo does not complain.
51 @tex
52 @ifset smallbook
53 @fonttextsize 10
54 @set EMACSVER 22
55 \global\let\urlcolor=\Black % don't print links in grayscale
56 \global\let\linkcolor=\Black
57 @end ifset
58 \global\hbadness=6666 % don't worry about not-too-underfull boxes
59 @end tex
61 @defcodeindex op
62 @synindex pg cp
64 @iftex
65 @kbdinputstyle code
67 @shorttitlepage GNU Emacs Manual
68 @end iftex
70 @titlepage
71 @sp 6
72 @center @titlefont{GNU Emacs Manual}
73 @sp 4
74 @center @value{EDITION} Edition, Updated for Emacs Version @value{EMACSVER}.
75 @sp 5
76 @center Richard Stallman
77 @page
78 @vskip 0pt plus 1filll
79 @insertcopying
81 @sp 2
82 Published by the Free Software Foundation @*
83 51 Franklin Street, Fifth Floor @*
84 Boston, MA 02110-1301 USA @*
85 ISBN 1-882114-86-8
87 @sp 2
88 Cover art by Etienne Suvasa.
90 @end titlepage
93 @summarycontents
94 @contents
97 @ifnottex
98 @node Top, Distrib, (dir), (dir)
99 @top The Emacs Editor
101 Emacs is the extensible, customizable, self-documenting real-time
102 display editor.  This Info file describes how to edit with Emacs and
103 some of how to customize it; it corresponds to GNU Emacs version
104 @value{EMACSVER}.
106 @ifinfo
107 To learn more about the Info documentation system, type @kbd{h}, and
108 Emacs will take you to a programmed instruction sequence for the Info
109 commands.
110 @end ifinfo
112 For information on extending Emacs, see @ref{Top, Emacs Lisp,, elisp, The
113 Emacs Lisp Reference Manual}.
114 @end ifnottex
116 @ignore
117 These subcategories have been deleted for simplicity
118 and to avoid conflicts.
119 Completion
120 Backup Files
121 Auto-Saving: Protection Against Disasters
122 Snapshots
123 Text Mode
124 Outline Mode
125 @TeX{} Mode
126 Formatted Text
127 Shell Command History
129 The ones for Dired and Rmail have had the items turned into :: items
130 to avoid conflicts.
131 Also Running Shell Commands from Emacs
132 and Sending Mail and Registers and Minibuffer.
133 @end ignore
135 @menu
136 * Distrib::             How to get the latest Emacs distribution.
137 * Copying::             The GNU General Public License gives you permission
138                           to redistribute GNU Emacs on certain terms;
139                           it also explains that there is no warranty.
140 * GNU Free Documentation License:: The license for this documentation.
141 * Intro::               An introduction to Emacs concepts.
142 * Glossary::            The glossary.
143 * Antinews::            Information about Emacs version 21.
144 * Mac OS::              Using Emacs in the Mac.
145 * Microsoft Windows::   Using Emacs on Microsoft Windows and MS-DOS.
146 * Manifesto::           What's GNU?  Gnu's Not Unix!
147 * Acknowledgments::     Major contributors to GNU Emacs.
149 Indexes (each index contains a large menu)
150 * Key Index::           An item for each standard Emacs key sequence.
151 * Option Index::        An item for every command-line option.
152 * Command Index::       An item for each command name.
153 * Variable Index::      An item for each documented variable.
154 * Concept Index::       An item for each concept.
156 Important General Concepts
157 * Screen::              How to interpret what you see on the screen.
158 * User Input::          Kinds of input events (characters, buttons,
159                           function keys).
160 * Keys::                Key sequences: what you type to request one
161                           editing action.
162 * Commands::            Named functions run by key sequences to do editing.
163 * Text Characters::     Character set for text (the contents of buffers
164                           and strings).
165 * Entering Emacs::      Starting Emacs from the shell.
166 * Exiting::             Stopping or killing Emacs.
167 * Emacs Invocation::    Hairy startup options.
169 Fundamental Editing Commands
170 * Basic::               The most basic editing commands.
171 * Minibuffer::          Entering arguments that are prompted for.
172 * M-x::                 Invoking commands by their names.
173 * Help::                Commands for asking Emacs about its commands.
175 Important Text-Changing Commands
176 * Mark::                The mark: how to delimit a ``region'' of text.
177 * Killing::             Killing (cutting) text.
178 * Yanking::             Recovering killed text.  Moving text. (Pasting.)
179 * Accumulating Text::   Other ways of copying text.
180 * Rectangles::          Operating on the text inside a rectangle on the screen.
181 * Registers::           Saving a text string or a location in the buffer.
182 * Display::             Controlling what text is displayed.
183 * Search::              Finding or replacing occurrences of a string.
184 * Fixit::               Commands especially useful for fixing typos.
185 * Keyboard Macros::     A keyboard macro records a sequence of
186                           keystrokes to be replayed with a single command.
188 Major Structures of Emacs
189 * Files::               All about handling files.
190 * Buffers::             Multiple buffers; editing several files at once.
191 * Windows::             Viewing two pieces of text at once.
192 * Frames::              Running the same Emacs session in multiple X windows.
193 * International::       Using non-@acronym{ASCII} character sets (the MULE features).
195 Advanced Features
196 * Major Modes::         Text mode vs. Lisp mode vs. C mode ...
197 * Indentation::         Editing the white space at the beginnings of lines.
198 * Text::                Commands and modes for editing English.
199 * Programs::            Commands and modes for editing programs.
200 * Building::            Compiling, running and debugging programs.
201 * Maintaining::         Features for maintaining large programs.
202 * Abbrevs::             How to define text abbreviations to reduce
203                           the number of characters you must type.
204 @ifnottex
205 * Picture Mode::        Editing pictures made up of characters using
206                           the quarter-plane screen model.
207 @end ifnottex
208 * Sending Mail::        Sending mail in Emacs.
209 * Rmail::               Reading mail in Emacs.
210 * Dired::               You can ``edit'' a directory to manage files in it.
211 * Calendar/Diary::      The calendar and diary facilities.
212 * Gnus::                How to read netnews with Emacs.
213 * Shell::               Executing shell commands from Emacs.
214 * Emacs Server::        Using Emacs as an editing server for @code{mail}, etc.
215 * Printing::            Printing hardcopies of buffers or regions.
216 * Sorting::             Sorting lines, paragraphs or pages within Emacs.
217 * Narrowing::           Restricting display and editing to a portion
218                           of the buffer.
219 * Two-Column::          Splitting apart columns to edit them
220                           in side-by-side windows.
221 * Editing Binary Files::Using Hexl mode to edit binary files.
222 * Saving Emacs Sessions:: Saving Emacs state from one session to the next.
223 * Recursive Edit::      A command can allow you to do editing
224                           "within the command".  This is called a
225                           "recursive editing level".
226 * Emulation::           Emulating some other editors with Emacs.
227 * Hyperlinking::        Following links in buffers.
228 * Dissociated Press::   Dissociating text for fun.
229 * Amusements::          Various games and hacks.
230 * Customization::       Modifying the behavior of Emacs.
231 * X Resources::         X resources for customizing Emacs.
233 Recovery from Problems
234 * Quitting::            Quitting and aborting.
235 * Lossage::             What to do if Emacs is hung or malfunctioning.
236 * Bugs::                How and when to report a bug.
237 * Contributing::        How to contribute improvements to Emacs.
238 * Service::             How to get help for your own Emacs needs.
240 @c Do NOT modify the following 3 lines!  They must have this form to
241 @c be correctly identified by `texinfo-multiple-files-update'.  In
242 @c particular, the detailed menu header line MUST be identical to the
243 @c value of `texinfo-master-menu-header'.  See texnfo-upd.el.
245 @detailmenu
246  --- The Detailed Node Listing ---
247  ---------------------------------
249 Here are some other nodes which are really inferiors of the ones
250 already listed, mentioned here so you can get to them in one step:
252 The Organization of the Screen
254 * Point::               The place in the text where editing commands operate.
255 * Echo Area::           Short messages appear at the bottom of the screen.
256 * Mode Line::           Interpreting the mode line.
257 * Menu Bar::            How to use the menu bar.
259 Basic Editing Commands
261 * Inserting Text::      Inserting text by simply typing it.
262 * Moving Point::        How to move the cursor to the place where you want to
263                           change something.
264 * Erasing::             Deleting and killing text.
265 * Basic Undo::          Undoing recent changes in the text.
266 * Basic Files::         Visiting, creating, and saving files.
267 * Basic Help::          Asking what a character does.
268 * Blank Lines::         Commands to make or delete blank lines.
269 * Continuation Lines::  Lines too wide for the screen.
270 * Position Info::       What page, line, row, or column is point on?
271 * Arguments::           Numeric arguments for repeating a command.
272 * Repeating::           A short-cut for repeating the previous command.
274 The Minibuffer
276 * Minibuffer File::     Entering file names with the minibuffer.
277 * Minibuffer Edit::     How to edit in the minibuffer.
278 * Completion::          An abbreviation facility for minibuffer input.
279 * Minibuffer History::  Reusing recent minibuffer arguments.
280 * Repetition::          Re-executing commands that used the minibuffer.
282 Completion
284 * Example: Completion Example.    Examples of using completion.
285 * Commands: Completion Commands.  A list of completion commands.
286 * Strict Completion::             Different types of completion.
287 * Options: Completion Options.    Options for completion.
289 Help
291 * Help Summary::        Brief list of all Help commands.
292 * Key Help::            Asking what a key does in Emacs.
293 * Name Help::           Asking about a command, variable or function name.
294 * Apropos::             Asking what pertains to a given topic.
295 * Help Mode::           Special features of Help mode and Help buffers.
296 * Library Keywords::    Finding Lisp libraries by keywords (topics).
297 * Language Help::       Help relating to international language support.
298 * Misc Help::           Other help commands.
299 * Help Files::          Commands to display pre-written help files.
300 * Help Echo::           Help on active text and tooltips (`balloon help')
302 The Mark and the Region
304 * Setting Mark::        Commands to set the mark.
305 * Transient Mark::      How to make Emacs highlight the region--
306                           when there is one.
307 * Momentary Mark::      Enabling Transient Mark mode momentarily.
308 * Using Region::        Summary of ways to operate on contents of the region.
309 * Marking Objects::     Commands to put region around textual units.
310 * Mark Ring::           Previous mark positions saved so you can go back there.
311 * Global Mark Ring::    Previous mark positions in various buffers.
313 Killing and Moving Text
315 * Deletion::            Commands for deleting small amounts of text and
316                           blank areas.
317 * Killing by Lines::    How to kill entire lines of text at one time.
318 * Other Kill Commands:: Commands to kill large regions of text and
319                           syntactic units such as words and sentences.
320 * CUA Bindings::        Using @kbd{C-x}, @kbd{C-c}, @kbd{C-v} for copy
321                           and paste, with enhanced rectangle support.
323 Yanking
325 * Kill Ring::           Where killed text is stored.  Basic yanking.
326 * Appending Kills::     Several kills in a row all yank together.
327 * Earlier Kills::       Yanking something killed some time ago.
329 Registers
331 * RegPos::              Saving positions in registers.
332 * RegText::             Saving text in registers.
333 * RegRect::             Saving rectangles in registers.
334 * RegConfig::           Saving window configurations in registers.
335 * RegNumbers::          Numbers in registers.
336 * RegFiles::            File names in registers.
337 * Bookmarks::           Bookmarks are like registers, but persistent.
339 Controlling the Display
341 * Scrolling::              Moving text up and down in a window.
342 * Auto Scrolling::         Redisplay scrolls text automatically when needed.
343 * Horizontal Scrolling::   Moving text left and right in a window.
344 * Follow Mode::            Follow mode lets two windows scroll as one.
345 * Faces::                  How to change the display style using faces.
346 * Standard Faces::         Emacs' predefined faces.
347 * Font Lock::              Minor mode for syntactic highlighting using faces.
348 * Highlight Interactively:: Tell Emacs what text to highlight.
349 * Fringes::                Enabling or disabling window fringes.
350 * Displaying Boundaries::  Displaying top and bottom of the buffer.
351 * Useless Whitespace::     Showing possibly-spurious trailing whitespace.
352 * Selective Display::      Hiding lines with lots of indentation.
353 * Optional Mode Line::     Optional mode line display features.
354 * Text Display::           How text characters are normally displayed.
355 * Cursor Display::         Features for displaying the cursor.
356 * Line Truncation::        Truncating lines to fit the screen width instead
357                              of continuing them to multiple screen lines.
358 * Display Custom::         Information on variables for customizing display.
360 Searching and Replacement
362 * Incremental Search::     Search happens as you type the string.
363 * Nonincremental Search::  Specify entire string and then search.
364 * Word Search::            Search for sequence of words.
365 * Regexp Search::          Search for match for a regexp.
366 * Regexps::                Syntax of regular expressions.
367 * Regexp Backslash::       Regular expression constructs starting with `\'.
368 * Regexp Example::         A complex regular expression explained.
369 * Search Case::            To ignore case while searching, or not.
370 * Replace::                Search, and replace some or all matches.
371 * Other Repeating Search:: Operating on all matches for some regexp.
373 Incremental Search
375 * Basic Isearch::       Basic incremental search commands.
376 * Repeat Isearch::      Searching for the same string again.
377 * Error in Isearch::    When your string is not found.
378 * Special Isearch::     Special input in incremental search.
379 * Non-ASCII Isearch::   How to search for non-ASCII characters.
380 * Isearch Yank::        Commands that grab text into the search string
381                           or else edit the search string.
382 * Highlight Isearch::   Isearch highlights the other possible matches.
383 * Isearch Scroll::      Scrolling during an incremental search.
384 * Slow Isearch::        Incremental search features for slow terminals.
386 Replacement Commands
388 * Unconditional Replace::  Replacing all matches for a string.
389 * Regexp Replace::         Replacing all matches for a regexp.
390 * Replacement and Case::   How replacements preserve case of letters.
391 * Query Replace::          How to use querying.
393 Commands for Fixing Typos
395 * Undo::                Full details of Emacs undo commands.
396 * Kill Errors::         Commands to kill a batch of recently entered text.
397 * Transpose::           Exchanging two characters, words, lines, lists...
398 * Fixing Case::         Correcting case of last word entered.
399 * Spelling::            Apply spelling checker to a word or a whole buffer.
401 Keyboard Macros
403 * Basic Keyboard Macro::     Defining and running keyboard macros.
404 * Keyboard Macro Ring::      Where previous keyboard macros are saved.
405 * Keyboard Macro Counter::   Inserting incrementing numbers in macros.
406 * Keyboard Macro Query::     Making keyboard macros do different things each time.
407 * Save Keyboard Macro::      Giving keyboard macros names; saving them in files.
408 * Edit Keyboard Macro::      Editing keyboard macros.
409 * Keyboard Macro Step-Edit:: Interactively executing and editing a keyboard
410                                 macro.
412 File Handling
414 * File Names::          How to type and edit file-name arguments.
415 * Visiting::            Visiting a file prepares Emacs to edit the file.
416 * Saving::              Saving makes your changes permanent.
417 * Reverting::           Reverting cancels all the changes not saved.
418 * Autorevert::          Auto Reverting non-file buffers.
419 * Auto Save::           Auto Save periodically protects against loss of data.
420 * File Aliases::        Handling multiple names for one file.
421 * Version Control::     Version control systems (RCS, CVS and SCCS).
422 * Directories::         Creating, deleting, and listing file directories.
423 * Comparing Files::     Finding where two files differ.
424 * Diff Mode::           Editing diff output.
425 * Misc File Ops::       Other things you can do on files.
426 * Compressed Files::    Accessing compressed files.
427 * File Archives::       Operating on tar, zip, jar etc. archive files.
428 * Remote Files::        Accessing files on other sites.
429 * Quoted File Names::   Quoting special characters in file names.
430 * File Name Cache::     Completion against a list of files you often use.
431 * File Conveniences::   Convenience Features for Finding Files.
432 * Filesets::            Handling sets of files.
434 Saving Files
436 * Save Commands::       Commands for saving files.
437 * Backup::              How Emacs saves the old version of your file.
438 * Customize Save::      Customizing the saving of files.
439 * Interlocking::        How Emacs protects against simultaneous editing
440                           of one file by two users.
441 * File Shadowing::      Copying files to "shadows" automatically.
442 * Time Stamps::         Emacs can update time stamps on saved files.
444 Backup Files
446 * One or Many: Numbered Backups. Whether to make one backup file or many.
447 * Names: Backup Names.          How backup files are named.
448 * Deletion: Backup Deletion.    Emacs deletes excess numbered backups.
449 * Copying: Backup Copying.      Backups can be made by copying or renaming.
451 Auto-Saving: Protection Against Disasters
453 * Files: Auto Save Files.       The file where auto-saved changes are
454                                   actually made until you save the file.
455 * Control: Auto Save Control.   Controlling when and how often to auto-save.
456 * Recover::                     Recovering text from auto-save files.
458 Version Control
460 * Introduction to VC::  How version control works in general.
461 * VC Mode Line::        How the mode line shows version control status.
462 * Basic VC Editing::    How to edit a file under version control.
463 * Old Versions::        Examining and comparing old versions.
464 * Secondary VC Commands:: The commands used a little less frequently.
465 * Branches::            Multiple lines of development.
466 * Remote Repositories:: Efficient access to remote CVS servers.
467 * Snapshots::           Sets of file versions treated as a unit.
468 * Miscellaneous VC::    Various other commands and features of VC.
469 * Customizing VC::      Variables that change VC's behavior.
471 Using Multiple Buffers
473 * Select Buffer::       Creating a new buffer or reselecting an old one.
474 * List Buffers::        Getting a list of buffers that exist.
475 * Misc Buffer::         Renaming; changing read-onliness; copying text.
476 * Kill Buffer::         Killing buffers you no longer need.
477 * Several Buffers::     How to go through the list of all buffers
478                           and operate variously on several of them.
479 * Indirect Buffers::    An indirect buffer shares the text of another buffer.
480 * Buffer Convenience::  Convenience and customization features for
481                           buffer handling.
483 Multiple Windows
485 * Basic Window::        Introduction to Emacs windows.
486 * Split Window::        New windows are made by splitting existing windows.
487 * Other Window::        Moving to another window or doing something to it.
488 * Pop Up Window::       Finding a file or buffer in another window.
489 * Force Same Window::   Forcing certain buffers to appear in the selected
490                           window rather than in another window.
491 * Change Window::       Deleting windows and changing their sizes.
492 * Window Convenience::  Convenience functions for window handling.
494 Frames and Graphical Displays
496 * Cut and Paste::       Mouse commands for cut and paste.
497 * Mouse References::    Using the mouse to select an item from a list.
498 * Menu Mouse Clicks::   Mouse clicks that bring up menus.
499 * Mode Line Mouse::     Mouse clicks on the mode line.
500 * Creating Frames::     Creating additional Emacs frames with various contents.
501 * Frame Commands::      Iconifying, deleting, and switching frames.
502 * Speedbar::            How to make and use a speedbar frame.
503 * Multiple Displays::   How one Emacs job can talk to several displays.
504 * Special Buffer Frames::  You can make certain buffers have their own frames.
505 * Frame Parameters::    Changing the colors and other modes of frames.
506 * Scroll Bars::         How to enable and disable scroll bars; how to use them.
507 * Wheeled Mice::        Using mouse wheels for scrolling.
508 * Drag and Drop::       Using drag and drop to open files and insert text.
509 * Menu Bars::           Enabling and disabling the menu bar.
510 * Tool Bars::           Enabling and disabling the tool bar.
511 * Dialog Boxes::        Controlling use of dialog boxes.
512 * Tooltips::            Showing "tooltips", AKA "balloon help" for active text.
513 * Mouse Avoidance::     Moving the mouse pointer out of the way.
514 * Non-Window Terminals::  Multiple frames on terminals that show only one.
515 * Text-Only Mouse::     Using the mouse in text-only terminals.
517 International Character Set Support
519 * International Chars::     Basic concepts of multibyte characters.
520 * Enabling Multibyte::      Controlling whether to use multibyte characters.
521 * Language Environments::   Setting things up for the language you use.
522 * Input Methods::           Entering text characters not on your keyboard.
523 * Select Input Method::     Specifying your choice of input methods.
524 * Multibyte Conversion::    How single-byte characters convert to multibyte.
525 * Coding Systems::          Character set conversion when you read and
526                               write files, and so on.
527 * Recognize Coding::        How Emacs figures out which conversion to use.
528 * Specify Coding::          Specifying a file's coding system explicitly.
529 * Output Coding::           Choosing coding systems for output.
530 * Text Coding::             Choosing conversion to use for file text.
531 * Communication Coding::    Coding systems for interprocess communication.
532 * File Name Coding::        Coding systems for file @emph{names}.
533 * Terminal Coding::         Specifying coding systems for converting
534                               terminal input and output.
535 * Fontsets::                Fontsets are collections of fonts
536                               that cover the whole spectrum of characters.
537 * Defining Fontsets::       Defining a new fontset.
538 * Undisplayable Characters::When characters don't display.
539 * Unibyte Mode::            You can pick one European character set
540                               to use without multibyte characters.
541 * Charsets::                How Emacs groups its internal character codes.
543 Major Modes
545 * Choosing Modes::      How major modes are specified or chosen.
547 Indentation
549 * Indentation Commands::  Various commands and techniques for indentation.
550 * Tab Stops::             You can set arbitrary "tab stops" and then
551                             indent to the next tab stop when you want to.
552 * Just Spaces::           You can request indentation using just spaces.
554 Commands for Human Languages
556 * Words::               Moving over and killing words.
557 * Sentences::           Moving over and killing sentences.
558 * Paragraphs::          Moving over paragraphs.
559 * Pages::               Moving over pages.
560 * Filling::             Filling or justifying text.
561 * Case::                Changing the case of text.
562 * Text Mode::           The major modes for editing text files.
563 * Outline Mode::        Editing outlines.
564 * TeX Mode::            Editing input to the formatter TeX.
565 * HTML Mode::           Editing HTML, SGML, and XML files.
566 * Nroff Mode::          Editing input to the formatter nroff.
567 * Formatted Text::      Editing formatted text directly in WYSIWYG fashion.
568 * Text Based Tables::   Editing text-based tables in WYSIWYG fashion.
570 Filling Text
572 * Auto Fill::           Auto Fill mode breaks long lines automatically.
573 * Refill::              Keeping paragraphs filled.
574 * Fill Commands::       Commands to refill paragraphs and center lines.
575 * Fill Prefix::         Filling paragraphs that are indented
576                           or in a comment, etc.
577 * Adaptive Fill::       How Emacs can determine the fill prefix automatically.
578 * Longlines::           Editing text with very long lines.
580 Outline Mode
582 * Format: Outline Format.          What the text of an outline looks like.
583 * Motion: Outline Motion.          Special commands for moving through
584                                      outlines.
585 * Visibility: Outline Visibility.  Commands to control what is visible.
586 * Views: Outline Views.            Outlines and multiple views.
587 * Foldout::                        Folding means zooming in on outlines.
589 @TeX{} Mode
591 * Editing: TeX Editing.   Special commands for editing in TeX mode.
592 * LaTeX: LaTeX Editing.   Additional commands for LaTeX input files.
593 * Printing: TeX Print.    Commands for printing part of a file with TeX.
594 * Misc: TeX Misc.         Customization of TeX mode, and related features.
596 Editing Formatted Text
598 * Requesting Formatted Text::   Entering and exiting Enriched mode.
599 * Hard and Soft Newlines::      There are two different kinds of newlines.
600 * Editing Format Info::         How to edit text properties.
601 * Faces: Format Faces.          Bold, italic, underline, etc.
602 * Color: Format Colors.         Changing the color of text.
603 * Indent: Format Indentation.   Changing the left and right margins.
604 * Justification: Format Justification.
605                                 Centering, setting text flush with the
606                                   left or right margin, etc.
607 * Other: Format Properties.     The "special" text properties submenu.
608 * Forcing Enriched Mode::       How to force use of Enriched mode.
610 Editing Text-based Tables
612 * Table Definition::    What is a text based table.
613 * Table Creation::      How to create a table.
614 * Table Recognition::   How to activate and deactivate tables.
615 * Cell Commands::       Cell-oriented commands in a table.
616 * Cell Justification::  Justifying cell contents.
617 * Row Commands::        Manipulating rows of table cell.
618 * Column Commands::     Manipulating columns of table cell.
619 * Fixed Width Mode::    Fixing cell width.
620 * Table Conversion::    Converting between plain text and tables.
621 * Measuring Tables::    Analyzing table dimension.
622 * Table Misc::          Table miscellany.
624 Editing Programs
626 * Program Modes::       Major modes for editing programs.
627 * Defuns::              Commands to operate on major top-level parts
628                           of a program.
629 * Program Indent::      Adjusting indentation to show the nesting.
630 * Parentheses::         Commands that operate on parentheses.
631 * Comments::            Inserting, killing, and aligning comments.
632 * Documentation::       Getting documentation of functions you plan to call.
633 * Hideshow::            Displaying blocks selectively.
634 * Symbol Completion::   Completion on symbol names of your program or language.
635 * Glasses::             Making identifiersLikeThis more readable.
636 * Misc for Programs::   Other Emacs features useful for editing programs.
637 * C Modes::             Special commands of C, C++, Objective-C,
638                           Java, and Pike modes.
639 * Asm Mode::            Asm mode and its special features.
640 * Fortran::             Fortran mode and its special features.
642 Top-Level Definitions, or Defuns
644 * Left Margin Paren::   An open-paren or similar opening delimiter
645                           starts a defun if it is at the left margin.
646 * Moving by Defuns::    Commands to move over or mark a major definition.
647 * Imenu::               Making buffer indexes as menus.
648 * Which Function::      Which Function mode shows which function you are in.
650 Indentation for Programs
652 * Basic Indent::        Indenting a single line.
653 * Multi-line Indent::   Commands to reindent many lines at once.
654 * Lisp Indent::         Specifying how each Lisp function should be indented.
655 * C Indent::            Extra features for indenting C and related modes.
656 * Custom C Indent::     Controlling indentation style for C and related modes.
658 Commands for Editing with Parentheses
660 * Expressions::         Expressions with balanced parentheses.
661 * Moving by Parens::    Commands for moving up, down and across
662                           in the structure of parentheses.
663 * Matching::            Insertion of a close-delimiter flashes matching open.
665 Manipulating Comments
667 * Comment Commands::    Inserting, killing, and aligning comments.
668 * Multi-Line Comments:: Commands for adding and editing multi-line comments.
669 * Options for Comments::Customizing the comment features.
671 Documentation Lookup
673 * Info Lookup::         Looking up library functions and commands
674                           in Info files.
675 * Man Page::            Looking up man pages of library functions and commands.
676 * Lisp Doc::            Looking up Emacs Lisp functions, etc.
678 C and Related Modes
680 * Motion in C::         Commands to move by C statements, etc.
681 * Electric C::          Colon and other chars can automatically reindent.
682 * Hungry Delete::       A more powerful DEL command.
683 * Other C Commands::    Filling comments, viewing expansion of macros,
684                           and other neat features.
686 Compiling and Testing Programs
688 * Compilation::         Compiling programs in languages other
689                           than Lisp (C, Pascal, etc.).
690 * Compilation Mode::    The mode for visiting compiler errors.
691 * Compilation Shell::   Customizing your shell properly
692                           for use in the compilation buffer.
693 * Grep Searching::      Searching with grep.
694 * Flymake::             Finding syntax errors on the fly.
695 * Debuggers::           Running symbolic debuggers for non-Lisp programs.
696 * Executing Lisp::      Various modes for editing Lisp programs,
697                           with different facilities for running
698                           the Lisp programs.
699 * Lisp Libraries::      Creating Lisp programs to run in Emacs.
700 * Lisp Eval::           Executing a single Lisp expression in Emacs.
701 * Lisp Interaction::    Executing Lisp in an Emacs buffer.
702 * External Lisp::       Communicating through Emacs with a separate Lisp.
704 Running Debuggers Under Emacs
706 * Starting GUD::        How to start a debugger subprocess.
707 * Debugger Operation::  Connection between the debugger and source buffers.
708 * Commands of GUD::     Key bindings for common commands.
709 * GUD Customization::   Defining your own commands for GUD.
710 * GDB Graphical Interface::  An enhanced mode that uses GDB features to
711                           implement a graphical debugging environment through
712                           Emacs.
714 Maintaining Large Programs
716 * Change Log::          Maintaining a change history for your program.
717 * Format of ChangeLog:: What the change log file looks like.
718 * Tags::                Go direct to any function in your program in one
719                           command.  Tags remembers which file it is in.
720 * Emerge::              A convenient way of merging two versions of a program.
722 Tags Tables
724 * Tag Syntax::          Tag syntax for various types of code and text files.
725 * Create Tags Table::   Creating a tags table with @code{etags}.
726 * Etags Regexps::       Create arbitrary tags using regular expressions.
727 * Select Tags Table::   How to visit a tags table.
728 * Find Tag::            Commands to find the definition of a specific tag.
729 * Tags Search::         Using a tags table for searching and replacing.
730 * List Tags::           Listing and finding tags defined in a file.
732 Abbrevs
734 * Abbrev Concepts::     Fundamentals of defined abbrevs.
735 * Defining Abbrevs::    Defining an abbrev, so it will expand when typed.
736 * Expanding Abbrevs::   Controlling expansion: prefixes, canceling expansion.
737 * Editing Abbrevs::     Viewing or editing the entire list of defined abbrevs.
738 * Saving Abbrevs::      Saving the entire list of abbrevs for another session.
739 * Dynamic Abbrevs::     Abbreviations for words already in the buffer.
740 * Dabbrev Customization:: What is a word, for dynamic abbrevs.  Case handling.
742 @ifnottex
743 Editing Pictures
745 * Basic Picture::         Basic concepts and simple commands of Picture Mode.
746 * Insert in Picture::     Controlling direction of cursor motion
747                             after "self-inserting" characters.
748 * Tabs in Picture::       Various features for tab stops and indentation.
749 * Rectangles in Picture:: Clearing and superimposing rectangles.
750 @end ifnottex
752 Sending Mail
754 * Mail Format::         Format of the mail being composed.
755 * Mail Headers::        Details of permitted mail header fields.
756 * Mail Aliases::        Abbreviating and grouping mail addresses.
757 * Mail Mode::           Special commands for editing mail being composed.
758 * Mail Amusements::     Distract the NSA's attention; add a fortune to a msg.
759 * Mail Methods::        Using alternative mail-composition methods.
761 Reading Mail with Rmail
763 * Rmail Basics::        Basic concepts of Rmail, and simple use.
764 * Rmail Scrolling::     Scrolling through a message.
765 * Rmail Motion::        Moving to another message.
766 * Rmail Deletion::      Deleting and expunging messages.
767 * Rmail Inbox::         How mail gets into the Rmail file.
768 * Rmail Files::         Using multiple Rmail files.
769 * Rmail Output::        Copying message out to files.
770 * Rmail Labels::        Classifying messages by labeling them.
771 * Rmail Attributes::    Certain standard labels, called attributes.
772 * Rmail Reply::         Sending replies to messages you are viewing.
773 * Rmail Summary::       Summaries show brief info on many messages.
774 * Rmail Sorting::       Sorting messages in Rmail.
775 * Rmail Display::       How Rmail displays a message; customization.
776 * Rmail Coding::        How Rmail handles decoding character sets.
777 * Rmail Editing::       Editing message text and headers in Rmail.
778 * Rmail Digest::        Extracting the messages from a digest message.
779 * Out of Rmail::        Converting an Rmail file to mailbox format.
780 * Rmail Rot13::         Reading messages encoded in the rot13 code.
781 * Movemail::            More details of fetching new mail.
782 * Remote Mailboxes::    Retrieving Mail from Remote Mailboxes.
783 * Other Mailbox Formats:: Retrieving Mail from Local Mailboxes in
784                           Various Formats
786 Dired, the Directory Editor
788 * Dired Enter::              How to invoke Dired.
789 * Dired Navigation::         How to move in the Dired buffer.
790 * Dired Deletion::           Deleting files with Dired.
791 * Flagging Many Files::      Flagging files based on their names.
792 * Dired Visiting::           Other file operations through Dired.
793 * Marks vs Flags::           Flagging for deletion vs marking.
794 * Operating on Files::       How to copy, rename, print, compress, etc.
795                                either one file or several files.
796 * Shell Commands in Dired::  Running a shell command on the marked files.
797 * Transforming File Names::  Using patterns to rename multiple files.
798 * Comparison in Dired::      Running `diff' by way of Dired.
799 * Subdirectories in Dired::  Adding subdirectories to the Dired buffer.
800 * Subdir Switches::          Subdirectory switches in Dired.
801 * Subdirectory Motion::      Moving across subdirectories, and up and down.
802 * Hiding Subdirectories::    Making subdirectories visible or invisible.
803 * Dired Updating::           Discarding lines for files of no interest.
804 * Dired and Find::           Using `find' to choose the files for Dired.
805 * Wdired::                   Operating on files by editing the Dired buffer.
806 * Image-Dired::              Viewing image thumbnails in Dired
807 * Misc Dired Features::      Various other features.
809 The Calendar and the Diary
811 * Calendar Motion::     Moving through the calendar; selecting a date.
812 * Scroll Calendar::     Bringing earlier or later months onto the screen.
813 * Counting Days::       How many days are there between two dates?
814 * General Calendar::    Exiting or recomputing the calendar.
815 * Writing Calendar Files:: Writing calendars to files of various formats.
816 * Holidays::            Displaying dates of holidays.
817 * Sunrise/Sunset::      Displaying local times of sunrise and sunset.
818 * Lunar Phases::        Displaying phases of the moon.
819 * Other Calendars::     Converting dates to other calendar systems.
820 * Diary::               Displaying events from your diary.
821 * Appointments::        Reminders when it's time to do something.
822 * Importing Diary::     Converting diary events to/from other formats.
823 * Daylight Saving::    How to specify when daylight saving time is active.
824 * Time Intervals::      Keeping track of time intervals.
825 * Advanced Calendar/Diary Usage:: Advanced Calendar/Diary customization.
827 Movement in the Calendar
829 * Calendar Unit Motion::      Moving by days, weeks, months, and years.
830 * Move to Beginning or End::  Moving to start/end of weeks, months, and years.
831 * Specified Dates::           Moving to the current date or another
832                                 specific date.
834 Conversion To and From Other Calendars
836 * Calendar Systems::       The calendars Emacs understands
837                              (aside from Gregorian).
838 * To Other Calendar::      Converting the selected date to various calendars.
839 * From Other Calendar::    Moving to a date specified in another calendar.
840 * Mayan Calendar::         Moving to a date specified in a Mayan calendar.
842 The Diary
844 * Displaying the Diary::   Viewing diary entries and associated calendar dates.
845 * Format of Diary File::   Entering events in your diary.
846 * Date Formats::           Various ways you can specify dates.
847 * Adding to Diary::        Commands to create diary entries.
848 * Special Diary Entries::  Anniversaries, blocks of dates, cyclic entries, etc.
850 Gnus
852 * Buffers of Gnus::     The group, summary, and article buffers.
853 * Gnus Startup::        What you should know about starting Gnus.
854 * Summary of Gnus::     A short description of the basic Gnus commands.
856 Running Shell Commands from Emacs
858 * Single Shell::        How to run one shell command and return.
859 * Interactive Shell::   Permanent shell taking input via Emacs.
860 * Shell Mode::          Special Emacs commands used with permanent shell.
861 * Shell Prompts::       Two ways to recognize shell prompts.
862 * Shell History::       Repeating previous commands in a shell buffer.
863 * Directory Tracking::  Keeping track when the subshell changes directory.
864 * Shell Options::       Options for customizing Shell mode.
865 * Terminal emulator::   An Emacs window as a terminal emulator.
866 * Term Mode::           Special Emacs commands used in Term mode.
867 * Paging in Term::      Paging in the terminal emulator.
868 * Remote Host::         Connecting to another computer.
870 Using Emacs as a Server
872 * Invoking emacsclient:: Emacs client startup options.
874 Printing Hard Copies
876 * PostScript::           Printing buffers or regions as PostScript.
877 * PostScript Variables:: Customizing the PostScript printing commands.
878 * Printing Package::     An optional advanced printing interface.
880 Hyperlinking and Navigation Features
882 * Browse-URL::          Following URLs.
883 * Goto-address::        Activating URLs.
884 * FFAP::                Finding files etc. at point.
886 Customization
888 * Minor Modes::         Each minor mode is one feature you can turn on
889                           independently of any others.
890 * Easy Customization::  Convenient way to browse and change user options.
891 * Variables::           Many Emacs commands examine Emacs variables
892                           to decide what to do; by setting variables,
893                           you can control their functioning.
894 * Key Bindings::        The keymaps say what command each key runs.
895                           By changing them, you can "redefine keys".
896 * Syntax::              The syntax table controls how words and
897                           expressions are parsed.
898 * Init File::           How to write common customizations in the
899                           @file{.emacs} file.
901 Variables
903 * Examining::           Examining or setting one variable's value.
904 * Hooks::               Hook variables let you specify programs for parts
905                           of Emacs to run on particular occasions.
906 * Locals::              Per-buffer values of variables.
907 * File Variables::      How files can specify variable values.
909 Customizing Key Bindings
911 * Keymaps::             Generalities.  The global keymap.
912 * Prefix Keymaps::      Keymaps for prefix keys.
913 * Local Keymaps::       Major and minor modes have their own keymaps.
914 * Minibuffer Maps::     The minibuffer uses its own local keymaps.
915 * Rebinding::           How to redefine one key's meaning conveniently.
916 * Init Rebinding::      Rebinding keys with your init file, @file{.emacs}.
917 * Function Keys::       Rebinding terminal function keys.
918 * Named ASCII Chars::   Distinguishing @key{TAB} from @kbd{C-i}, and so on.
919 * Mouse Buttons::       Rebinding mouse buttons in Emacs.
920 * Disabling::           Disabling a command means confirmation is required
921                           before it can be executed.  This is done to protect
922                           beginners from surprises.
924 The Init File, @file{~/.emacs}
926 * Init Syntax::         Syntax of constants in Emacs Lisp.
927 * Init Examples::       How to do some things with an init file.
928 * Terminal Init::       Each terminal type can have an init file.
929 * Find Init::           How Emacs finds the init file.
930 * Init Non-ASCII::      Using non-@acronym{ASCII} characters in an init file.
932 Dealing with Emacs Trouble
934 * DEL Does Not Delete:: What to do if @key{DEL} doesn't delete.
935 * Stuck Recursive::     `[...]' in mode line around the parentheses.
936 * Screen Garbled::      Garbage on the screen.
937 * Text Garbled::        Garbage in the text.
938 * Memory Full::         How to cope when you run out of memory.
939 * After a Crash::       Recovering editing in an Emacs session that crashed.
940 * Emergency Escape::    Emergency escape---
941                           What to do if Emacs stops responding.
942 * Total Frustration::   When you are at your wits' end.
944 Reporting Bugs
946 * Bug Criteria::        Have you really found a bug?
947 * Understanding Bug Reporting:: How to report a bug effectively.
948 * Checklist::           Steps to follow for a good bug report.
949 * Sending Patches::     How to send a patch for GNU Emacs.
951 Command Line Arguments for Emacs Invocation
953 * Action Arguments::    Arguments to visit files, load libraries,
954                           and call functions.
955 * Initial Options::     Arguments that take effect while starting Emacs.
956 * Command Example::     Examples of using command line arguments.
957 * Resume Arguments::    Specifying arguments when you resume a running Emacs.
958 * Environment::         Environment variables that Emacs uses.
959 * Display X::           Changing the default display and using remote login.
960 * Font X::              Choosing a font for text, under X.
961 * Colors::              Choosing display colors.
962 * Window Size X::       Start-up window size, under X.
963 * Borders X::           Internal and external borders, under X.
964 * Title X::             Specifying the initial frame's title.
965 * Icons X::             Choosing what sort of icon to use, under X.
966 * Misc X::              Other display options.
968 Environment Variables
970 * General Variables::   Environment variables that all versions of Emacs use.
971 * Misc Variables::      Certain system specific variables.
972 * MS-Windows Registry:: An alternative to the environment on MS-Windows.
974 X Options and Resources
976 * Resources::           Using X resources with Emacs (in general).
977 * Table of Resources::  Table of specific X resources that affect Emacs.
978 * Face Resources::      X resources for customizing faces.
979 * Lucid Resources::     X resources for Lucid menus.
980 * LessTif Resources::   X resources for LessTif and Motif menus.
981 * GTK resources::       Resources for GTK widgets.
983 Emacs and Mac OS
985 * Mac Input::           Keyboard and mouse input on Mac.
986 * Mac International::   International character sets on Mac.
987 * Mac Environment Variables::  Setting environment variables for Emacs.
988 * Mac Directories::     Volumes and directories on Mac.
989 * Mac Font Specs::      Specifying fonts on Mac.
990 * Mac Functions::       Mac-specific Lisp functions.
992 Emacs and Microsoft Windows/MS-DOS
994 * Text and Binary::     Text files use CRLF to terminate lines.
995 * Windows Files::       File-name conventions on Windows.
996 * ls in Lisp::          Emulation of @code{ls} for Dired.
997 * Windows HOME::        Where Emacs looks for your @file{.emacs}.
998 * Windows Keyboard::    Windows-specific keyboard features.
999 * Windows Mouse::       Windows-specific mouse features.
1000 * Windows Processes::   Running subprocesses on Windows.
1001 * Windows Printing::    How to specify the printer on MS-Windows.
1002 * Windows Misc::        Miscellaneous Windows features.
1003 * MS-DOS::              Using Emacs on MS-DOS (otherwise known as @dfn{MS-DOG}).
1004 @end detailmenu
1005 @end menu
1007 @iftex
1008 @unnumbered Preface
1010   This manual documents the use and simple customization of the Emacs
1011 editor.  Simple Emacs customizations do not require you to be a
1012 programmer, but if you are not interested in customizing, you can
1013 ignore the customization hints.
1015   This is primarily a reference manual, but can also be used as a
1016 primer.  If you are new to Emacs, we recommend you start with
1017 the on-line, learn-by-doing tutorial, before reading the manual.  To
1018 run the tutorial, start Emacs and type @kbd{C-h t}.  The tutorial
1019 describes commands, tells you when to try them, and explains the
1020 results.
1022   On first reading, just skim chapters 1 and 2, which describe the
1023 notational conventions of the manual and the general appearance of the
1024 Emacs display screen.  Note which questions are answered in these
1025 chapters, so you can refer back later.  After reading chapter 4, you
1026 should practice the commands shown there.  The next few chapters
1027 describe fundamental techniques and concepts that are used constantly.
1028 You need to understand them thoroughly, so experiment with them
1029 until you are fluent.
1031   Chapters 14 through 19 describe intermediate-level features that are
1032 useful for many kinds of editing.  Chapter 20 and following chapters
1033 describe optional but useful features; read those chapters when you
1034 need them.
1036   Read the Trouble chapter if Emacs does not seem to be working
1037 properly.  It explains how to cope with several common problems
1038 (@pxref{Lossage}), as well as when and how to report Emacs bugs
1039 (@pxref{Bugs}).
1041   To find the documentation of a particular command, look in the index.
1042 Keys (character commands) and command names have separate indexes.
1043 There is also a glossary, with a cross reference for each term.
1045   This manual is available as a printed book and also as an Info file.
1046 The Info file is for on-line perusal with the Info program, which is
1047 the principal means of accessing on-line documentation in the GNU
1048 system.  Both the Emacs Info file and an Info reader are included with
1049 GNU Emacs.  The Info file and the printed book contain substantially
1050 the same text and are generated from the same source files, which are
1051 also distributed with GNU Emacs.
1053   GNU Emacs is a member of the Emacs editor family.  There are many
1054 Emacs editors, all sharing common principles of organization.  For
1055 information on the underlying philosophy of Emacs and the lessons
1056 learned from its development, see @cite{Emacs, the Extensible,
1057 Customizable Self-Documenting Display Editor}, available from
1058 @url{ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-519A.pdf}.
1060 This edition of the manual is intended for use with GNU Emacs
1061 installed on GNU and Unix systems.  GNU Emacs can also be used on VMS,
1062 MS-DOS (also called MS-DOG), Microsoft Windows, and Macintosh systems.
1063 Those systems use different file name syntax; in addition, VMS and
1064 MS-DOS do not support all GNU Emacs features.  @xref{Microsoft
1065 Windows}, for information about using Emacs on Windows.
1066 @xref{Mac OS}, for information about using Emacs on Macintosh.  We
1067 don't try to describe VMS usage in this manual.
1068 @end iftex
1070 @node Distrib, Intro, Top, Top
1071 @unnumbered Distribution
1073 GNU Emacs is @dfn{free software}; this means that everyone is free to
1074 use it and free to redistribute it on certain conditions.  GNU Emacs
1075 is not in the public domain; it is copyrighted and there are
1076 restrictions on its distribution, but these restrictions are designed
1077 to permit everything that a good cooperating citizen would want to do.
1078 What is not allowed is to try to prevent others from further sharing
1079 any version of GNU Emacs that they might get from you.  The precise
1080 conditions are found in the GNU General Public License that comes with
1081 Emacs and also appears in this manual@footnote{This manual is itself
1082 covered by the GNU Free Documentation License.  This license is
1083 similar in spirit to the General Public License, but is more suitable
1084 for documentation.  @xref{GNU Free Documentation License}.}.
1085 @xref{Copying}.
1087 One way to get a copy of GNU Emacs is from someone else who has it.
1088 You need not ask for our permission to do so, or tell any one else;
1089 just copy it.  If you have access to the Internet, you can get the
1090 latest distribution version of GNU Emacs by anonymous FTP; see
1091 @url{http://www.gnu.org/software/emacs} on our website for more
1092 information.
1094 You may also receive GNU Emacs when you buy a computer.  Computer
1095 manufacturers are free to distribute copies on the same terms that apply to
1096 everyone else.  These terms require them to give you the full sources,
1097 including whatever changes they may have made, and to permit you to
1098 redistribute the GNU Emacs received from them under the usual terms of the
1099 General Public License.  In other words, the program must be free for you
1100 when you get it, not just free for the manufacturer.
1102 You can also order copies of GNU Emacs from the Free Software
1103 Foundation.  This is a convenient and reliable way to get a copy; it is
1104 also a good way to help fund our work.  We also sell hardcopy versions
1105 of this manual and @cite{An Introduction to Programming in Emacs Lisp},
1106 by Robert J. Chassell.  You can find an order form on our web site at
1107 @url{http://www.gnu.org/order/order.html}.  For further information,
1108 write to
1110 @display
1111 Free Software Foundation
1112 51 Franklin Street, Fifth Floor
1113 Boston, MA 02110-1301
1115 @end display
1117 The income from distribution fees goes to support the foundation's
1118 purpose: the development of new free software, and improvements to our
1119 existing programs including GNU Emacs.
1121 If you find GNU Emacs useful, please @strong{send a donation} to the
1122 Free Software Foundation to support our work.  Donations to the Free
1123 Software Foundation are tax deductible in the US.  If you use GNU Emacs
1124 at your workplace, please suggest that the company make a donation.  If
1125 company policy is unsympathetic to the idea of donating to charity, you
1126 might instead suggest ordering a CD-ROM from the Foundation
1127 occasionally, or subscribing to periodic updates.
1129 @iftex
1130 @node Acknowledgments, Intro, Distrib, Top
1131 @unnumberedsec Acknowledgments
1133 Contributors to GNU Emacs include Jari Aalto, Per Abrahamsen, Tomas
1134 Abrahamsson, Jay K.@: Adams, Michael Albinus, Nagy Andras, Ralf
1135 Angeli, Joe Arceneaux, Miles Bader, David Bakhash, Juanma Barranquero,
1136 Eli Barzilay, Steven L.@: Baur, Jay Belanger, Alexander L.@: Belikoff,
1137 Boaz Ben-Zvi, Karl Berry, Anna M.@: Bigatti, Ray Blaak, Jim Blandy, Johan Bockg@aa{}rd,
1138 Per Bothner, Terrence Brannon, Frank Bresz, Peter Breton, Emmanuel
1139 Briot, Kevin Broadey, Vincent Broman, David M.@: Brown, Georges
1140 Brun-Cottan, Joe Buehler, W@l{}odek Bzyl, Bill Carpenter, Per
1141 Cederqvist, Hans Chalupsky, Chris Chase, Bob Chassell, Andrew Choi,
1142 Sacha Chua, James Clark, Mike Clarkson, Glynn Clements, Andrew
1143 Csillag, Doug Cutting, Mathias Dahl, Satyaki Das, Michael DeCorte,
1144 Gary Delp, Matthieu Devin, Eri Ding, Jan Dj@"{a}rv, Carsten Dominik,
1145 Scott Draves, Benjamin Drieu, Viktor Dukhovni, John Eaton, Rolf Ebert,
1146 Paul Eggert, Stephen Eglen, Torbj@"orn Einarsson, Tsugutomo Enami,
1147 Hans Henrik Eriksen, Michael Ernst, Ata Etemadi, Frederick Farnbach,
1148 Oscar Figueiredo, Fred Fish, Karl Fogel, Gary Foster, Romain
1149 Francoise, Noah Friedman, Andreas Fuchs, Hallvard Furuseth, Keith
1150 Gabryelski, Peter S.@: Galbraith, Kevin Gallagher, Kevin Gallo, Juan
1151 Le@'{o}n Lahoz Garc@'{@dotless{i}}a, Howard Gayle, Stephen Gildea, Julien
1152 Gilles, David Gillespie, Bob Glickstein, Deepak Goel, Boris Goldowsky,
1153 Michelangelo Grigni, Odd Gripenstam, Kai Gro@ss{}johann, Michael
1154 Gschwind, Henry Guillaume, Doug Gwyn, Ken'ichi Handa, Lars Hansen,
1155 Chris Hanson, K. Shane Hartman, John Heidemann, Jon K.@: Hellan,
1156 Jesper Harder, Markus Heritsch, Karl Heuer, Manabu Higashida, Anders
1157 Holst, Jeffrey C.@: Honig, Kurt Hornik, Tom Houlder, Joakim Hove,
1158 Denis Howe, Lars Ingebrigtsen, Andrew Innes, Seiichiro Inoue, Pavel
1159 Janik, Paul Jarc, Ulf Jasper, Michael K. Johnson, Kyle Jones, Terry
1160 Jones, Simon Josefsson, Arne J@o{}rgensen, Tomoji Kagatani, Brewster
1161 Kahle, Lute Kamstra, David Kastrup, David Kaufman, Henry Kautz, Taichi
1162 Kawabata, Howard Kaye, Michael Kifer, Richard King, Peter Kleiweg,
1163 Shuhei Kobayashi, Pavel Kobiakov, Larry K.@: Kolodney, David M.@:
1164 Koppelman, Koseki Yoshinori, Robert Krawitz, Sebastian Kremer, Ryszard
1165 Kubiak, Geoff Kuenning, David K@aa{}gedal, Daniel LaLiberte, Mario
1166 Lang, Aaron Larson, James R.@: Larus, Vinicius Jose Latorre, Werner
1167 Lemberg, Frederic Lepied, Peter Liljenberg, Lars Lindberg, Chris
1168 Lindblad, Anders Lindgren, Thomas Link, Juri Linkov, Francis Litterio,
1169 Emilio C. Lopes, Dave Love, Sascha L@"{u}decke, Eric Ludlam,Alan
1170 Mackenzie, Christopher J.@: Madsen, Neil M.@: Mager, Ken Manheimer,
1171 Bill Mann, Brian Marick, Simon Marshall, Bengt Martensson, Charlie
1172 Martin, Thomas May, Roland McGrath, Will Mengarini, David Megginson,
1173 Ben A. Mesander, Wayne Mesard, Brad Miller, Lawrence Mitchell, Richard
1174 Mlynarik, Gerd Moellmann, Stefan Monnier, Morioka Tomohiko, Keith
1175 Moore, Glenn Morris, Diane Murray, Sen Nagata, Erik Naggum, Thomas
1176 Neumann, Thien-Thi Nguyen, Mike Newton, Jurgen Nickelsen, Dan
1177 Nicolaescu, Hrvoje Niksic, Jeff Norden, Andrew Norman, Alexandre
1178 Oliva, Bob Olson, Michael Olson, Takaaki Ota, Pieter E.@: J.@: Pareit,
1179 David Pearson, Jeff Peck, Damon Anton Permezel, Tom Perrine, William
1180 M.@: Perry, Per Persson, Jens Petersen, Daniel Pfeiffer, Richard L.@:
1181 Pieri, Fred Pierresteguy, Christian Plaunt, David Ponce, Francesco
1182 A.@: Potorti, Michael D. Prange, Mukesh Prasad, Ken Raeburn, Marko
1183 Rahamaa, Ashwin Ram, Eric S. Raymond, Paul Reilly, Edward M. Reingold,
1184 Alex Rezinsky, Rob Riepel, David Reitter, Nick Roberts, Roland B.@:
1185 Roberts, John Robinson, Danny Roozendaal, William Rosenblatt,
1186 Guillermo J.@: Rozas, Martin Rudalics, Ivar Rummelhoff, Jason Rumney,
1187 Wolfgang Rupprecht, Kevin Ryde, James B. Salem, Masahiko Sato, Jorgen
1188 Schaefer, Holger Schauer, William Schelter, Ralph Schleicher, Gregor
1189 Schmid, Michael Schmidt, Ronald S. Schnell, Philippe Schnoebelen, Jan
1190 Schormann, Alex Schroeder, Stephen Schoef, Raymond Scholz, Randal
1191 Schwartz, Oliver Seidel, Manuel Serrano, Hovav Shacham, Stanislav
1192 Shalunov, Marc Shapiro, Richard Sharman, Olin Shivers, Espen Skoglund,
1193 Rick Sladkey, Lynn Slater, Chris Smith, David Smith, Paul D.@: Smith,
1194 Andre Spiegel, Michael Staats, William Sommerfeld, Michael Staats,
1195 Reiner Steib, Sam Steingold, Ake Stenhoff, Peter Stephenson, Ken
1196 Stevens, Jonathan Stigelman, Martin Stjernholm, Kim F.@: Storm, Steve
1197 Strassman, Olaf Sylvester, Naoto Takahashi, Steven Tamm, Jean-Philippe
1198 Theberge, Jens T.@: Berger Thielemann, Spencer Thomas, Jim Thompson,
1199 Luc Teirlinck, Tom Tromey, Enami Tsugutomo, Eli Tziperman, Daiki Ueno,
1200 Masanobu Umeda, Rajesh Vaidheeswarran, Neil W.@: Van Dyke, Didier
1201 Verna, Ulrik Vieth, Geoffrey Voelker, Johan Vromans, Inge Wallin, John
1202 Paul Wallington, Colin Walters, Barry Warsaw, Morten Welinder, Joseph
1203 Brian Wells, Rodney Whitby, John Wiegley, Ed Wilkinson, Mike Williams,
1204 Bill Wohler, Steven A. Wood, Dale R.@: Worley, Francis J.@: Wright,
1205 Felix S. T. Wu, Tom Wurgler, Katsumi Yamaoka, Masatake Yamato,
1206 Jonathan Yavner, Ryan Yeske, Chong Yidong, Ilya Zakharevich, Milan
1207 Zamazal, Victor Zandy, Eli Zaretskii, Jamie Zawinski, Shenghuo Zhu,
1208 Ian T.@: Zimmermann, Reto Zimmermann, Neal Ziring, Teodor Zlatanov,
1209 and Detlev Zundel.
1210 @end iftex
1212 @node Intro, Glossary, Distrib, Top
1213 @unnumbered Introduction
1215   You are reading about GNU Emacs, the GNU incarnation of the
1216 advanced, self-documenting, customizable, extensible editor Emacs.
1217 (The `G' in `GNU' is not silent.)
1219   We call Emacs advanced because it provides much more than simple
1220 insertion and deletion.  It can control subprocesses, indent programs
1221 automatically, show two or more files at once, and edit formatted
1222 text.  Emacs editing commands operate in terms of characters, words,
1223 lines, sentences, paragraphs, and pages, as well as expressions and
1224 comments in various programming languages.
1226   @dfn{Self-documenting} means that at any time you can type a special
1227 character, @kbd{Control-h}, to find out what your options are.  You can
1228 also use it to find out what any command does, or to find all the commands
1229 that pertain to a topic.  @xref{Help}.
1231   @dfn{Customizable} means that you can alter Emacs commands' behavior
1232 in simple ways.  For example, if you use a programming language in
1233 which comments start with @samp{<**} and end with @samp{**>}, you can
1234 tell the Emacs comment manipulation commands to use those strings
1235 (@pxref{Comments}).  Another sort of customization is rearrangement of
1236 the command set.  For example, you can rebind the basic cursor motion
1237 commands (up, down, left and right) to any keys on the keyboard that
1238 you find comfortable.  @xref{Customization}.
1240   @dfn{Extensible} means that you can go beyond simple customization
1241 and write entirely new commands---programs in the Lisp language to be
1242 run by Emacs's own Lisp interpreter.  Emacs is an ``on-line
1243 extensible'' system, which means that it is divided into many
1244 functions that call each other, any of which can be redefined in the
1245 middle of an editing session.  Almost any part of Emacs can be
1246 replaced without making a separate copy of all of Emacs.  Most of the
1247 editing commands of Emacs are written in Lisp; the few exceptions
1248 could have been written in Lisp but use C instead for efficiency.
1249 Writing an extension is programming, but non-programmers can use it
1250 afterwards.  @xref{Top, Emacs Lisp Intro, Preface, eintr, An
1251 Introduction to Programming in Emacs Lisp}, if you want to learn Emacs
1252 Lisp programming.
1254    When running on a graphical display, Emacs provides its own menus
1255 and convenient handling of mouse buttons.  In addition, Emacs provides
1256 many of the benefits of a graphical display even on a text-only
1257 terminal.  For instance, it can highlight parts of a file, display and
1258 edit several files at once, move text between files, and edit files
1259 while running shell commands.
1261 @include screen.texi
1262 @include commands.texi
1263 @include entering.texi
1264 @include basic.texi
1265 @include mini.texi
1266 @include m-x.texi
1267 @include help.texi
1268 @include mark.texi
1269 @include killing.texi
1270 @include regs.texi
1271 @include display.texi
1272 @include search.texi
1273 @include fixit.texi
1274 @include kmacro.texi
1275 @include files.texi
1276 @include buffers.texi
1277 @include windows.texi
1278 @include frames.texi
1279 @include mule.texi
1280 @include major.texi
1281 @include indent.texi
1282 @include text.texi
1283 @include programs.texi
1284 @include building.texi
1285 @include maintaining.texi
1286 @include abbrevs.texi
1287 @ifnottex
1288 @include picture-xtra.texi
1289 @end ifnottex
1290 @include sending.texi
1291 @include rmail.texi
1292 @include dired.texi
1293 @include calendar.texi
1294 @include misc.texi
1295 @include custom.texi
1296 @include trouble.texi
1298 @node Copying, GNU Free Documentation License, Service, Top
1299 @appendix GNU GENERAL PUBLIC LICENSE
1300 @c The GNU General Public License.
1301 @center Version 3, 29 June 2007
1303 @c This file is intended to be included within another document,
1304 @c hence no sectioning command or @node.  
1306 @display
1307 Copyright @copyright{} 2007 Free Software Foundation, Inc. @url{http://fsf.org/}
1309 Everyone is permitted to copy and distribute verbatim copies of this
1310 license document, but changing it is not allowed.
1311 @end display
1313 @heading Preamble
1315 The GNU General Public License is a free, copyleft license for
1316 software and other kinds of works.
1318 The licenses for most software and other practical works are designed
1319 to take away your freedom to share and change the works.  By contrast,
1320 the GNU General Public License is intended to guarantee your freedom
1321 to share and change all versions of a program---to make sure it remains
1322 free software for all its users.  We, the Free Software Foundation,
1323 use the GNU General Public License for most of our software; it
1324 applies also to any other work released this way by its authors.  You
1325 can apply it to your programs, too.
1327 When we speak of free software, we are referring to freedom, not
1328 price.  Our General Public Licenses are designed to make sure that you
1329 have the freedom to distribute copies of free software (and charge for
1330 them if you wish), that you receive source code or can get it if you
1331 want it, that you can change the software or use pieces of it in new
1332 free programs, and that you know you can do these things.
1334 To protect your rights, we need to prevent others from denying you
1335 these rights or asking you to surrender the rights.  Therefore, you
1336 have certain responsibilities if you distribute copies of the
1337 software, or if you modify it: responsibilities to respect the freedom
1338 of others.
1340 For example, if you distribute copies of such a program, whether
1341 gratis or for a fee, you must pass on to the recipients the same
1342 freedoms that you received.  You must make sure that they, too,
1343 receive or can get the source code.  And you must show them these
1344 terms so they know their rights.
1346 Developers that use the GNU GPL protect your rights with two steps:
1347 (1) assert copyright on the software, and (2) offer you this License
1348 giving you legal permission to copy, distribute and/or modify it.
1350 For the developers' and authors' protection, the GPL clearly explains
1351 that there is no warranty for this free software.  For both users' and
1352 authors' sake, the GPL requires that modified versions be marked as
1353 changed, so that their problems will not be attributed erroneously to
1354 authors of previous versions.
1356 Some devices are designed to deny users access to install or run
1357 modified versions of the software inside them, although the
1358 manufacturer can do so.  This is fundamentally incompatible with the
1359 aim of protecting users' freedom to change the software.  The
1360 systematic pattern of such abuse occurs in the area of products for
1361 individuals to use, which is precisely where it is most unacceptable.
1362 Therefore, we have designed this version of the GPL to prohibit the
1363 practice for those products.  If such problems arise substantially in
1364 other domains, we stand ready to extend this provision to those
1365 domains in future versions of the GPL, as needed to protect the
1366 freedom of users.
1368 Finally, every program is threatened constantly by software patents.
1369 States should not allow patents to restrict development and use of
1370 software on general-purpose computers, but in those that do, we wish
1371 to avoid the special danger that patents applied to a free program
1372 could make it effectively proprietary.  To prevent this, the GPL
1373 assures that patents cannot be used to render the program non-free.
1375 The precise terms and conditions for copying, distribution and
1376 modification follow.
1378 @heading TERMS AND CONDITIONS
1380 @enumerate 0
1381 @item Definitions.
1383 ``This License'' refers to version 3 of the GNU General Public License.
1385 ``Copyright'' also means copyright-like laws that apply to other kinds
1386 of works, such as semiconductor masks.
1388 ``The Program'' refers to any copyrightable work licensed under this
1389 License.  Each licensee is addressed as ``you''.  ``Licensees'' and
1390 ``recipients'' may be individuals or organizations.
1392 To ``modify'' a work means to copy from or adapt all or part of the work
1393 in a fashion requiring copyright permission, other than the making of
1394 an exact copy.  The resulting work is called a ``modified version'' of
1395 the earlier work or a work ``based on'' the earlier work.
1397 A ``covered work'' means either the unmodified Program or a work based
1398 on the Program.
1400 To ``propagate'' a work means to do anything with it that, without
1401 permission, would make you directly or secondarily liable for
1402 infringement under applicable copyright law, except executing it on a
1403 computer or modifying a private copy.  Propagation includes copying,
1404 distribution (with or without modification), making available to the
1405 public, and in some countries other activities as well.
1407 To ``convey'' a work means any kind of propagation that enables other
1408 parties to make or receive copies.  Mere interaction with a user
1409 through a computer network, with no transfer of a copy, is not
1410 conveying.
1412 An interactive user interface displays ``Appropriate Legal Notices'' to
1413 the extent that it includes a convenient and prominently visible
1414 feature that (1) displays an appropriate copyright notice, and (2)
1415 tells the user that there is no warranty for the work (except to the
1416 extent that warranties are provided), that licensees may convey the
1417 work under this License, and how to view a copy of this License.  If
1418 the interface presents a list of user commands or options, such as a
1419 menu, a prominent item in the list meets this criterion.
1421 @item Source Code.
1423 The ``source code'' for a work means the preferred form of the work for
1424 making modifications to it.  ``Object code'' means any non-source form
1425 of a work.
1427 A ``Standard Interface'' means an interface that either is an official
1428 standard defined by a recognized standards body, or, in the case of
1429 interfaces specified for a particular programming language, one that
1430 is widely used among developers working in that language.
1432 The ``System Libraries'' of an executable work include anything, other
1433 than the work as a whole, that (a) is included in the normal form of
1434 packaging a Major Component, but which is not part of that Major
1435 Component, and (b) serves only to enable use of the work with that
1436 Major Component, or to implement a Standard Interface for which an
1437 implementation is available to the public in source code form.  A
1438 ``Major Component'', in this context, means a major essential component
1439 (kernel, window system, and so on) of the specific operating system
1440 (if any) on which the executable work runs, or a compiler used to
1441 produce the work, or an object code interpreter used to run it.
1443 The ``Corresponding Source'' for a work in object code form means all
1444 the source code needed to generate, install, and (for an executable
1445 work) run the object code and to modify the work, including scripts to
1446 control those activities.  However, it does not include the work's
1447 System Libraries, or general-purpose tools or generally available free
1448 programs which are used unmodified in performing those activities but
1449 which are not part of the work.  For example, Corresponding Source
1450 includes interface definition files associated with source files for
1451 the work, and the source code for shared libraries and dynamically
1452 linked subprograms that the work is specifically designed to require,
1453 such as by intimate data communication or control flow between those
1454 subprograms and other parts of the work.
1456 The Corresponding Source need not include anything that users can
1457 regenerate automatically from other parts of the Corresponding Source.
1459 The Corresponding Source for a work in source code form is that same
1460 work.
1462 @item Basic Permissions.
1464 All rights granted under this License are granted for the term of
1465 copyright on the Program, and are irrevocable provided the stated
1466 conditions are met.  This License explicitly affirms your unlimited
1467 permission to run the unmodified Program.  The output from running a
1468 covered work is covered by this License only if the output, given its
1469 content, constitutes a covered work.  This License acknowledges your
1470 rights of fair use or other equivalent, as provided by copyright law.
1472 You may make, run and propagate covered works that you do not convey,
1473 without conditions so long as your license otherwise remains in force.
1474 You may convey covered works to others for the sole purpose of having
1475 them make modifications exclusively for you, or provide you with
1476 facilities for running those works, provided that you comply with the
1477 terms of this License in conveying all material for which you do not
1478 control copyright.  Those thus making or running the covered works for
1479 you must do so exclusively on your behalf, under your direction and
1480 control, on terms that prohibit them from making any copies of your
1481 copyrighted material outside their relationship with you.
1483 Conveying under any other circumstances is permitted solely under the
1484 conditions stated below.  Sublicensing is not allowed; section 10
1485 makes it unnecessary.
1487 @item Protecting Users' Legal Rights From Anti-Circumvention Law.
1489 No covered work shall be deemed part of an effective technological
1490 measure under any applicable law fulfilling obligations under article
1491 11 of the WIPO copyright treaty adopted on 20 December 1996, or
1492 similar laws prohibiting or restricting circumvention of such
1493 measures.
1495 When you convey a covered work, you waive any legal power to forbid
1496 circumvention of technological measures to the extent such
1497 circumvention is effected by exercising rights under this License with
1498 respect to the covered work, and you disclaim any intention to limit
1499 operation or modification of the work as a means of enforcing, against
1500 the work's users, your or third parties' legal rights to forbid
1501 circumvention of technological measures.
1503 @item Conveying Verbatim Copies.
1505 You may convey verbatim copies of the Program's source code as you
1506 receive it, in any medium, provided that you conspicuously and
1507 appropriately publish on each copy an appropriate copyright notice;
1508 keep intact all notices stating that this License and any
1509 non-permissive terms added in accord with section 7 apply to the code;
1510 keep intact all notices of the absence of any warranty; and give all
1511 recipients a copy of this License along with the Program.
1513 You may charge any price or no price for each copy that you convey,
1514 and you may offer support or warranty protection for a fee.
1516 @item Conveying Modified Source Versions.
1518 You may convey a work based on the Program, or the modifications to
1519 produce it from the Program, in the form of source code under the
1520 terms of section 4, provided that you also meet all of these
1521 conditions:
1523 @enumerate a
1524 @item 
1525 The work must carry prominent notices stating that you modified it,
1526 and giving a relevant date.
1528 @item
1529 The work must carry prominent notices stating that it is released
1530 under this License and any conditions added under section 7.  This
1531 requirement modifies the requirement in section 4 to ``keep intact all
1532 notices''.
1534 @item
1535 You must license the entire work, as a whole, under this License to
1536 anyone who comes into possession of a copy.  This License will
1537 therefore apply, along with any applicable section 7 additional terms,
1538 to the whole of the work, and all its parts, regardless of how they
1539 are packaged.  This License gives no permission to license the work in
1540 any other way, but it does not invalidate such permission if you have
1541 separately received it.
1543 @item
1544 If the work has interactive user interfaces, each must display
1545 Appropriate Legal Notices; however, if the Program has interactive
1546 interfaces that do not display Appropriate Legal Notices, your work
1547 need not make them do so.
1548 @end enumerate
1550 A compilation of a covered work with other separate and independent
1551 works, which are not by their nature extensions of the covered work,
1552 and which are not combined with it such as to form a larger program,
1553 in or on a volume of a storage or distribution medium, is called an
1554 ``aggregate'' if the compilation and its resulting copyright are not
1555 used to limit the access or legal rights of the compilation's users
1556 beyond what the individual works permit.  Inclusion of a covered work
1557 in an aggregate does not cause this License to apply to the other
1558 parts of the aggregate.
1560 @item  Conveying Non-Source Forms.
1562 You may convey a covered work in object code form under the terms of
1563 sections 4 and 5, provided that you also convey the machine-readable
1564 Corresponding Source under the terms of this License, in one of these
1565 ways:
1567 @enumerate a
1568 @item
1569 Convey the object code in, or embodied in, a physical product
1570 (including a physical distribution medium), accompanied by the
1571 Corresponding Source fixed on a durable physical medium customarily
1572 used for software interchange.
1574 @item
1575 Convey the object code in, or embodied in, a physical product
1576 (including a physical distribution medium), accompanied by a written
1577 offer, valid for at least three years and valid for as long as you
1578 offer spare parts or customer support for that product model, to give
1579 anyone who possesses the object code either (1) a copy of the
1580 Corresponding Source for all the software in the product that is
1581 covered by this License, on a durable physical medium customarily used
1582 for software interchange, for a price no more than your reasonable
1583 cost of physically performing this conveying of source, or (2) access
1584 to copy the Corresponding Source from a network server at no charge.
1586 @item
1587 Convey individual copies of the object code with a copy of the written
1588 offer to provide the Corresponding Source.  This alternative is
1589 allowed only occasionally and noncommercially, and only if you
1590 received the object code with such an offer, in accord with subsection
1593 @item
1594 Convey the object code by offering access from a designated place
1595 (gratis or for a charge), and offer equivalent access to the
1596 Corresponding Source in the same way through the same place at no
1597 further charge.  You need not require recipients to copy the
1598 Corresponding Source along with the object code.  If the place to copy
1599 the object code is a network server, the Corresponding Source may be
1600 on a different server (operated by you or a third party) that supports
1601 equivalent copying facilities, provided you maintain clear directions
1602 next to the object code saying where to find the Corresponding Source.
1603 Regardless of what server hosts the Corresponding Source, you remain
1604 obligated to ensure that it is available for as long as needed to
1605 satisfy these requirements.
1607 @item
1608 Convey the object code using peer-to-peer transmission, provided you
1609 inform other peers where the object code and Corresponding Source of
1610 the work are being offered to the general public at no charge under
1611 subsection 6d.
1613 @end enumerate
1615 A separable portion of the object code, whose source code is excluded
1616 from the Corresponding Source as a System Library, need not be
1617 included in conveying the object code work.
1619 A ``User Product'' is either (1) a ``consumer product'', which means any
1620 tangible personal property which is normally used for personal,
1621 family, or household purposes, or (2) anything designed or sold for
1622 incorporation into a dwelling.  In determining whether a product is a
1623 consumer product, doubtful cases shall be resolved in favor of
1624 coverage.  For a particular product received by a particular user,
1625 ``normally used'' refers to a typical or common use of that class of
1626 product, regardless of the status of the particular user or of the way
1627 in which the particular user actually uses, or expects or is expected
1628 to use, the product.  A product is a consumer product regardless of
1629 whether the product has substantial commercial, industrial or
1630 non-consumer uses, unless such uses represent the only significant
1631 mode of use of the product.
1633 ``Installation Information'' for a User Product means any methods,
1634 procedures, authorization keys, or other information required to
1635 install and execute modified versions of a covered work in that User
1636 Product from a modified version of its Corresponding Source.  The
1637 information must suffice to ensure that the continued functioning of
1638 the modified object code is in no case prevented or interfered with
1639 solely because modification has been made.
1641 If you convey an object code work under this section in, or with, or
1642 specifically for use in, a User Product, and the conveying occurs as
1643 part of a transaction in which the right of possession and use of the
1644 User Product is transferred to the recipient in perpetuity or for a
1645 fixed term (regardless of how the transaction is characterized), the
1646 Corresponding Source conveyed under this section must be accompanied
1647 by the Installation Information.  But this requirement does not apply
1648 if neither you nor any third party retains the ability to install
1649 modified object code on the User Product (for example, the work has
1650 been installed in ROM).
1652 The requirement to provide Installation Information does not include a
1653 requirement to continue to provide support service, warranty, or
1654 updates for a work that has been modified or installed by the
1655 recipient, or for the User Product in which it has been modified or
1656 installed.  Access to a network may be denied when the modification
1657 itself materially and adversely affects the operation of the network
1658 or violates the rules and protocols for communication across the
1659 network.
1661 Corresponding Source conveyed, and Installation Information provided,
1662 in accord with this section must be in a format that is publicly
1663 documented (and with an implementation available to the public in
1664 source code form), and must require no special password or key for
1665 unpacking, reading or copying.
1667 @item Additional Terms.
1669 ``Additional permissions'' are terms that supplement the terms of this
1670 License by making exceptions from one or more of its conditions.
1671 Additional permissions that are applicable to the entire Program shall
1672 be treated as though they were included in this License, to the extent
1673 that they are valid under applicable law.  If additional permissions
1674 apply only to part of the Program, that part may be used separately
1675 under those permissions, but the entire Program remains governed by
1676 this License without regard to the additional permissions.
1678 When you convey a copy of a covered work, you may at your option
1679 remove any additional permissions from that copy, or from any part of
1680 it.  (Additional permissions may be written to require their own
1681 removal in certain cases when you modify the work.)  You may place
1682 additional permissions on material, added by you to a covered work,
1683 for which you have or can give appropriate copyright permission.
1685 Notwithstanding any other provision of this License, for material you
1686 add to a covered work, you may (if authorized by the copyright holders
1687 of that material) supplement the terms of this License with terms:
1689 @enumerate a
1690 @item
1691 Disclaiming warranty or limiting liability differently from the terms
1692 of sections 15 and 16 of this License; or
1694 @item
1695 Requiring preservation of specified reasonable legal notices or author
1696 attributions in that material or in the Appropriate Legal Notices
1697 displayed by works containing it; or
1699 @item
1700 Prohibiting misrepresentation of the origin of that material, or
1701 requiring that modified versions of such material be marked in
1702 reasonable ways as different from the original version; or
1704 @item
1705 Limiting the use for publicity purposes of names of licensors or
1706 authors of the material; or
1708 @item
1709 Declining to grant rights under trademark law for use of some trade
1710 names, trademarks, or service marks; or
1712 @item
1713 Requiring indemnification of licensors and authors of that material by
1714 anyone who conveys the material (or modified versions of it) with
1715 contractual assumptions of liability to the recipient, for any
1716 liability that these contractual assumptions directly impose on those
1717 licensors and authors.
1718 @end enumerate
1720 All other non-permissive additional terms are considered ``further
1721 restrictions'' within the meaning of section 10.  If the Program as you
1722 received it, or any part of it, contains a notice stating that it is
1723 governed by this License along with a term that is a further
1724 restriction, you may remove that term.  If a license document contains
1725 a further restriction but permits relicensing or conveying under this
1726 License, you may add to a covered work material governed by the terms
1727 of that license document, provided that the further restriction does
1728 not survive such relicensing or conveying.
1730 If you add terms to a covered work in accord with this section, you
1731 must place, in the relevant source files, a statement of the
1732 additional terms that apply to those files, or a notice indicating
1733 where to find the applicable terms.
1735 Additional terms, permissive or non-permissive, may be stated in the
1736 form of a separately written license, or stated as exceptions; the
1737 above requirements apply either way.
1739 @item Termination.
1741 You may not propagate or modify a covered work except as expressly
1742 provided under this License.  Any attempt otherwise to propagate or
1743 modify it is void, and will automatically terminate your rights under
1744 this License (including any patent licenses granted under the third
1745 paragraph of section 11).
1747 However, if you cease all violation of this License, then your license
1748 from a particular copyright holder is reinstated (a) provisionally,
1749 unless and until the copyright holder explicitly and finally
1750 terminates your license, and (b) permanently, if the copyright holder
1751 fails to notify you of the violation by some reasonable means prior to
1752 60 days after the cessation.
1754 Moreover, your license from a particular copyright holder is
1755 reinstated permanently if the copyright holder notifies you of the
1756 violation by some reasonable means, this is the first time you have
1757 received notice of violation of this License (for any work) from that
1758 copyright holder, and you cure the violation prior to 30 days after
1759 your receipt of the notice.
1761 Termination of your rights under this section does not terminate the
1762 licenses of parties who have received copies or rights from you under
1763 this License.  If your rights have been terminated and not permanently
1764 reinstated, you do not qualify to receive new licenses for the same
1765 material under section 10.
1767 @item Acceptance Not Required for Having Copies.
1769 You are not required to accept this License in order to receive or run
1770 a copy of the Program.  Ancillary propagation of a covered work
1771 occurring solely as a consequence of using peer-to-peer transmission
1772 to receive a copy likewise does not require acceptance.  However,
1773 nothing other than this License grants you permission to propagate or
1774 modify any covered work.  These actions infringe copyright if you do
1775 not accept this License.  Therefore, by modifying or propagating a
1776 covered work, you indicate your acceptance of this License to do so.
1778 @item Automatic Licensing of Downstream Recipients.
1780 Each time you convey a covered work, the recipient automatically
1781 receives a license from the original licensors, to run, modify and
1782 propagate that work, subject to this License.  You are not responsible
1783 for enforcing compliance by third parties with this License.
1785 An ``entity transaction'' is a transaction transferring control of an
1786 organization, or substantially all assets of one, or subdividing an
1787 organization, or merging organizations.  If propagation of a covered
1788 work results from an entity transaction, each party to that
1789 transaction who receives a copy of the work also receives whatever
1790 licenses to the work the party's predecessor in interest had or could
1791 give under the previous paragraph, plus a right to possession of the
1792 Corresponding Source of the work from the predecessor in interest, if
1793 the predecessor has it or can get it with reasonable efforts.
1795 You may not impose any further restrictions on the exercise of the
1796 rights granted or affirmed under this License.  For example, you may
1797 not impose a license fee, royalty, or other charge for exercise of
1798 rights granted under this License, and you may not initiate litigation
1799 (including a cross-claim or counterclaim in a lawsuit) alleging that
1800 any patent claim is infringed by making, using, selling, offering for
1801 sale, or importing the Program or any portion of it.
1803 @item Patents.
1805 A ``contributor'' is a copyright holder who authorizes use under this
1806 License of the Program or a work on which the Program is based.  The
1807 work thus licensed is called the contributor's ``contributor version''.
1809 A contributor's ``essential patent claims'' are all patent claims owned
1810 or controlled by the contributor, whether already acquired or
1811 hereafter acquired, that would be infringed by some manner, permitted
1812 by this License, of making, using, or selling its contributor version,
1813 but do not include claims that would be infringed only as a
1814 consequence of further modification of the contributor version.  For
1815 purposes of this definition, ``control'' includes the right to grant
1816 patent sublicenses in a manner consistent with the requirements of
1817 this License.
1819 Each contributor grants you a non-exclusive, worldwide, royalty-free
1820 patent license under the contributor's essential patent claims, to
1821 make, use, sell, offer for sale, import and otherwise run, modify and
1822 propagate the contents of its contributor version.
1824 In the following three paragraphs, a ``patent license'' is any express
1825 agreement or commitment, however denominated, not to enforce a patent
1826 (such as an express permission to practice a patent or covenant not to
1827 sue for patent infringement).  To ``grant'' such a patent license to a
1828 party means to make such an agreement or commitment not to enforce a
1829 patent against the party.
1831 If you convey a covered work, knowingly relying on a patent license,
1832 and the Corresponding Source of the work is not available for anyone
1833 to copy, free of charge and under the terms of this License, through a
1834 publicly available network server or other readily accessible means,
1835 then you must either (1) cause the Corresponding Source to be so
1836 available, or (2) arrange to deprive yourself of the benefit of the
1837 patent license for this particular work, or (3) arrange, in a manner
1838 consistent with the requirements of this License, to extend the patent
1839 license to downstream recipients.  ``Knowingly relying'' means you have
1840 actual knowledge that, but for the patent license, your conveying the
1841 covered work in a country, or your recipient's use of the covered work
1842 in a country, would infringe one or more identifiable patents in that
1843 country that you have reason to believe are valid.
1845 If, pursuant to or in connection with a single transaction or
1846 arrangement, you convey, or propagate by procuring conveyance of, a
1847 covered work, and grant a patent license to some of the parties
1848 receiving the covered work authorizing them to use, propagate, modify
1849 or convey a specific copy of the covered work, then the patent license
1850 you grant is automatically extended to all recipients of the covered
1851 work and works based on it.
1853 A patent license is ``discriminatory'' if it does not include within the
1854 scope of its coverage, prohibits the exercise of, or is conditioned on
1855 the non-exercise of one or more of the rights that are specifically
1856 granted under this License.  You may not convey a covered work if you
1857 are a party to an arrangement with a third party that is in the
1858 business of distributing software, under which you make payment to the
1859 third party based on the extent of your activity of conveying the
1860 work, and under which the third party grants, to any of the parties
1861 who would receive the covered work from you, a discriminatory patent
1862 license (a) in connection with copies of the covered work conveyed by
1863 you (or copies made from those copies), or (b) primarily for and in
1864 connection with specific products or compilations that contain the
1865 covered work, unless you entered into that arrangement, or that patent
1866 license was granted, prior to 28 March 2007.
1868 Nothing in this License shall be construed as excluding or limiting
1869 any implied license or other defenses to infringement that may
1870 otherwise be available to you under applicable patent law.
1872 @item No Surrender of Others' Freedom.
1874 If conditions are imposed on you (whether by court order, agreement or
1875 otherwise) that contradict the conditions of this License, they do not
1876 excuse you from the conditions of this License.  If you cannot convey
1877 a covered work so as to satisfy simultaneously your obligations under
1878 this License and any other pertinent obligations, then as a
1879 consequence you may not convey it at all.  For example, if you agree
1880 to terms that obligate you to collect a royalty for further conveying
1881 from those to whom you convey the Program, the only way you could
1882 satisfy both those terms and this License would be to refrain entirely
1883 from conveying the Program.
1885 @item Use with the GNU Affero General Public License.
1887 Notwithstanding any other provision of this License, you have
1888 permission to link or combine any covered work with a work licensed
1889 under version 3 of the GNU Affero General Public License into a single
1890 combined work, and to convey the resulting work.  The terms of this
1891 License will continue to apply to the part which is the covered work,
1892 but the special requirements of the GNU Affero General Public License,
1893 section 13, concerning interaction through a network will apply to the
1894 combination as such.
1896 @item Revised Versions of this License.
1898 The Free Software Foundation may publish revised and/or new versions
1899 of the GNU General Public License from time to time.  Such new
1900 versions will be similar in spirit to the present version, but may
1901 differ in detail to address new problems or concerns.
1903 Each version is given a distinguishing version number.  If the Program
1904 specifies that a certain numbered version of the GNU General Public
1905 License ``or any later version'' applies to it, you have the option of
1906 following the terms and conditions either of that numbered version or
1907 of any later version published by the Free Software Foundation.  If
1908 the Program does not specify a version number of the GNU General
1909 Public License, you may choose any version ever published by the Free
1910 Software Foundation.
1912 If the Program specifies that a proxy can decide which future versions
1913 of the GNU General Public License can be used, that proxy's public
1914 statement of acceptance of a version permanently authorizes you to
1915 choose that version for the Program.
1917 Later license versions may give you additional or different
1918 permissions.  However, no additional obligations are imposed on any
1919 author or copyright holder as a result of your choosing to follow a
1920 later version.
1922 @item Disclaimer of Warranty.
1924 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
1925 APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
1926 HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM ``AS IS'' WITHOUT
1927 WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
1928 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1929 A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND
1930 PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE PROGRAM PROVE
1931 DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
1932 CORRECTION.
1934 @item Limitation of Liability.
1936 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
1937 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR
1938 CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
1939 INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
1940 ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT
1941 NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR
1942 LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM
1943 TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
1944 PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
1946 @item Interpretation of Sections 15 and 16.
1948 If the disclaimer of warranty and limitation of liability provided
1949 above cannot be given local legal effect according to their terms,
1950 reviewing courts shall apply local law that most closely approximates
1951 an absolute waiver of all civil liability in connection with the
1952 Program, unless a warranty or assumption of liability accompanies a
1953 copy of the Program in return for a fee.
1955 @end enumerate
1957 @heading END OF TERMS AND CONDITIONS
1959 @heading How to Apply These Terms to Your New Programs
1961 If you develop a new program, and you want it to be of the greatest
1962 possible use to the public, the best way to achieve this is to make it
1963 free software which everyone can redistribute and change under these
1964 terms.
1966 To do so, attach the following notices to the program.  It is safest
1967 to attach them to the start of each source file to most effectively
1968 state the exclusion of warranty; and each file should have at least
1969 the ``copyright'' line and a pointer to where the full notice is found.
1971 @smallexample
1972 @var{one line to give the program's name and a brief idea of what it does.}  
1973 Copyright (C) @var{year} @var{name of author}
1975 This program is free software: you can redistribute it and/or modify
1976 it under the terms of the GNU General Public License as published by
1977 the Free Software Foundation, either version 3 of the License, or (at
1978 your option) any later version.
1980 This program is distributed in the hope that it will be useful, but
1981 WITHOUT ANY WARRANTY; without even the implied warranty of
1982 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1983 General Public License for more details.
1985 You should have received a copy of the GNU General Public License
1986 along with this program.  If not, see @url{http://www.gnu.org/licenses/}.
1987 @end smallexample
1989 Also add information on how to contact you by electronic and paper mail.
1991 If the program does terminal interaction, make it output a short
1992 notice like this when it starts in an interactive mode:
1994 @smallexample
1995 @var{program} Copyright (C) @var{year} @var{name of author} 
1996 This program comes with ABSOLUTELY NO WARRANTY; for details type @samp{show w}.
1997 This is free software, and you are welcome to redistribute it
1998 under certain conditions; type @samp{show c} for details.
1999 @end smallexample
2001 The hypothetical commands @samp{show w} and @samp{show c} should show
2002 the appropriate parts of the General Public License.  Of course, your
2003 program's commands might be different; for a GUI interface, you would
2004 use an ``about box''.
2006 You should also get your employer (if you work as a programmer) or school,
2007 if any, to sign a ``copyright disclaimer'' for the program, if necessary.
2008 For more information on this, and how to apply and follow the GNU GPL, see
2009 @url{http://www.gnu.org/licenses/}.
2011 The GNU General Public License does not permit incorporating your
2012 program into proprietary programs.  If your program is a subroutine
2013 library, you may consider it more useful to permit linking proprietary
2014 applications with the library.  If this is what you want to do, use
2015 the GNU Lesser General Public License instead of this License.  But
2016 first, please read @url{http://www.gnu.org/philosophy/why-not-lgpl.html}.
2019 @node GNU Free Documentation License, Emacs Invocation, Copying, Top
2020 @appendix GNU Free Documentation License
2021 @include doclicense.texi
2023 @include cmdargs.texi
2024 @include xresources.texi
2026 @include anti.texi
2027 @include macos.texi
2028 @include msdog.texi
2029 @include gnu.texi
2030 @include glossary.texi
2031 @ifnottex
2032 @include ack.texi
2033 @end ifnottex
2035 @c The Option Index is produced only in the on-line version,
2036 @c because the index entries related to command-line options
2037 @c tend to point to the same pages and all begin with a dash.
2038 @c This, and the need to keep the node links consistent, are
2039 @c the reasons for the funky @iftex/@ifnottex dance below.
2040 @c The Option Index is _not_ before Key Index, because that
2041 @c would require changes in the glossary.texi's @node line.
2042 @c It is not after Concept Index for similar reasons.
2044 @iftex
2045 @node Key Index, Command Index, Glossary, Top
2046 @unnumbered Key (Character) Index
2047 @printindex ky
2048 @end iftex
2050 @ifnottex
2051 @node Key Index, Option Index, Glossary, Top
2052 @unnumbered Key (Character) Index
2053 @printindex ky
2055 @node Option Index, Command Index, Key Index, Top
2056 @unnumbered Command-Line Options Index
2057 @printindex op
2059 @node Command Index, Variable Index, Option Index, Top
2060 @unnumbered Command and Function Index
2061 @printindex fn
2062 @end ifnottex
2064 @iftex
2065 @node Command Index, Variable Index, Key Index, Top
2066 @unnumbered Command and Function Index
2067 @printindex fn
2068 @end iftex
2070 @node Variable Index, Concept Index, Command Index, Top
2071 @unnumbered Variable Index
2072 @printindex vr
2074 @node Concept Index, Acknowledgments, Variable Index, Top
2075 @unnumbered Concept Index
2076 @printindex cp
2078 @bye
2080 @ignore
2081    arch-tag: ed48740a-410b-46ea-9387-c9a9252a3392
2082 @end ignore