[Top] [Contents] [Index] [Search] [Page Top / Page Bottom] [?]

GNU Emacs Manual

download this manual file.

Emacs is the extensible, customizable, self-documenting real-time display editor. This Info file describes how to edit with Emacs and some of how to customize it; it corresponds to GNU Emacs version 23.0.50.

To learn more about the Info documentation system, type h, and Emacs will take you to a programmed instruction sequence for the Info commands.

For information on extending Emacs, see section `Top' in

The Emacs Lisp Reference Manual

Distribution    How to get the latest Emacs distribution.
A. GNU GENERAL PUBLIC LICENSE    The GNU General Public License gives you permission to redistribute GNU Emacs on certain terms; it also explains that there is no warranty.
B. GNU Free Documentation License    The license for this documentation.
Introduction    An introduction to Emacs concepts.
Glossary    Terms used in this manual.
E. Emacs 21 Antinews    Information about Emacs version 21.
F. Emacs and Mac OS    Using Emacs in the Mac.
G. Emacs and Microsoft Windows/MS-DOS    Using Emacs on Microsoft Windows and MS-DOS.
The GNU Manifesto    What's GNU? Gnu's Not Unix!
Acknowledgments    Major contributors to GNU Emacs.

Indexes (each index contains a large menu)
Key (Character) Index    An item for each standard Emacs key sequence.
Command-Line Options Index    An item for every command-line option.
Command and Function Index    An item for each command name.
Variable Index    An item for each documented variable.
Concept Index    An item for each concept.

Important General Concepts
1. The Organization of the Screen    How to interpret what you see on the screen.
2. Kinds of User Input    Kinds of input events (characters, buttons, function keys).
3. Keys    Key sequences: what you type to request one editing action.
4. Keys and Commands    Named functions run by key sequences to do editing.
5. Character Set for Text    Character set for text (the contents of buffers and strings).
6. Entering and Exiting Emacs    Starting Emacs from the shell.
7. Exiting Emacs    Stopping or killing Emacs.
C. Command Line Arguments for Emacs Invocation    Hairy startup options.

Fundamental Editing Commands
8. Basic Editing Commands    The most basic editing commands.
9. The Minibuffer    Entering arguments that are prompted for.
10. Running Commands by Name    Invoking commands by their names.
11. Help    Commands for asking Emacs about its commands.

Important Text-Changing Commands
12. The Mark and the Region    The mark: how to delimit a "region" of text.
13. Killing and Moving Text    Killing (cutting) text.
14. Yanking    Recovering killed text. Moving text. (Pasting.)
15. Accumulating Text    Other ways of copying text.
16. Rectangles    Operating on the text inside a rectangle on the screen.
18. Registers    Saving a text string or a location in the buffer.
19. Controlling the Display    Controlling what text is displayed.
20. Searching and Replacement    Finding or replacing occurrences of a string.
21. Commands for Fixing Typos    Commands especially useful for fixing typos.
22. Keyboard Macros    A keyboard macro records a sequence of keystrokes to be replayed with a single command.

Major Structures of Emacs
23. File Handling    All about handling files.
24. Using Multiple Buffers    Multiple buffers; editing several files at once.
25. Multiple Windows    Viewing two pieces of text at once.
26. Frames and Graphical Displays    Running the same Emacs session in multiple X windows.
27. International Character Set Support    Using non-ASCII character sets (the MULE features).

Advanced Features
28. Major Modes    Text mode vs. Lisp mode vs. C mode ...
29. Indentation    Editing the white space at the beginnings of lines.
30. Commands for Human Languages    Commands and modes for editing English.
31. Editing Programs    Commands and modes for editing programs.
32. Compiling and Testing Programs    Compiling, running and debugging programs.
33. Maintaining Large Programs    Features for maintaining large programs.
34. Abbrevs    How to define text abbreviations to reduce the number of characters you must type.
35. Editing Pictures    Editing pictures made up of characters using the quarter-plane screen model.
36. Sending Mail    Sending mail in Emacs.
37. Reading Mail with Rmail    Reading mail in Emacs.
38. Dired, the Directory Editor    You can "edit" a directory to manage files in it.
39. The Calendar and the Diary    The calendar and diary facilities.
40. Gnus    How to read netnews with Emacs.
41. Running Shell Commands from Emacs    Executing shell commands from Emacs.
42. Using Emacs as a Server    Using Emacs as an editing server for mail, etc.
43. Printing Hard Copies    Printing hardcopies of buffers or regions.
47. Sorting Text    Sorting lines, paragraphs or pages within Emacs.
48. Narrowing    Restricting display and editing to a portion of the buffer.
49. Two-Column Editing    Splitting apart columns to edit them in side-by-side windows.
50. Editing Binary Files    Using Hexl mode to edit binary files.
51. Saving Emacs Sessions    Saving Emacs state from one session to the next.
52. Recursive Editing Levels    A command can allow you to do editing
  "within the command".  This is called a
  "recursive editing level".
53. Emulation    Emulating some other editors with Emacs.
54. Hyperlinking and Navigation Features    Following links in buffers.
55. Dissociated Press    Dissociating text for fun.
56. Other Amusements    Various games and hacks.
57. Customization    Modifying the behavior of Emacs.
D. X Options and Resources    X resources for customizing Emacs.

Recovery from Problems
58. Quitting and Aborting    Quitting and aborting.
59. Dealing with Emacs Trouble    What to do if Emacs is hung or malfunctioning.
60. Reporting Bugs    How and when to report a bug.
61. Contributing to Emacs Development    How to contribute improvements to Emacs.
62. How To Get Help with GNU Emacs    How to get help for your own Emacs needs.

 -- The Detailed Node Listing ---

Here are some other nodes which are really inferiors of the ones
already listed, mentioned here so you can get to them in one step:

The Organization of the Screen

1.1 Point    The place in the text where editing commands operate.
1.2 The Echo Area    Short messages appear at the bottom of the screen.
1.3 The Mode Line    Interpreting the mode line.
1.4 The Menu Bar    How to use the menu bar.

Basic Editing Commands

8.1 Inserting Text    Inserting text by simply typing it.
8.2 Changing the Location of Point    How to move the cursor to the place where you want to change something.
8.3 Erasing Text    Deleting and killing text.
8.4 Undoing Changes    Undoing recent changes in the text.
8.5 Files    Visiting, creating, and saving files.
8.6 Help    Asking what a character does.
8.7 Blank Lines    Commands to make or delete blank lines.
8.8 Continuation Lines    Lines too wide for the screen.
8.9 Cursor Position Information    What page, line, row, or column is point on?
8.10 Numeric Arguments    Numeric arguments for repeating a command.
8.11 Repeating a Command    A short-cut for repeating the previous command.

The Minibuffer

9.1 Minibuffers for File Names    Entering file names with the minibuffer.
9.2 Editing in the Minibuffer    How to edit in the minibuffer.
9.3 Completion    An abbreviation facility for minibuffer input.
9.4 Minibuffer History    Reusing recent minibuffer arguments.
9.5 Repeating Minibuffer Commands    Re-executing commands that used the minibuffer.


9.3.1 Completion Example    Examples of using completion.
9.3.2 Completion Commands    A list of completion commands.
9.3.3 Strict Completion    Different types of completion.
9.3.4 Completion Options    Options for completion.


11.1 Help Summary    Brief list of all Help commands.
11.2 Documentation for a Key    Asking what a key does in Emacs.
11.3 Help by Command or Variable Name    Asking about a command, variable or function name.
11.4 Apropos    Asking what pertains to a given topic.
11.5 Help Mode Commands    Special features of Help mode and Help buffers.
11.6 Keyword Search for Lisp Libraries    Finding Lisp libraries by keywords (topics).
11.7 Help for International Language Support    Help relating to international language support.
11.8 Other Help Commands    Other help commands.
11.9 Help Files    Commands to display pre-written help files.
11.10 Help on Active Text and Tooltips    Help on active text and tooltips (`balloon help')

