GNU Emacs Manual
Preface
Distribution
GNU GENERAL PUBLIC LICENSE
Preamble
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
How to Apply These Terms to Your New Programs
Introduction
The Organization of the Screen
Point
The Echo Area
The Mode Line
The Menu Bar
Characters, Keys and Commands
Kinds of User Input
Keys
Keys and Commands
Character Set for Text
Entering and Exiting Emacs
Exiting Emacs
Basic Editing Commands
Inserting Text
Changing the Location of Point
Erasing Text
Undoing Changes
Files
Help
Blank Lines
Continuation Lines
Cursor Position Information
Numeric Arguments
Repeating a Command
The Minibuffer
Minibuffers for File Names
Editing in the Minibuffer
Completion
Completion Example
Completion Commands
Strict Completion
Completion Options
Minibuffer History
Repeating Minibuffer Commands
Running Commands by Name
Help
Documentation for a Key
Help by Command or Variable Name
Apropos
Keyword Search for Lisp Libraries
Help for International Language Support
Help Mode Commands
Other Help Commands
The Mark and the Region
Setting the Mark
Transient Mark Mode
Operating on the Region
Commands to Mark Textual Objects
The Mark Ring
The Global Mark Ring
Killing and Moving Text
Deletion and Killing
Deletion
Killing by Lines
Other Kill Commands
Yanking
The Kill Ring
Appending Kills
Yanking Earlier Kills
Accumulating Text
Rectangles
Registers
Saving Positions in Registers
Saving Text in Registers
Saving Rectangles in Registers
Saving Window Configurations in Registers
Keeping Numbers in Registers
Keeping File Names in Registers
Bookmarks
Controlling the Display
Scrolling
Horizontal Scrolling
Follow Mode
Selective Display
Optional Mode Line Features
How Text Is Displayed
Variables Controlling Display
Searching and Replacement
Incremental Search
Slow Terminal Incremental Search
Nonincremental Search
Word Search
Regular Expression Search
Syntax of Regular Expressions
Searching and Case
Replacement Commands
Unconditional Replacement
Regexp Replacement
Replace Commands and Case
Query Replace
Other Search-and-Loop Commands
Commands for Fixing Typos
Killing Your Mistakes
Transposing Text
Case Conversion
Checking and Correcting Spelling
File Handling
File Names
Visiting Files
Saving Files
Backup Files
Single or Numbered Backups
Automatic Deletion of Backups
Copying vs. Renaming
Protection against Simultaneous Editing
Reverting a Buffer
Auto-Saving: Protection Against Disasters
Auto-Save Files
Controlling Auto-Saving
Recovering Data from Auto-Saves
File Name Aliases
Version Control
Introduction to Version Control
Supported Version Control Systems
Concepts of Version Control
Version Control and the Mode Line
Basic Editing under Version Control
Basic Version Control with Locking
Basic Version Control without Locking
Features of the Log Entry Buffer
Examining And Comparing Old Versions
The Secondary Commands of VC
Registering a File for Version Control
VC Status Commands
Undoing Version Control Actions
Dired under VC
VC Dired Commands
Multiple Branches of a File
Switching between Branches
Creating New Branches
Merging Branches
Multi-User Branching
Snapshots
Making and Using Snapshots
Snapshot Caveats
Miscellaneous Commands and Features of VC
Change Logs and VC
Renaming VC Work Files and Master Files
Inserting Version Control Headers
Customizing VC
Options for VC Backends
VC Workfile Handling
VC Status Retrieval
VC Command Execution
File Directories
Comparing Files
Miscellaneous File Operations
Accessing Compressed Files
Remote Files
Quoted File Names
Using Multiple Buffers
Creating and Selecting Buffers
Listing Existing Buffers
Miscellaneous Buffer Operations
Killing Buffers
Operating on Several Buffers
Indirect Buffers
Multiple Windows
Concepts of Emacs Windows
Splitting Windows
Using Other Windows
Displaying in Another Window
Forcing Display in the Same Window
Deleting and Rearranging Windows
Frames and X Windows
Mouse Commands for Editing
Secondary Selection
Following References with the Mouse
Mouse Clicks for Menus
Mode Line Mouse Commands
Creating Frames
Making and Using a Speedbar Frame
Multiple Displays
Special Buffer Frames
Setting Frame Parameters
Scroll Bars
Menu Bars
Using Multiple Typefaces
Font Lock mode
Font Lock Support Modes
Fast Lock Mode
Lazy Lock Mode
Fast Lock or Lazy Lock?
Highlight Changes Mode
Miscellaneous X Window Features
Non-Window Terminals
International Character Set Support
Introduction to International Character Sets
Enabling Multibyte Characters
Language Environments
Input Methods
Selecting an Input Method
Coding Systems
Recognizing Coding Systems
Specifying a Coding System
Fontsets
Defining fontsets
Single-byte European Character Support
Major Modes
How Major Modes are Chosen
Indentation
Indentation Commands and Techniques
Tab Stops
Tabs vs. Spaces
Commands for Human Languages
Words
Sentences
Paragraphs
Pages
Filling Text
Auto Fill Mode
Explicit Fill Commands
The Fill Prefix
Adaptive Filling
Case Conversion Commands
Text Mode
Outline Mode
Format of Outlines
Outline Motion Commands
Outline Visibility Commands
Viewing One Outline in Multiple Views
TeX Mode
TeX Editing Commands
LaTeX Editing Commands
TeX Printing Commands
Nroff Mode
Editing Formatted Text
Requesting to Edit Formatted Text
Hard and Soft Newlines
Editing Format Information
Faces in Formatted Text
Colors in Formatted Text
Indentation in Formatted Text
Justification in Formatted Text
Setting Other Text Properties
Forcing Enriched Mode
Editing Programs
Major Modes for Programming Languages
Lists and Sexps
List And Sexp Commands
Defuns
Indentation for Programs
Basic Program Indentation Commands
Indenting Several Lines
Customizing Lisp Indentation
Commands for C Indentation
Customizing C Indentation
Step 1--Syntactic Analysis
Step 2--Indentation Calculation
Changing Indentation Style
Syntactic Symbols
Variables for C Indentation
C Indentation Styles
Automatic Display Of Matching Parentheses
Manipulating Comments
Comment Commands
Multiple Lines of Comments
Options Controlling Comments
Editing Without Unbalanced Parentheses
Completion for Symbol Names
Which Function Mode
Documentation Commands
Change Logs
Tags Tables
Source File Tag Syntax
Creating Tags Tables
Selecting a Tags Table
Finding a Tag
Searching and Replacing with Tags Tables
Tags Table Inquiries
Merging Files with Emerge
Overview of Emerge
Submodes of Emerge
State of a Difference
Merge Commands
Exiting Emerge
Combining the Two Versions
Fine Points of Emerge
C Modes and Java Mode
C Mode Motion Commands
Electric C Characters
Hungry Delete Feature in C
Other Commands for C Mode
Comments in C Modes
Fortran Mode
Motion Commands
Fortran Indentation
Fortran Indentation Commands
Continuation Lines
Line Numbers
Syntactic Conventions
Variables for Fortran Indentation
Fortran Comments
Fortran Auto Fill Mode
Checking Columns in Fortran
Fortran Keyword Abbrevs
Other Fortran Mode Commands
Asm Mode
Compiling and Testing Programs
Running Compilations under Emacs
Searching with Grep under Emacs
Compilation Mode
Subshells for Compilation
Running Debuggers Under Emacs
Starting GUD
Debugger Operation
Commands of GUD
GUD Customization
Executing Lisp Expressions
Libraries of Lisp Code for Emacs
Evaluating Emacs-Lisp Expressions
Lisp Interaction Buffers
Running an External Lisp
Abbrevs
Abbrev Concepts
Defining Abbrevs
Controlling Abbrev Expansion
Examining and Editing Abbrevs
Saving Abbrevs
Dynamic Abbrev Expansion
Customizing Dynamic Abbreviation
Editing Pictures
Basic Editing in Picture Mode
Controlling Motion after Insert
Picture Mode Tabs
Picture Mode Rectangle Commands
Sending Mail
The Format of the Mail Buffer
Mail Header Fields
Mail Aliases
Mail Mode
Mail Sending
Mail Header Editing
Citing Mail
Mail Mode Miscellany
Distracting the NSA
Mail-Composition Methods
Reading Mail with Rmail
Basic Concepts of Rmail
Scrolling Within a Message
Moving Among Messages
Deleting Messages
Rmail Files and Inboxes
Multiple Rmail Files
Copying Messages Out to Files
Labels
Rmail Attributes
Sending Replies
Summaries
Making Summaries
Editing in Summaries
Sorting the Rmail File
Display of Messages
Editing Within a Message
Digest Messages
Converting an Rmail File to Inbox Format
Reading Rot13 Messages
movemail
and POP
Dired, the Directory Editor
Entering Dired
Commands in the Dired Buffer
Deleting Files with Dired
Flagging Many Files at Once
Visiting Files in Dired
Dired Marks vs. Flags
Operating on Files
Shell Commands in Dired
Transforming File Names in Dired
File Comparison with Dired
Subdirectories in Dired
Moving Over Subdirectories
Hiding Subdirectories
Updating the Dired Buffer
Dired and
find
The Calendar and the Diary
Movement in the Calendar
Motion by Standard Lengths of Time
Beginning or End of Week, Month or Year
Specified Dates
Scrolling in the Calendar
Counting Days
Miscellaneous Calendar Commands
LaTeX Calendar
Holidays
Times of Sunrise and Sunset
Phases of the Moon
Conversion To and From Other Calendars
Supported Calendar Systems
Converting To Other Calendars
Converting From Other Calendars
Converting from the Mayan Calendar
The Diary
Commands Displaying Diary Entries
The Diary File
Date Formats
Commands to Add to the Diary
Special Diary Entries
Appointments
Daylight Savings Time
Miscellaneous Commands
Gnus
Gnus Buffers
When Gnus Starts Up
Summary of Gnus Commands
Running Shell Commands from Emacs
Single Shell Commands
Interactive Inferior Shell
Shell Mode
Shell Command History
Shell History Ring
Shell History Copying
Shell History References
Shell Mode Options
Remote Host Shell
Using Emacs as a Server
Hardcopy Output
Postscript Hardcopy
Variables for Postscript Hardcopy
Sorting Text
Narrowing
Two-Column Editing
Editing Binary Files
Saving Emacs Sessions
Recursive Editing Levels
Emulation
Dissociated Press
Other Amusements
Customization
Minor Modes
Variables
Examining and Setting Variables
Easy Customization Interface
Customization Groups
Changing an Option
Customizing Faces
Customizing Specific Items
Hooks
Local Variables
Local Variables in Files
Keyboard Macros
Basic Use
Naming and Saving Keyboard Macros
Executing Macros with Variations
Customizing Key Bindings
Keymaps
Prefix Keymaps
Local Keymaps
Minibuffer Keymaps
Changing Key Bindings Interactively
Rebinding Keys in Your Init File
Rebinding Function Keys
Named ASCII Control Characters
Rebinding Mouse Buttons
Disabling Commands
Keyboard Translations
The Syntax Table
The Init File,
`~/.emacs'
Init File Syntax
Init File Examples
Terminal-specific Initialization
How Emacs Finds Your Init File
Dealing with Common Problems
Quitting and Aborting
Dealing with Emacs Trouble
If
DEL
Fails to Delete
Recursive Editing Levels
Garbage on the Screen
Garbage in the Text
Spontaneous Entry to Incremental Search
Running out of Memory
Recovery After a Crash
Emergency Escape
Help for Total Frustration
Reporting Bugs
When Is There a Bug
Understanding Bug Reporting
Checklist for Bug Reports
Sending Patches for GNU Emacs
Contributing to Emacs Development
How To Get Help with GNU Emacs
Command Line Arguments
Action Arguments
Initial Options
Command Argument Example
Resuming Emacs with Arguments
Environment Variables
General Variables
Miscellaneous Variables
Specifying the Display Name
Font Specification Options
Window Color Options
Options for Window Geometry
Internal and External Borders
Frame Titles
Icons
X Resources
Lucid Menu X Resources
Motif Menu X Resources
Emacs 19 Antinews
Emacs and MS-DOS
Keyboard and Mouse on MS-DOS
Display on MS-DOS
File Names on MS-DOS
Text Files and Binary Files
Printing and MS-DOS
Subprocesses on MS-DOS
Subprocesses on Windows 95 and NT
Using the System Menu on Windows
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
Key (Character) Index
Command and Function Index
Variable Index
Concept Index