root/trunk/man/emacs.texi

Revision 4220, 60.1 kB (checked in by miyoshi, 6 months ago)

Sync up with Emacs22.2.

Line 
1 \input texinfo
2
3 @setfilename ../info/emacs
4 @settitle GNU Emacs Manual
5
6 @c The edition number appears in several places in this file
7 @set EDITION   Sixteenth
8 @set EMACSVER  22.2
9
10 @copying
11 This is the @value{EDITION} edition of the @cite{GNU Emacs Manual},@*
12 updated for Emacs version @value{EMACSVER}.
13
14 Copyright @copyright{} 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997,
15 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
16 Free Software Foundation, Inc.
17
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.''
27
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
33
34 @dircategory Emacs
35 @direntry
36 * Emacs: (emacs).       The extensible self-documenting text editor.
37 @end direntry
38
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
43
44 @ifset smallbook
45 @smallbook
46 @end ifset
47
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.1
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
60
61 @defcodeindex op
62 @synindex pg cp
63
64 @iftex
65 @kbdinputstyle code
66
67 @shorttitlepage GNU Emacs Manual
68 @end iftex
69
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
80
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
86
87 @sp 2
88 Cover art by Etienne Suvasa.
89
90 @end titlepage
91
92
93 @summarycontents
94 @contents
95
96
97 @ifnottex
98 @node Top, Distrib, (dir), (dir)
99 @top The Emacs Editor
100
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}.
105
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
111
112 For information on extending Emacs, see @ref{Top, Emacs Lisp,, elisp, The
113 Emacs Lisp Reference Manual}.
114 @end ifnottex
115
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
128
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
134
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::            Terms used in this manual.
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.
148
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.
155
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.
168
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.
174
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.
187
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).
194
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.
232
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.
239
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.
244
245 @detailmenu
246  --- The Detailed Node Listing ---
247  ---------------------------------
248
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:
251
252 The Organization of the Screen
253
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.
258
259 Basic Editing Commands
260
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.
273
274 The Minibuffer
275
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.
281
282 Completion
283
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.
288
289 Help
290
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')
301
302 The Mark and the Region
303
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.
312
313 Killing and Moving Text
314
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.
322
323 Yanking
324
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.
328
329 Registers
330
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.
338
339 Controlling the Display
340
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.
359
360 Searching and Replacement
361
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.
372
373 Incremental Search
374
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.
385
386 Replacement Commands
387
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.
392
393 Commands for Fixing Typos
394
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.
400
401 Keyboard Macros
402
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.
411
412 File Handling
413
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.
433
434 Saving Files
435
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.
443
444 Backup Files
445
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.
450
451 Auto-Saving: Protection Against Disasters
452
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.
457
458 Version Control
459
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.
470
471 Using Multiple Buffers
472
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.
482
483 Multiple Windows
484
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.
493
494 Frames and Graphical Displays
495
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.
516
517 International Character Set Support
518
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.
542
543 Major Modes
544
545 * Choosing Modes::      How major modes are specified or chosen.
546
547 Indentation
548
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.
553
554 Commands for Human Languages
555
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.
569
570 Filling Text
571
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.
579
580 Outline Mode
581
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.
588
589 @TeX{} Mode
590
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.
595
596 Editing Formatted Text
597
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.
609
610 Editing Text-based Tables
611
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.
623
624 Editing Programs
625
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.
641
642 Top-Level Definitions, or Defuns
643
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.
649
650 Indentation for Programs
651
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.
657
658 Commands for Editing with Parentheses
659
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.
664
665 Manipulating Comments
666
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.
670
671 Documentation Lookup
672
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.
677
678 C and Related Modes
679
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.
685
686 Compiling and Testing Programs
687
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.
703
704 Running Debuggers Under Emacs
705
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.
713
714 Maintaining Large Programs
715
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.
721
722 Tags Tables
723
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.
731
732 Abbrevs
733
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.
741
742 @ifnottex
743 Editing Pictures
744
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
751
752 Sending Mail
753
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.
760
761 Reading Mail with Rmail
762
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
785
786 Dired, the Directory Editor
787
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.
808
809 The Calendar and the Diary
810
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.
826
827 Movement in the Calendar
828
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.
833
834 Conversion To and From Other Calendars
835
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.
841
842 The Diary
843
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.
849
850 Gnus
851
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.
855
856 Running Shell Commands from Emacs
857
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.
869
870 Using Emacs as a Server
871
872 * Invoking emacsclient:: Emacs client startup options.
873
874 Printing Hard Copies
875
876 * PostScript::           Printing buffers or regions as PostScript.
877 * PostScript Variables:: Customizing the PostScript printing commands.
878 * Printing Package::     An optional advanced printing interface.
879
880 Hyperlinking and Navigation Features
881
882 * Browse-URL::          Following URLs.
883 * Goto-address::        Activating URLs.
884 * FFAP::                Finding files etc. at point.
885
886 Customization
887
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.
900
901 Variables
902
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.
908
909 Customizing Key Bindings
910
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.
923
924 The Init File, @file{~/.emacs}
925
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.
931
932 Dealing with Emacs Trouble
933
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.
943
944 Reporting Bugs
945
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.
950
951 Command Line Arguments for Emacs Invocation
952
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.
967
968 Environment Variables
969
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.
973
974 X Options and Resources
975
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.
982
983 Emacs and Mac OS
984
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.
991
992 Emacs and Microsoft Windows/MS-DOS
993
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
1006
1007 @iftex
1008 @unnumbered Preface
1009
1010   This manual documents the use and simple customization of the Emacs
10