The Mark and the Region

12.1 Setting the Mark    Commands to set the mark.
12.2 Transient Mark Mode    How to make Emacs highlight the region-- when there is one.
12.3 Using Transient Mark Mode Momentarily    Enabling Transient Mark mode momentarily.
12.4 Operating on the Region    Summary of ways to operate on contents of the region.
12.5 Commands to Mark Textual Objects    Commands to put region around textual units.
12.6 The Mark Ring    Previous mark positions saved so you can go back there.
12.7 The Global Mark Ring    Previous mark positions in various buffers.

Killing and Moving Text

13.1 Deletion    Commands for deleting small amounts of text and blank areas.
13.2 Killing by Lines    How to kill entire lines of text at one time.
13.3 Other Kill Commands    Commands to kill large regions of text and syntactic units such as words and sentences.
17. CUA Bindings    Using C-x, C-c, C-v for copy and paste, with enhanced rectangle support.


14.1 The Kill Ring    Where killed text is stored. Basic yanking.
14.2 Appending Kills    Several kills in a row all yank together.
14.3 Yanking Earlier Kills    Yanking something killed some time ago.


18.1 Saving Positions in Registers    Saving positions in registers.
18.2 Saving Text in Registers    Saving text in registers.
18.3 Saving Rectangles in Registers    Saving rectangles in registers.
18.4 Saving Window Configurations in Registers    Saving window configurations in registers.
18.5 Keeping Numbers in Registers    Numbers in registers.
18.6 Keeping File Names in Registers    File names in registers.
18.7 Bookmarks    Bookmarks are like registers, but persistent.

Controlling the Display

19.1 Scrolling    Moving text up and down in a window.
19.2 Automatic Scrolling    Redisplay scrolls text automatically when needed.
19.3 Horizontal Scrolling    Moving text left and right in a window.
19.4 Follow Mode    Follow mode lets two windows scroll as one.
19.5 Faces: Controlling Text Display Style    How to change the display style using faces.
19.6 Standard Faces    Emacs' predefined faces.
19.7 Font Lock mode    Minor mode for syntactic highlighting using faces.
19.8 Interactive Highlighting    Tell Emacs what text to highlight.
19.9 Window Fringes    Enabling or disabling window fringes.
19.10 Displaying Boundaries    Displaying top and bottom of the buffer.
19.11 Useless Whitespace    Showing possibly-spurious trailing whitespace.
19.12 Selective Display    Hiding lines with lots of indentation.
19.13 Optional Mode Line Features    Optional mode line display features.
19.14 How Text Is Displayed    How text characters are normally displayed.
19.15 Displaying the Cursor    Features for displaying the cursor.
19.16 Truncation of Lines    Truncating lines to fit the screen width instead of continuing them to multiple screen lines.
19.17 Customization of Display    Information on variables for customizing display.

Searching and Replacement

