Distribution
Introduction
1. The Organization of the Screen
1.1 Point
1.2 The Echo Area
1.3 The Mode Line
1.4 The Menu Bar
2. Kinds of User Input
3. Keys
4. Keys and Commands
5. Character Set for Text
6. Entering and Exiting Emacs
7. Exiting Emacs
8. Basic Editing Commands
8.1 Inserting Text
8.2 Changing the Location of Point
8.3 Erasing Text
8.4 Undoing Changes
8.5 Files
8.6 Help
8.7 Blank Lines
8.8 Continuation Lines
8.9 Cursor Position Information
8.10 Numeric Arguments
8.11 Repeating a Command
9. The Minibuffer
9.1 Minibuffers for File Names
9.2 Editing in the Minibuffer
9.3 Completion
9.3.1 Completion Example
9.3.2 Completion Commands
9.3.3 Strict Completion
9.3.4 Completion Options
9.4 Minibuffer History
9.5 Repeating Minibuffer Commands
10. Running Commands by Name
11. Help
11.1 Help Summary
11.2 Documentation for a Key
11.3 Help by Command or Variable Name
11.4 Apropos
11.5 Help Mode Commands
11.6 Keyword Search for Lisp Libraries
11.7 Help for International Language Support
11.8 Other Help Commands
11.9 Help Files
11.10 Help on Active Text and Tooltips
12. The Mark and the Region
12.1 Setting the Mark
12.2 Transient Mark Mode
12.3 Using Transient Mark Mode Momentarily
12.4 Operating on the Region
12.5 Commands to Mark Textual Objects
12.6 The Mark Ring
12.7 The Global Mark Ring
13. Killing and Moving Text
13.1 Deletion
13.2 Killing by Lines
13.3 Other Kill Commands
14. Yanking
14.1 The Kill Ring
14.2 Appending Kills
14.3 Yanking Earlier Kills
15. Accumulating Text
16. Rectangles
17. CUA Bindings
18. Registers
18.1 Saving Positions in Registers
18.2 Saving Text in Registers
18.3 Saving Rectangles in Registers
18.4 Saving Window Configurations in Registers
18.5 Keeping Numbers in Registers
18.6 Keeping File Names in Registers
18.7 Bookmarks
19. Controlling the Display
19.1 Scrolling
19.2 Automatic Scrolling
19.3 Horizontal Scrolling
19.4 Follow Mode
19.5 Faces: Controlling Text Display Style
19.6 Standard Faces
19.7 Font Lock mode
19.8 Interactive Highlighting
19.9 Window Fringes
19.10 Displaying Boundaries
19.11 Useless Whitespace
19.12 Selective Display
19.13 Optional Mode Line Features
19.14 How Text Is Displayed
19.15 Displaying the Cursor
19.16 Truncation of Lines
19.17 Customization of Display
20. Searching and Replacement
20.1 Incremental Search
20.1.1 Basics of Incremental Search
20.1.2 Repeating Incremental Search
20.1.3 Errors in Incremental Search
20.1.4 Special Input for Incremental Search
20.1.5 Isearch for Non-ASCII Characters
20.1.6 Isearch Yanking
20.1.7 Lazy Search Highlighting
20.1.8 Scrolling During Incremental Search
20.1.9 Slow Terminal Incremental Search
20.2 Nonincremental Search
20.3 Word Search
20.4 Regular Expression Search
20.5 Syntax of Regular Expressions
20.6 Backslash in Regular Expressions
20.7 Regular Expression Example
20.8 Searching and Case
20.9 Replacement Commands
20.9.1 Unconditional Replacement
20.9.2 Regexp Replacement
20.9.3 Replace Commands and Case
20.9.4 Query Replace
20.10 Other Search-and-Loop Commands
21. Commands for Fixing Typos
21.1 Undo
21.2 Killing Your Mistakes
21.3 Transposing Text
21.4 Case Conversion
21.5 Checking and Correcting Spelling
22. Keyboard Macros
22.1 Basic Use
22.2 The Keyboard Macro Ring
22.3 The Keyboard Macro Counter
22.4 Executing Macros with Variations
22.5 Naming and Saving Keyboard Macros
22.6 Editing a Keyboard Macro
22.7 Stepwise Editing a Keyboard Macro
23. File Handling
23.1 File Names
23.2 Visiting Files
23.3 Saving Files
23.3.1 Commands for Saving Files
23.3.2 Backup Files
23.3.2.1 Numbered Backups
23.3.2.2 Single or Numbered Backups
23.3.2.3 Automatic Deletion of Backups
23.3.2.4 Copying vs. Renaming
23.3.3 Customizing Saving of Files
23.3.4 Protection against Simultaneous Editing
23.3.5 Shadowing Files
23.3.6 Updating Time Stamps Automatically
23.4 Reverting a Buffer
23.5 Auto Reverting non-file Buffers
23.5.1 Auto Reverting the Buffer Menu
23.5.2 Auto Reverting Dired buffers
23.5.3 Adding Support for Auto-Reverting additional Buffers.
23.6 Auto-Saving: Protection Against Disasters
23.6.1 Auto-Save Files
23.6.2 Controlling Auto-Saving
23.6.3 Recovering Data from Auto-Saves
23.7 File Name Aliases
23.8 Version Control
23.8.1 Introduction to Version Control
23.8.1.1 Understanding the problems it addresses
23.8.1.2 Supported Version Control Systems
23.8.1.3 Concepts of Version Control
23.8.1.4 Types of Log File
23.8.2 Version Control and the Mode Line
23.8.3 Basic Editing under Version Control
23.8.3.1 Choosing the scope of your command
23.8.3.2 Performing the next operation in the development cycle
23.8.3.3 Basic Version Control with Locking
23.8.3.4 Basic Version Control with Merging
23.8.3.5 Advanced Control in C-x v v
23.8.3.6 Features of the Log Entry Buffer
23.8.4 Examining And Comparing Old Revisions
23.8.5 The Secondary Commands of VC
23.8.5.1 Registering a File for Version Control
23.8.5.2 VC Status Commands
23.8.5.3 Undoing Version Control Actions
23.8.5.4 Dired under VC
23.8.5.5 VC Dired Commands
23.8.6 Multiple Branches of a File
23.8.6.1 Switching between Branches
23.8.6.2 Creating New Branches
23.8.6.3 Merging Branches
23.8.6.4 Multi-User Branching
23.8.7 Remote Repositories
23.8.7.1 Version Backups
23.8.7.2 Local Version Control
23.8.8 Snapshots
23.8.8.1 Making and Using Snapshots
23.8.8.2 Snapshot Caveats
23.8.9 Miscellaneous Commands and Features of VC
23.8.9.1 Change Logs and VC
23.8.9.2 Renaming VC Work Files and Master Files
23.8.9.3 Inserting Version Control Headers
23.8.10 Customizing VC
23.8.10.1 General Options
23.8.10.2 Options for RCS and SCCS
23.8.10.3 Options specific for CVS
23.9 File Directories
23.10 Comparing Files
23.11 Diff Mode
23.12 Miscellaneous File Operations
23.13 Accessing Compressed Files
23.14 File Archives
23.15 Remote Files
23.16 Quoted File Names
23.17 File Name Cache
23.18 Convenience Features for Finding Files
23.19 Filesets
24. Using Multiple Buffers
24.1 Creating and Selecting Buffers
24.2 Listing Existing Buffers
24.3 Miscellaneous Buffer Operations
24.4 Killing Buffers
24.5 Operating on Several Buffers
24.6 Indirect Buffers
24.7 Convenience Features and Customization of Buffer Handling
24.7.1 Making Buffer Names Unique
24.7.2 Switching Between Buffers using Substrings
24.7.3 Customizing Buffer Menus
25. Multiple Windows
25.1 Concepts of Emacs Windows
25.2 Splitting Windows
25.3 Using Other Windows
25.4 Displaying in Another Window
25.5 Forcing Display in the Same Window
25.6 Deleting and Rearranging Windows
25.7 Window Handling Convenience Features and Customization
26. Frames and Graphical Displays
26.1 Killing and Yanking on Graphical Displays
26.1.1 Mouse Commands for Editing
26.1.2 Cut and Paste with Other Window Applications
26.1.3 Mouse Commands for Words and Lines
26.1.4 Secondary Selection
26.1.5 Using the Clipboard
26.2 Following References with the Mouse
26.3 Mouse Clicks for Menus
26.4 Mode Line Mouse Commands
26.5 Creating Frames
26.6 Frame Commands
26.7 Speedbar Frames
26.8 Multiple Displays
26.9 Special Buffer Frames
26.10 Setting Frame Parameters
26.11 Scroll Bars
26.12 Scrolling With "Wheeled" Mice
26.13 Drag and Drop
26.14 Menu Bars
26.15 Tool Bars
26.16 Using Dialog Boxes
26.17 Tooltips
26.18 Mouse Avoidance
26.19 Non-Window Terminals
26.20 Using a Mouse in Terminal Emulators
27. International Character Set Support
27.1 Introduction to International Character Sets
27.2 Enabling Multibyte Characters
27.3 Language Environments
27.4 Input Methods
27.5 Selecting an Input Method
27.6 Unibyte and Multibyte Non-ASCII characters
27.7 Coding Systems
27.8 Recognizing Coding Systems
27.9 Specifying a File's Coding System
27.10 Choosing Coding Systems for Output
27.11 Specifying a Coding System for File Text
27.12 Coding Systems for Interprocess Communication
27.13 Coding Systems for File Names
27.14 Coding Systems for Terminal I/O
27.15 Fontsets
27.16 Defining fontsets
27.17 Undisplayable Characters
27.18 Unibyte Editing Mode
27.19 Charsets
28. Major Modes
28.1 How Major Modes are Chosen
29. Indentation
29.1 Indentation Commands and Techniques
29.2 Tab Stops
29.3 Tabs vs. Spaces
30. Commands for Human Languages
30.1 Words
30.2 Sentences
30.3 Paragraphs
30.4 Pages
30.5 Filling Text
30.5.1 Auto Fill Mode
30.5.2 Explicit Fill Commands
30.5.3 The Fill Prefix
30.5.4 Adaptive Filling
30.5.5 Refill Mode
30.5.6 Long Lines Mode
30.6 Case Conversion Commands
30.7 Text Mode
30.8 Outline Mode
30.8.1 Format of Outlines
30.8.2 Outline Motion Commands
30.8.3 Outline Visibility Commands
30.8.4 Viewing One Outline in Multiple Views
30.8.5 Folding Editing
30.9 TeX Mode
30.9.1 TeX Editing Commands
30.9.2 LaTeX Editing Commands
30.9.3 TeX Printing Commands
30.9.4 TeX Mode Miscellany
30.10 SGML, XML, and HTML Modes
30.11 Nroff Mode
30.12 Editing Formatted Text
30.12.1 Requesting to Edit Formatted Text
30.12.2 Hard and Soft Newlines
30.12.3 Editing Format Information
30.12.4 Faces in Formatted Text
30.12.5 Colors in Formatted Text
30.12.6 Indentation in Formatted Text
30.12.7 Justification in Formatted Text
30.12.8 Setting Other Text Properties
30.12.9 Forcing Enriched Mode
30.13 Editing Text-based Tables
30.13.1 What is a Text-based Table?
30.13.2 How to Create a Table?
30.13.3 Table Recognition
30.13.4 Commands for Table Cells
30.13.5 Cell Justification
30.13.6 Commands for Table Rows
30.13.7 Commands for Table Columns
30.13.8 Fix Width of Cells
30.13.9 Conversion Between Plain Text and Tables
30.13.10 Analyzing Table Dimensions
30.13.11 Table Miscellany
31. Editing Programs
31.1 Major Modes for Programming Languages
31.2 Top-Level Definitions, or Defuns
31.2.1 Left Margin Convention
31.2.2 Moving by Defuns
31.2.3 Imenu
31.2.4 Which Function Mode
31.3 Indentation for Programs
31.3.1 Basic Program Indentation Commands
31.3.2 Indenting Several Lines
31.3.3 Customizing Lisp Indentation
31.3.4 Commands for C Indentation
31.3.5 Customizing C Indentation
31.4 Commands for Editing with Parentheses
31.4.1 Expressions with Balanced Parentheses
31.4.2 Moving in the Parenthesis Structure
31.4.3 Automatic Display Of Matching Parentheses
31.5 Manipulating Comments
31.5.1 Comment Commands
31.5.2 Multiple Lines of Comments
31.5.3 Options Controlling Comments
31.6 Documentation Lookup
31.6.1 Info Documentation Lookup
31.6.2 Man Page Lookup
31.6.3 Emacs Lisp Documentation Lookup
31.7 Hideshow minor mode
31.8 Completion for Symbol Names
31.9 Glasses minor mode
31.10 Other Features Useful for Editing Programs
31.11 C and Related Modes
31.11.1 C Mode Motion Commands
31.11.2 Electric C Characters
31.11.3 Hungry Delete Feature in C
31.11.4 Other Commands for C Mode
31.12 Asm Mode
31.13 Fortran Mode
31.13.1 Motion Commands
31.13.2 Fortran Indentation
31.13.2.1 Fortran Indentation and Filling Commands
31.13.2.2 Continuation Lines
31.13.2.3 Line Numbers
31.13.2.4 Syntactic Conventions
31.13.2.5 Variables for Fortran Indentation
31.13.3 Fortran Comments
31.13.4 Auto Fill in Fortran Mode
31.13.5 Checking Columns in Fortran
31.13.6 Fortran Keyword Abbrevs
32. Compiling and Testing Programs
32.1 Running Compilations under Emacs
32.2 Compilation Mode
32.3 Subshells for Compilation
32.4 Searching with Grep under Emacs
32.5 Finding Syntax Errors On The Fly
32.6 Running Debuggers Under Emacs
32.6.1 Starting GUD
32.6.2 Debugger Operation
32.6.3 Commands of GUD
32.6.4 GUD Customization
32.6.5 GDB Graphical Interface
32.6.5.1 GDB User Interface Layout
32.6.5.2 Source Buffers
32.6.5.3 Breakpoints Buffer
32.6.5.4 Stack Buffer
32.6.5.5 Other Buffers
32.6.5.6 Watch Expressions
32.7 Executing Lisp Expressions
32.8 Libraries of Lisp Code for Emacs
32.9 Evaluating Emacs Lisp Expressions
32.10 Lisp Interaction Buffers
32.11 Running an External Lisp
33. Maintaining Large Programs
33.1 Change Logs
33.2 Format of ChangeLog
33.3 Tags Tables
33.3.1 Source File Tag Syntax
33.3.2 Creating Tags Tables
33.3.3 Etags Regexps
33.3.4 Selecting a Tags Table
33.3.5 Finding a Tag
33.3.6 Searching and Replacing with Tags Tables
33.3.7 Tags Table Inquiries
33.4 Merging Files with Emerge
33.4.1 Overview of Emerge
33.4.2 Submodes of Emerge
33.4.3 State of a Difference
33.4.4 Merge Commands
33.4.5 Exiting Emerge
33.4.6 Combining the Two Versions
33.4.7 Fine Points of Emerge
34. Abbrevs
34.1 Abbrev Concepts
34.2 Defining Abbrevs
34.3 Controlling Abbrev Expansion
34.4 Examining and Editing Abbrevs
34.5 Saving Abbrevs
34.6 Dynamic Abbrev Expansion
34.7 Customizing Dynamic Abbreviation
35. Editing Pictures
35.1 Basic Editing in Picture Mode
35.2 Controlling Motion after Insert
35.3 Picture Mode Tabs
35.4 Picture Mode Rectangle Commands
36. Sending Mail
36.1 The Format of the Mail Buffer
36.2 Mail Header Fields
36.3 Mail Aliases
36.4 Mail Mode
36.4.1 Mail Sending
36.4.2 Mail Header Editing
36.4.3 Citing Mail
36.4.4 Mail Mode Miscellany
36.5 Mail Amusements
36.6 Mail-Composition Methods
37. Reading Mail with Rmail
37.1 Basic Concepts of Rmail
37.2 Scrolling Within a Message
37.3 Moving Among Messages
37.4 Deleting Messages
37.5 Rmail Files and Inboxes
37.6 Multiple Rmail Files
37.7 Copying Messages Out to Files
37.8 Labels
37.9 Rmail Attributes
37.10 Sending Replies
37.11 Summaries
37.11.1 Making Summaries
37.11.2 Editing in Summaries
37.12 Sorting the Rmail File
37.13 Display of Messages
37.14 Rmail and Coding Systems
37.15 Editing Within a Message
37.16 Digest Messages
37.17 Converting an Rmail File to Inbox Format
37.18 Reading Rot13 Messages
37.19 movemail
program
37.20 Retrieving Mail from Remote Mailboxes
37.21 Retrieving Mail from Local Mailboxes in Various Formats
38. Dired, the Directory Editor
38.1 Entering Dired
38.2 Navigation in the Dired Buffer
38.3 Deleting Files with Dired
38.4 Flagging Many Files at Once
38.5 Visiting Files in Dired
38.6 Dired Marks vs. Flags
38.7 Operating on Files
38.8 Shell Commands in Dired
38.9 Transforming File Names in Dired
38.10 File Comparison with Dired
38.11 Subdirectories in Dired
38.12 Subdirectory Switches in Dired
38.13 Moving Over Subdirectories
38.14 Hiding Subdirectories
38.15 Updating the Dired Buffer
38.16 Dired and find
38.17 Editing the Dired Buffer
38.18 Viewing Image Thumbnails in Dired
38.19 Other Dired Features
39. The Calendar and the Diary
39.1 Movement in the Calendar
39.1.1 Motion by Standard Lengths of Time
39.1.2 Beginning or End of Week, Month or Year
39.1.3 Specified Dates
39.2 Scrolling in the Calendar
39.3 Counting Days
39.4 Miscellaneous Calendar Commands
39.5 Writing Calendar Files
39.6 Holidays
39.7 Times of Sunrise and Sunset
39.8 Phases of the Moon
39.9 Conversion To and From Other Calendars
39.9.1 Supported Calendar Systems
39.9.2 Converting To Other Calendars
39.9.3 Converting From Other Calendars
39.9.4 Converting from the Mayan Calendar
39.10 The Diary
39.10.1 Displaying the Diary
39.10.2 The Diary File
39.10.3 Date Formats
39.10.4 Commands to Add to the Diary
39.10.5 Special Diary Entries
39.11 Appointments
39.12 Importing and Exporting Diary Entries
39.13 Daylight Saving Time
39.14 Summing Time Intervals
39.15 Customizing the Calendar and Diary
39.15.1 Customizing the Calendar
39.15.2 Customizing the Holidays
39.15.3 Date Display Format
39.15.4 Time Display Format
39.15.5 Customizing the Diary
39.15.6 Hebrew- and Islamic-Date Diary Entries
39.15.7 Fancy Diary Display
39.15.8 Sexp Entries and the Fancy Diary Display
40. Gnus
40.1 Gnus Buffers
40.2 When Gnus Starts Up
40.3 Summary of Gnus Commands
41. Running Shell Commands from Emacs
41.1 Single Shell Commands
41.2 Interactive Inferior Shell
41.3 Shell Mode
41.4 Shell Prompts
41.5 Shell Command History
41.5.1 Shell History Ring
41.5.2 Shell History Copying
41.5.3 Shell History References
41.6 Directory Tracking
41.7 Shell Mode Options
41.8 Emacs Terminal Emulator
41.9 Term Mode
41.10 Page-At-A-Time Output
41.11 Remote Host Shell
42. Using Emacs as a Server
42.1 Invoking emacsclient
43. Printing Hard Copies
44. PostScript Hardcopy
45. Variables for PostScript Hardcopy
46. Printing Package
47. Sorting Text
48. Narrowing
49. Two-Column Editing
50. Editing Binary Files
51. Saving Emacs Sessions
52. Recursive Editing Levels
53. Emulation
54. Hyperlinking and Navigation Features
54.1 Following URLs
54.2 Activating URLs
54.3 Finding Files and URLs at Point
55. Dissociated Press
56. Other Amusements
57. Customization
57.1 Minor Modes
57.2 Easy Customization Interface
57.2.1 Customization Groups
57.2.2 Browsing and Searching for Options and Faces
57.2.3 Changing a Variable
57.2.4 Saving Customizations
57.2.5 Customizing Faces
57.2.6 Customizing Specific Items
57.2.7 Customization Themes
57.3 Variables
57.3.1 Examining and Setting Variables
57.3.2 Hooks
57.3.3 Local Variables
57.3.4 Local Variables in Files
57.3.4.1 Specifying File Variables
57.3.4.2 Safety of File Variables
57.4 Customizing Key Bindings
57.4.1 Keymaps
57.4.2 Prefix Keymaps
57.4.3 Local Keymaps
57.4.4 Minibuffer Keymaps
57.4.5 Changing Key Bindings Interactively
57.4.6 Rebinding Keys in Your Init File
57.4.7 Rebinding Function Keys
57.4.8 Named ASCII Control Characters
57.4.9 Rebinding Mouse Buttons
57.4.10 Disabling Commands
57.5 The Syntax Table
57.6 The Init File, `~/.emacs'
57.6.1 Init File Syntax
57.6.2 Init File Examples
57.6.3 Terminal-specific Initialization
57.6.4 How Emacs Finds Your Init File
57.6.5 Non-ASCII Characters in Init Files
58. Quitting and Aborting
59. Dealing with Emacs Trouble
59.1 If DEL Fails to Delete
59.2 Recursive Editing Levels
59.3 Garbage on the Screen
59.4 Garbage in the Text
59.5 Running out of Memory
59.6 Recovery After a Crash
59.7 Emergency Escape
59.8 Help for Total Frustration
60. Reporting Bugs
60.1 When Is There a Bug
60.2 Understanding Bug Reporting
60.3 Checklist for Bug Reports
60.4 Sending Patches for GNU Emacs
61. Contributing to Emacs Development
62. How To Get Help with GNU Emacs
A. GNU GENERAL PUBLIC LICENSE
B. GNU Free Documentation License
ADDENDUM: How to use this License for your documents
C. Command Line Arguments for Emacs Invocation
C.1 Action Arguments
C.2 Initial Options
C.3 Command Argument Example
C.4 Resuming Emacs with Arguments
C.5 Environment Variables
C.5.1 General Variables
C.5.2 Miscellaneous Variables
C.5.3 The MS-Windows System Registry
C.6 Specifying the Display Name
C.7 Font Specification Options
C.8 Window Color Options
C.9 Options for Window Size and Position
C.10 Internal and External Borders
C.11 Frame Titles
C.12 Icons
C.13 Other Display Options
D. X Options and Resources
D.1 X Resources
D.2 Table of X Resources for Emacs
D.3 X Resources for Faces
D.4 Lucid Menu X Resources
D.5 LessTif Menu X Resources
D.6 GTK resources
D.6.1 GTK widget names
D.6.2 GTK Widget Names in Emacs
D.6.3 GTK styles
E. Emacs 21 Antinews
F. Emacs and Mac OS
F.1 Keyboard and Mouse Input on Mac
F.2 International Character Set Support on Mac
F.3 Environment Variables and Command Line Arguments.
F.4 Volumes and Directories on Mac
F.5 Specifying Fonts on Mac
F.6 Mac-Specific Lisp Functions
G. Emacs and Microsoft Windows/MS-DOS
G.1 Text Files and Binary Files
G.2 File Names on MS-Windows
G.3 Emulation of ls
on MS-Windows
G.4 HOME Directory on MS-Windows
G.5 Keyboard Usage on MS-Windows
G.6 Mouse Usage on MS-Windows
G.7 Subprocesses on Windows 9X/ME and Windows NT/2K/XP
G.8 Printing and MS-Windows
G.9 Miscellaneous Windows-specific features
G.10 Emacs and MS-DOS
G.10.1 Keyboard Usage on MS-DOS
G.10.2 Mouse Usage on MS-DOS
G.10.3 Display on MS-DOS
G.10.4 File Names on MS-DOS
G.10.5 Printing and MS-DOS
G.10.6 International Support on MS-DOS
G.10.7 Subprocesses on MS-DOS
The GNU Manifesto
What's GNU? Gnu's Not Unix!
Why I Must Write GNU
Why GNU Will Be Compatible with Unix
How GNU Will Be Available
Why Many Other Programmers Want to Help
How You Can Contribute
Why All Computer Users Will Benefit
Some Easily Rebutted Objections to GNU's Goals
Glossary
Acknowledgments
Key (Character) Index
Command-Line Options Index
Command and Function Index
Variable Index
Concept Index