20.1 Incremental Search    Search happens as you type the string.
20.2 Nonincremental Search    Specify entire string and then search.
20.3 Word Search    Search for sequence of words.
20.4 Regular Expression Search    Search for match for a regexp.
20.5 Syntax of Regular Expressions    Syntax of regular expressions.
20.6 Backslash in Regular Expressions    Regular expression constructs starting with `\'.
20.7 Regular Expression Example    A complex regular expression explained.
20.8 Searching and Case    To ignore case while searching, or not.
20.9 Replacement Commands    Search, and replace some or all matches.
20.10 Other Search-and-Loop Commands    Operating on all matches for some regexp.

Incremental Search

20.1.1 Basics of Incremental Search    Basic incremental search commands.
20.1.2 Repeating Incremental Search    Searching for the same string again.
20.1.3 Errors in Incremental Search    When your string is not found.
20.1.4 Special Input for Incremental Search    Special input in incremental search.
20.1.5 Isearch for Non-ASCII Characters    How to search for non-ASCII characters.
20.1.6 Isearch Yanking    Commands that grab text into the search string or else edit the search string.
20.1.7 Lazy Search Highlighting    Isearch highlights the other possible matches.
20.1.8 Scrolling During Incremental Search    Scrolling during an incremental search.
20.1.9 Slow Terminal Incremental Search    Incremental search features for slow terminals.

Replacement Commands

20.9.1 Unconditional Replacement    Replacing all matches for a string.
20.9.2 Regexp Replacement    Replacing all matches for a regexp.
20.9.3 Replace Commands and Case    How replacements preserve case of letters.
20.9.4 Query Replace    How to use querying.

Commands for Fixing Typos

21.1 Undo    Full details of Emacs undo commands.
21.2 Killing Your Mistakes    Commands to kill a batch of recently entered text.
21.3 Transposing Text    Exchanging two characters, words, lines, lists...
21.4 Case Conversion    Correcting case of last word entered.
21.5 Checking and Correcting Spelling    Apply spelling checker to a word or a whole buffer.

Keyboard Macros

22.1 Basic Use    Defining and running keyboard macros.
22.2 The Keyboard Macro Ring    Where previous keyboard macros are saved.
22.3 The Keyboard Macro Counter    Inserting incrementing numbers in macros.
22.4 Executing Macros with Variations    Making keyboard macros do different things each time.
22.5 Naming and Saving Keyboard Macros    Giving keyboard macros names; saving them in files.
22.6 Editing a Keyboard Macro    Editing keyboard macros.
22.7 Stepwise Editing a Keyboard Macro    Interactively executing and editing a keyboard macro.

File Handling

23.1 File Names    How to type and edit file-name arguments.
23.2 Visiting Files    Visiting a file prepares Emacs to edit the file.
23.3 Saving Files    Saving makes your changes permanent.
23.4 Reverting a Buffer    Reverting cancels all the changes not saved.
23.5 Auto Reverting non-file Buffers    Auto Reverting non-file buffers.
23.6 Auto-Saving: Protection Against Disasters    Auto Save periodically protects against loss of data.
23.7 File Name Aliases    Handling multiple names for one file.
23.8 Version Control    Version control systems (RCS, CVS and SCCS).
23.9 File Directories    Creating, deleting, and listing file directories.
23.10 Comparing Files    Finding where two files differ.
23.11 Diff Mode    Editing diff output.
23.12 Miscellaneous File Operations    Other things you can do on files.
23.13 Accessing Compressed Files    Accessing compressed files.
23.14 File Archives    Operating on tar, zip, jar etc. archive files.
23.15 Remote Files    Accessing files on other sites.
23.16 Quoted File Names    Quoting special characters in file names.
23.17 File Name Cache    Completion against a list of files you often use.
23.18 Convenience Features for Finding Files   
23.19 Filesets    Handling sets of files.

Saving Files

23.3.1 Commands for Saving Files    Commands for saving files.
23.3.2 Backup Files    How Emacs saves the old version of your file.
23.3.3 Customizing Saving of Files    Customizing the saving of files.
23.3.4 Protection against Simultaneous Editing    How Emacs protects against simultaneous editing of one file by two users.
23.3.5 Shadowing Files    Copying files to "shadows" automatically.
23.3.6 Updating Time Stamps Automatically    Emacs can update time stamps on saved files.

Backup Files Numbered Backups    Whether to make one backup file or many. Single or Numbered Backups    How backup files are named. Automatic Deletion of Backups    Emacs deletes excess numbered backups. Copying vs. Renaming    Backups can be made by copying or renaming.

Auto-Saving: Protection Against Disasters

23.6.1 Auto-Save Files    The file where auto-saved changes are actually made until you save the file.
23.6.2 Controlling Auto-Saving    Controlling when and how often to auto-save.
23.6.3 Recovering Data from Auto-Saves    Recovering text from auto-save files.

Version Control

23.8.1 Introduction to Version Control    How version control works in general.
23.8.2 Version Control and the Mode Line    How the mode line shows version control status.
23.8.3 Basic Editing under Version Control    How to edit a file under version control.
23.8.4 Examining And Comparing Old Revisions    Examining and comparing old revisions of files.
23.8.5 The Secondary Commands of VC    The commands used a little less frequently.
23.8.6 Multiple Branches of a File    Multiple lines of development.
23.8.7 Remote Repositories    Efficient access to remote CVS servers.
23.8.8 Snapshots    Sets of file versions treated as a unit.
23.8.9 Miscellaneous Commands and Features of VC    Various other commands and features of VC.
23.8.10 Customizing VC    Variables that change VC's behavior.

Using Multiple Buffers

24.1 Creating and Selecting Buffers    Creating a new buffer or reselecting an old one.
24.2 Listing Existing Buffers    Getting a list of buffers that exist.
24.3 Miscellaneous Buffer Operations    Renaming; changing read-onliness; copying text.
24.4 Killing Buffers    Killing buffers you no longer need.
24.5 Operating on Several Buffers    How to go through the list of all buffers and operate variously on several of them.
24.6 Indirect Buffers    An indirect buffer shares the text of another buffer.
24.7 Convenience Features and Customization of Buffer Handling    Convenience and customization features for buffer handling.

Multiple Windows

25.1 Concepts of Emacs Windows    Introduction to Emacs windows.
25.2 Splitting Windows    New windows are made by splitting existing windows.
25.3 Using Other Windows    Moving to another window or doing something to it.
25.4 Displaying in Another Window    Finding a file or buffer in another window.
25.5 Forcing Display in the Same Window    Forcing certain buffers to appear in the selected window rather than in another window.
25.6 Deleting and Rearranging Windows    Deleting windows and changing their sizes.
25.7 Window Handling Convenience Features and Customization    Convenience functions for window handling.

Frames and Graphical Displays

26.1 Killing and Yanking on Graphical Displays    Mouse commands for cut and paste.
26.2 Following References with the Mouse    Using the mouse to select an item from a list.
26.3 Mouse Clicks for Menus    Mouse clicks that bring up menus.
26.4 Mode Line Mouse Commands    Mouse clicks on the mode line.
26.5 Creating Frames    Creating additional Emacs frames with various contents.
26.6 Frame Commands    Iconifying, deleting, and switching frames.
26.7 Speedbar Frames    How to make and use a speedbar frame.
26.8 Multiple Displays    How one Emacs job can talk to several displays.
26.9 Special Buffer Frames    You can make certain buffers have their own frames.
26.10 Setting Frame Parameters    Changing the colors and other modes of frames.
26.11 Scroll Bars    How to enable and disable scroll bars; how to use them.
26.12 Scrolling With "Wheeled" Mice    Using mouse wheels for scrolling.
26.13 Drag and Drop    Using drag and drop to open files and insert text.
26.14 Menu Bars    Enabling and disabling the menu bar.
26.15 Tool Bars    Enabling and disabling the tool bar.
26.16 Using Dialog Boxes    Controlling use of dialog boxes.
26.17 Tooltips    Showing "tooltips", AKA "balloon help" for active text.
26.18 Mouse Avoidance    Moving the mouse pointer out of the way.
26.19 Non-Window Terminals    Multiple frames on terminals that show only one.
26.20 Using a Mouse in Terminal Emulators    Using the mouse in text-only terminals.

International Character Set Support

27.1 Introduction to International Character Sets    Basic concepts of multibyte characters.
27.2 Enabling Multibyte Characters    Controlling whether to use multibyte characters.
27.3 Language Environments    Setting things up for the language you use.
27.4 Input Methods    Entering text characters not on your keyboard.
27.5 Selecting an Input Method    Specifying your choice of input methods.
27.6 Unibyte and Multibyte Non-ASCII characters    How single-byte characters convert to multibyte.
27.7 Coding Systems    Character set conversion when you read and write files, and so on.
27.8 Recognizing Coding Systems    How Emacs figures out which conversion to use.
27.9 Specifying a File's Coding System    Specifying a file's coding system explicitly.
27.10 Choosing Coding Systems for Output    Choosing coding systems for output.
27.11 Specifying a Coding System for File Text    Choosing conversion to use for file text.
27.12 Coding Systems for Interprocess Communication    Coding systems for interprocess communication.
27.13 Coding Systems for File Names    Coding systems for file names.
27.14 Coding Systems for Terminal I/O    Specifying coding systems for converting terminal input and output.
27.15 Fontsets    Fontsets are collections of fonts that cover the whole spectrum of characters.
27.16 Defining fontsets    Defining a new fontset.
27.17 Undisplayable Characters    When characters don't display.
27.18 Unibyte Editing Mode    You can pick one European character set to use without multibyte characters.
27.19 Charsets    How Emacs groups its internal character codes.

Major Modes

28.1 How Major Modes are Chosen    How major modes are specified or chosen.


29.1 Indentation Commands and Techniques    Various commands and techniques for indentation.
29.2 Tab Stops    You can set arbitrary "tab stops" and then indent to the next tab stop when you want to.
29.3 Tabs vs. Spaces    You can request indentation using just spaces.

Commands for Human Languages

30.1 Words    Moving over and killing words.
30.2 Sentences    Moving over and killing sentences.
30.3 Paragraphs    Moving over paragraphs.
30.4 Pages    Moving over pages.
30.5 Filling Text    Filling or justifying text.
30.6 Case Conversion Commands    Changing the case of text.
30.7 Text Mode    The major modes for editing text files.
30.8 Outline Mode    Editing outlines.
30.9 TeX Mode    Editing input to the formatter TeX.
30.10 SGML, XML, and HTML Modes    Editing HTML, SGML, and XML files.
30.11 Nroff Mode    Editing input to the formatter nroff.
30.12 Editing Formatted Text    Editing formatted text directly in WYSIWYG fashion.
30.13 Editing Text-based Tables    Editing text-based tables in WYSIWYG fashion.

Filling Text

30.5.1 Auto Fill Mode    Auto Fill mode breaks long lines automatically.
30.5.5 Refill Mode    Keeping paragraphs filled.
30.5.2 Explicit Fill Commands    Commands to refill paragraphs and center lines.
30.5.3 The Fill Prefix    Filling paragraphs that are indented or in a comment, etc.
30.5.4 Adaptive Filling    How Emacs can determine the fill prefix automatically.
30.5.6 Long Lines Mode    Editing text with very long lines.

Outline Mode

30.8.1 Format of Outlines    What the text of an outline looks like.
30.8.2 Outline Motion Commands    Special commands for moving through outlines.
30.8.3 Outline Visibility Commands    Commands to control what is visible.
30.8.4 Viewing One Outline in Multiple Views    Outlines and multiple views.
30.8.5 Folding Editing    Folding means zooming in on outlines.

TeX Mode

30.9.1 TeX Editing Commands    Special commands for editing in TeX mode.
30.9.2 LaTeX Editing Commands    Additional commands for LaTeX input files.
30.9.3 TeX Printing Commands    Commands for printing part of a file with TeX.
30.9.4 TeX Mode Miscellany    Customization of TeX mode, and related features.

Editing Formatted Text

30.12.1 Requesting to Edit Formatted Text    Entering and exiting Enriched mode.
30.12.2 Hard and Soft Newlines    There are two different kinds of newlines.
30.12.3 Editing Format Information    How to edit text properties.
30.12.4 Faces in Formatted Text    Bold, italic, underline, etc.
30.12.5 Colors in Formatted Text    Changing the color of text.
30.12.6 Indentation in Formatted Text    Changing the left and right margins.
30.12.7 Justification in Formatted Text    Centering, setting text flush with the left or right margin, etc.
30.12.8 Setting Other Text Properties    The "special" text properties submenu.
30.12.9 Forcing Enriched Mode    How to force use of Enriched mode.

Editing Text-based Tables

30.13.1 What is a Text-based Table?    What is a text based table.
30.13.2 How to Create a Table?    How to create a table.
30.13.3 Table Recognition    How to activate and deactivate tables.
30.13.4 Commands for Table Cells    Cell-oriented commands in a table.
30.13.5 Cell Justification    Justifying cell contents.
30.13.6 Commands for Table Rows    Manipulating rows of table cell.
30.13.7 Commands for Table Columns    Manipulating columns of table cell.
30.13.8 Fix Width of Cells    Fixing cell width.
30.13.9 Conversion Between Plain Text and Tables    Converting between plain text and tables.
30.13.10 Analyzing Table Dimensions    Analyzing table dimension.
30.13.11 Table Miscellany    Table miscellany.

Editing Programs

31.1 Major Modes for Programming Languages    Major modes for editing programs.
31.2 Top-Level Definitions, or Defuns    Commands to operate on major top-level parts of a program.
31.3 Indentation for Programs    Adjusting indentation to show the nesting.
31.4 Commands for Editing with Parentheses    Commands that operate on parentheses.
31.5 Manipulating Comments    Inserting, killing, and aligning comments.
31.6 Documentation Lookup    Getting documentation of functions you plan to call.
31.7 Hideshow minor mode    Displaying blocks selectively.
31.8 Completion for Symbol Names    Completion on symbol names of your program or language.
31.9 Glasses minor mode    Making identifiersLikeThis more readable.
31.10 Other Features Useful for Editing Programs    Other Emacs features useful for editing programs.
31.11 C and Related Modes    Special commands of C, C++, Objective-C, Java, and Pike modes.
31.12 Asm Mode    Asm mode and its special features.
31.13 Fortran Mode    Fortran mode and its special features.

Top-Level Definitions, or Defuns

31.2.1 Left Margin Convention    An open-paren or similar opening delimiter starts a defun if it is at the left margin.
31.2.2 Moving by Defuns    Commands to move over or mark a major definition.
31.2.3 Imenu    Making buffer indexes as menus.
31.2.4 Which Function Mode    Which Function mode shows which function you are in.

Indentation for Programs

31.3.1 Basic Program Indentation Commands    Indenting a single line.
31.3.2 Indenting Several Lines    Commands to reindent many lines at once.
31.3.3 Customizing Lisp Indentation    Specifying how each Lisp function should be indented.
31.3.4 Commands for C Indentation    Extra features for indenting C and related modes.
31.3.5 Customizing C Indentation    Controlling indentation style for C and related modes.

Commands for Editing with Parentheses

31.4.1 Expressions with Balanced Parentheses    Expressions with balanced parentheses.
31.4.2 Moving in the Parenthesis Structure    Commands for moving up, down and across in the structure of parentheses.
31.4.3 Automatic Display Of Matching Parentheses    Insertion of a close-delimiter flashes matching open.

Manipulating Comments

31.5.1 Comment Commands    Inserting, killing, and aligning comments.
31.5.2 Multiple Lines of Comments    Commands for adding and editing multi-line comments.
31.5.3 Options Controlling Comments    Customizing the comment features.

Documentation Lookup

31.6.1 Info Documentation Lookup    Looking up library functions and commands in Info files.
31.6.2 Man Page Lookup    Looking up man pages of library functions and commands.
31.6.3 Emacs Lisp Documentation Lookup    Looking up Emacs Lisp functions, etc.

C and Related Modes

31.11.1 C Mode Motion Commands    Commands to move by C statements, etc.
31.11.2 Electric C Characters    Colon and other chars can automatically reindent.
31.11.3 Hungry Delete Feature in C    A more powerful DEL command.
31.11.4 Other Commands for C Mode    Filling comments, viewing expansion of macros, and other neat features.

Compiling and Testing Programs

32.1 Running Compilations under Emacs    Compiling programs in languages other than Lisp (C, Pascal, etc.).
32.2 Compilation Mode    The mode for visiting compiler errors.
32.3 Subshells for Compilation    Customizing your shell properly for use in the compilation buffer.
32.4 Searching with Grep under Emacs    Searching with grep.
32.5 Finding Syntax Errors On The Fly    Finding syntax errors on the fly.
32.6 Running Debuggers Under Emacs    Running symbolic debuggers for non-Lisp programs.
32.7 Executing Lisp Expressions    Various modes for editing Lisp programs, with different facilities for running the Lisp programs.
32.8 Libraries of Lisp Code for Emacs    Creating Lisp programs to run in Emacs.
32.9 Evaluating Emacs Lisp Expressions    Executing a single Lisp expression in Emacs.
32.10 Lisp Interaction Buffers    Executing Lisp in an Emacs buffer.
32.11 Running an External Lisp    Communicating through Emacs with a separate Lisp.

Running Debuggers Under Emacs

32.6.1 Starting GUD    How to start a debugger subprocess.
32.6.2 Debugger Operation    Connection between the debugger and source buffers.
32.6.3 Commands of GUD    Key bindings for common commands.
32.6.4 GUD Customization    Defining your own commands for GUD.
32.6.5 GDB Graphical Interface    An enhanced mode that uses GDB features to implement a graphical debugging environment through Emacs.

Maintaining Large Programs

33.1 Change Logs    Maintaining a change history for your program.
33.2 Format of ChangeLog    What the change log file looks like.
33.3 Tags Tables    Go direct to any function in your program in one command. Tags remembers which file it is in.
33.4 Merging Files with Emerge    A convenient way of merging two versions of a program.

Tags Tables

33.3.1 Source File Tag Syntax    Tag syntax for various types of code and text files.
33.3.2 Creating Tags Tables    Creating a tags table with etags.
33.3.3 Etags Regexps    Create arbitrary tags using regular expressions.
33.3.4 Selecting a Tags Table    How to visit a tags table.
33.3.5 Finding a Tag    Commands to find the definition of a specific tag.
33.3.6 Searching and Replacing with Tags Tables    Using a tags table for searching and replacing.
33.3.7 Tags Table Inquiries    Listing and finding tags defined in a file.


34.1 Abbrev Concepts    Fundamentals of defined abbrevs.
34.2 Defining Abbrevs    Defining an abbrev, so it will expand when typed.
34.3 Controlling Abbrev Expansion    Controlling expansion: prefixes, canceling expansion.
34.4 Examining and Editing Abbrevs    Viewing or editing the entire list of defined abbrevs.
34.5 Saving Abbrevs    Saving the entire list of abbrevs for another session.
34.6 Dynamic Abbrev Expansion    Abbreviations for words already in the buffer.
34.7 Customizing Dynamic Abbreviation    What is a word, for dynamic abbrevs. Case handling.

Editing Pictures

35.1 Basic Editing in Picture Mode    Basic concepts and simple commands of Picture Mode.
35.2 Controlling Motion after Insert    Controlling direction of cursor motion after "self-inserting" characters.
35.3 Picture Mode Tabs    Various features for tab stops and indentation.
35.4 Picture Mode Rectangle Commands    Clearing and superimposing rectangles.

Sending Mail

36.1 The Format of the Mail Buffer    Format of the mail being composed.
36.2 Mail Header Fields    Details of permitted mail header fields.
36.3 Mail Aliases    Abbreviating and grouping mail addresses.
36.4 Mail Mode    Special commands for editing mail being composed.
36.5 Mail Amusements    Distract the NSA's attention; add a fortune to a msg.
36.6 Mail-Composition Methods    Using alternative mail-composition methods.

Reading Mail with Rmail

37.1 Basic Concepts of Rmail    Basic concepts of Rmail, and simple use.
37.2 Scrolling Within a Message    Scrolling through a message.
37.3 Moving Among Messages    Moving to another message.
37.4 Deleting Messages    Deleting and expunging messages.
37.5 Rmail Files and Inboxes    How mail gets into the Rmail file.
37.6 Multiple Rmail Files    Using multiple Rmail files.
37.7 Copying Messages Out to Files    Copying message out to files.
37.8 Labels    Classifying messages by labeling them.
37.9 Rmail Attributes    Certain standard labels, called attributes.
37.10 Sending Replies    Sending replies to messages you are viewing.
37.11 Summaries    Summaries show brief info on many messages.
37.12 Sorting the Rmail File    Sorting messages in Rmail.
37.13 Display of Messages    How Rmail displays a message; customization.
37.14 Rmail and Coding Systems    How Rmail handles decoding character sets.
37.15 Editing Within a Message    Editing message text and headers in Rmail.
37.16 Digest Messages    Extracting the messages from a digest message.
37.17 Converting an Rmail File to Inbox Format    Converting an Rmail file to mailbox format.
37.18 Reading Rot13 Messages    Reading messages encoded in the rot13 code.
37.19 movemail program    More details of fetching new mail.
37.20 Retrieving Mail from Remote Mailboxes   
37.21 Retrieving Mail from Local Mailboxes in Various Formats   

Dired, the Directory Editor

38.1 Entering Dired    How to invoke Dired.
38.2 Navigation in the Dired Buffer    How to move in the Dired buffer.
38.3 Deleting Files with Dired    Deleting files with Dired.
38.4 Flagging Many Files at Once    Flagging files based on their names.
38.5 Visiting Files in Dired    Other file operations through Dired.
38.6 Dired Marks vs. Flags    Flagging for deletion vs marking.
38.7 Operating on Files    How to copy, rename, print, compress, etc. either one file or several files.
38.8 Shell Commands in Dired    Running a shell command on the marked files.
38.9 Transforming File Names in Dired    Using patterns to rename multiple files.
38.10 File Comparison with Dired    Running `diff' by way of Dired.
38.11 Subdirectories in Dired    Adding subdirectories to the Dired buffer.
38.12 Subdirectory Switches in Dired    Subdirectory switches in Dired.
38.13 Moving Over Subdirectories    Moving across subdirectories, and up and down.
38.14 Hiding Subdirectories    Making subdirectories visible or invisible.
38.15 Updating the Dired Buffer    Discarding lines for files of no interest.
38.16 Dired and find    Using `find' to choose the files for Dired.
38.17 Editing the Dired Buffer    Operating on files by editing the Dired buffer.
38.18 Viewing Image Thumbnails in Dired    Viewing image thumbnails in Dired
38.19 Other Dired Features    Various other features.

The Calendar and the Diary

39.1 Movement in the Calendar    Moving through the calendar; selecting a date.
39.2 Scrolling in the Calendar    Bringing earlier or later months onto the screen.
39.3 Counting Days    How many days are there between two dates?
39.4 Miscellaneous Calendar Commands    Exiting or recomputing the calendar.
39.5 Writing Calendar Files    Writing calendars to files of various formats.
39.6 Holidays    Displaying dates of holidays.
39.7 Times of Sunrise and Sunset    Displaying local times of sunrise and sunset.
39.8 Phases of the Moon    Displaying phases of the moon.
39.9 Conversion To and From Other Calendars    Converting dates to other calendar systems.
39.10 The Diary    Displaying events from your diary.
39.11 Appointments    Reminders when it's time to do something.
39.12 Importing and Exporting Diary Entries    Converting diary events to/from other formats.
39.13 Daylight Saving Time    How to specify when daylight saving time is active.
39.14 Summing Time Intervals    Keeping track of time intervals.
39.15 Customizing the Calendar and Diary    Advanced Calendar/Diary customization.

Movement in the Calendar

39.1.1 Motion by Standard Lengths of Time    Moving by days, weeks, months, and years.
39.1.2 Beginning or End of Week, Month or Year    Moving to start/end of weeks, months, and years.
39.1.3 Specified Dates    Moving to the current date or another specific date.

Conversion To and From Other Calendars

39.9.1 Supported Calendar Systems    The calendars Emacs understands
     (aside from Gregorian).
39.9.2 Converting To Other Calendars    Converting the selected date to various calendars.
39.9.3 Converting From Other Calendars    Moving to a date specified in another calendar.
39.9.4 Converting from the Mayan Calendar    Moving to a date specified in a Mayan calendar.

The Diary

39.10.1 Displaying the Diary    Viewing diary entries and associated calendar dates.
39.10.2 The Diary File    Entering events in your diary.
39.10.3 Date Formats    Various ways you can specify dates.
39.10.4 Commands to Add to the Diary    Commands to create diary entries.
39.10.5 Special Diary Entries    Anniversaries, blocks of dates, cyclic entries, etc.


40.1 Gnus Buffers    The group, summary, and article buffers.
40.2 When Gnus Starts Up    What you should know about starting Gnus.
40.3 Summary of Gnus Commands    A short description of the basic Gnus commands.

Running Shell Commands from Emacs

41.1 Single Shell Commands    How to run one shell command and return.
41.2 Interactive Inferior Shell    Permanent shell taking input via Emacs.
41.3 Shell Mode    Special Emacs commands used with permanent shell.
41.4 Shell Prompts    Two ways to recognize shell prompts.
41.5 Shell Command History    Repeating previous commands in a shell buffer.
41.6 Directory Tracking    Keeping track when the subshell changes directory.
41.7 Shell Mode Options    Options for customizing Shell mode.
41.8 Emacs Terminal Emulator    An Emacs window as a terminal emulator.
41.9 Term Mode    Special Emacs commands used in Term mode.
41.10 Page-At-A-Time Output    Paging in the terminal emulator.
41.11 Remote Host Shell    Connecting to another computer.

Using Emacs as a Server

42.1 Invoking emacsclient    Emacs client startup options.

Printing Hard Copies

44. PostScript Hardcopy    Printing buffers or regions as PostScript.
45. Variables for PostScript Hardcopy    Customizing the PostScript printing commands.
46. Printing Package    An optional advanced printing interface.

Hyperlinking and Navigation Features

54.1 Following URLs   
54.2 Activating URLs   
54.3 Finding Files and URLs at Point    Finding files etc. at point.


57.1 Minor Modes    Each minor mode is one feature you can turn on independently of any others.
57.2 Easy Customization Interface    Convenient way to browse and change user options.
57.3 Variables    Many Emacs commands examine Emacs variables to decide what to do; by setting variables, you can control their functioning.
57.4 Customizing Key Bindings    The keymaps say what command each key runs. By changing them, you can "redefine keys".
57.5 The Syntax Table    The syntax table controls how words and expressions are parsed.
57.6 The Init File, `~/.emacs'    How to write common customizations in the
  `.emacs' file.


57.3.1 Examining and Setting Variables    Examining or setting one variable's value.
57.3.2 Hooks    Hook variables let you specify programs for parts of Emacs to run on particular occasions.
57.3.3 Local Variables    Per-buffer values of variables.
57.3.4 Local Variables in Files    How files can specify variable values.

Customizing Key Bindings

57.4.1 Keymaps    Generalities. The global keymap.
57.4.2 Prefix Keymaps    Keymaps for prefix keys.
57.4.3 Local Keymaps    Major and minor modes have their own keymaps.
57.4.4 Minibuffer Keymaps    The minibuffer uses its own local keymaps.
57.4.5 Changing Key Bindings Interactively    How to redefine one key's meaning conveniently.
57.4.6 Rebinding Keys in Your Init File    Rebinding keys with your init file, `.emacs'.
57.4.7 Rebinding Function Keys    Rebinding terminal function keys.
57.4.8 Named ASCII Control Characters    Distinguishing TAB from C-i, and so on.
57.4.9 Rebinding Mouse Buttons    Rebinding mouse buttons in Emacs.
57.4.10 Disabling Commands    Disabling a command means confirmation is required before it can be executed. This is done to protect beginners from surprises.

The Init File, `~/.emacs'

57.6.1 Init File Syntax    Syntax of constants in Emacs Lisp.
57.6.2 Init File Examples    How to do some things with an init file.
57.6.3 Terminal-specific Initialization    Each terminal type can have an init file.
57.6.4 How Emacs Finds Your Init File    How Emacs finds the init file.
57.6.5 Non-ASCII Characters in Init Files    Using non-ASCII characters in an init file.

Dealing with Emacs Trouble

59.1 If DEL Fails to Delete    What to do if DEL doesn't delete.
59.2 Recursive Editing Levels    `[...]' in mode line around the parentheses.
59.3 Garbage on the Screen    Garbage on the screen.
59.4 Garbage in the Text    Garbage in the text.
59.5 Running out of Memory    How to cope when you run out of memory.
59.6 Recovery After a Crash    Recovering editing in an Emacs session that crashed.
59.7 Emergency Escape    Emergency escape--- What to do if Emacs stops responding.
59.8 Help for Total Frustration    When you are at your wits' end.

Reporting Bugs

60.1 When Is There a Bug    Have you really found a bug?
60.2 Understanding Bug Reporting    How to report a bug effectively.
60.3 Checklist for Bug Reports    Steps to follow for a good bug report.
60.4 Sending Patches for GNU Emacs    How to send a patch for GNU Emacs.

Command Line Arguments for Emacs Invocation

C.1 Action Arguments    Arguments to visit files, load libraries, and call functions.
C.2 Initial Options    Arguments that take effect while starting Emacs.
C.3 Command Argument Example    Examples of using command line arguments.
C.4 Resuming Emacs with Arguments    Specifying arguments when you resume a running Emacs.
C.5 Environment Variables    Environment variables that Emacs uses.
C.6 Specifying the Display Name    Changing the default display and using remote login.
C.7 Font Specification Options    Choosing a font for text, under X.
C.8 Window Color Options    Choosing display colors.
C.9 Options for Window Size and Position    Start-up window size, under X.
C.10 Internal and External Borders    Internal and external borders, under X.
C.11 Frame Titles    Specifying the initial frame's title.
C.12 Icons    Choosing what sort of icon to use, under X.
C.13 Other Display Options    Other display options.

Environment Variables

C.5.1 General Variables    Environment variables that all versions of Emacs use.
C.5.2 Miscellaneous Variables    Certain system specific variables.
C.5.3 The MS-Windows System Registry    An alternative to the environment on MS-Windows.

X Options and Resources

D.1 X Resources    Using X resources with Emacs (in general).
D.2 Table of X Resources for Emacs    Table of specific X resources that affect Emacs.
D.3 X Resources for Faces    X resources for customizing faces.
D.4 Lucid Menu X Resources    X resources for Lucid menus.
D.5 LessTif Menu X Resources    X resources for LessTif and Motif menus.
D.6 GTK resources    Resources for GTK widgets.

Emacs and Mac OS

F.1 Keyboard and Mouse Input on Mac    Keyboard and mouse input on Mac.
F.2 International Character Set Support on Mac    International character sets on Mac.
F.3 Environment Variables and Command Line Arguments.    Setting environment variables for Emacs.
F.4 Volumes and Directories on Mac    Volumes and directories on Mac.
F.5 Specifying Fonts on Mac    Specifying fonts on Mac.
F.6 Mac-Specific Lisp Functions    Mac-specific Lisp functions.

Emacs and Microsoft Windows/MS-DOS

G.1 Text Files and Binary Files    Text files use CRLF to terminate lines.
G.2 File Names on MS-Windows    File-name conventions on Windows.
G.3 Emulation of ls on MS-Windows    Emulation of ls for Dired.
G.4 HOME Directory on MS-Windows    Where Emacs looks for your `.emacs'.
G.5 Keyboard Usage on MS-Windows    Windows-specific keyboard features.
G.6 Mouse Usage on MS-Windows    Windows-specific mouse features.
G.7 Subprocesses on Windows 9X/ME and Windows NT/2K/XP    Running subprocesses on Windows.
G.8 Printing and MS-Windows    How to specify the printer on MS-Windows.
G.9 Miscellaneous Windows-specific features    Miscellaneous Windows features.
G.10 Emacs and MS-DOS    Using Emacs on MS-DOS (otherwise known as MS-DOG).