GNU Emacs Manual
Richard M. Stallman
GNU Emacs Manual

GNU Emacs is much more than a text editor; over the years it has expanded into an entire work flow environment. Programmers are impressed by its integrated debugging and project management features. Emacs is also a multi-lingual text editor, can handle all your email and Usenet news needs, display web pages, and even has a diary and a calendar for your appointments. When you tire of all the work you can accomplish with it, Emacs contains games to play.

Features include:

  • Special editing modes for 25 programming languages including Java, Perl, C, C++, Objective C, Fortran, Lisp, Scheme, and Pascal.

  • Special scripting language modes for Bash, other common shells, and creating Makefiles for GNU/Linux, Unix, Windows/DOS and VMS systems

  • Support for typing and displaying in 21 non-English languages, including Chinese, Czech, Hindi, Hebrew, Russian, Vietnamese, and all Western European languages

  • Creates Postscript output from plain text files and has special editing modes for LaTeX and TeX

  • Compile and debug from inside Emacs

  • Maintain extensive ChangeLogs

  • Extensive file merge and diff functions

  • Directory navigation: flag, move, and delete files and sub-directories recursively

  • Run shell commands from inside Emacs, or even use Emacs as a shell itself (Eshell)

  • Version control management for release and beta versions, with CVS and RCS integration.

  • And much more!

This book picks up where the introductory on-line tutorial, available in several languages, included with Emacs, ends. It explains the full range of Emacs' power and contains reference material useful to expert users. Appendices with specific material for Macintosh and Microsoft OS users are included. Print copies can be ordered from The Free Software Foundation.

The Organization of the Screen
The Echo Area
The Mode Line
The Menu Bar
Characters, Keys and Commands
Kinds of User Input
Keys and Commands
Entering and Exiting Emacs
Entering Emacs
Exiting Emacs
Basic Editing Commands
Inserting Text
Changing the Location of Point
Erasing Text
Undoing Changes
Blank Lines
Continuation Lines
Cursor Position Information
Numeric Arguments
Repeating a Command
The Minibuffer
Using the Minibuffer
Minibuffers for File Names
Editing in the Minibuffer
Completion Example
Completion Commands
Completion Exit
How Completion Alternatives Are Chosen
Completion Options
Minibuffer History
Repeating Minibuffer Commands
Entering passwords
Yes or No Prompts
Running Commands by Name
Documentation for a Key
Help by Command or Variable Name
Help Mode Commands
Keyword Search for Packages
Help for International Language Support
Other Help Commands
Help Files
Help on Active Text and Tooltips
The Mark and the Region
Setting the Mark
Commands to Mark Textual Objects
Operating on the Region
The Mark Ring
The Global Mark Ring
Shift Selection
Disabling Transient Mark Mode
Killing and Moving Text
Deletion and Killing
Killing by Lines
Other Kill Commands
Options for Killing
The Kill Ring
Yanking Earlier Kills
Appending Kills
``Cut and Paste'' Operations on Graphical Displays
Using the Clipboard
Cut and Paste with Other Window Applications
Secondary Selection
Accumulating Text
CUA Bindings
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
Keyboard Macro Registers
Controlling the Display
Automatic Scrolling
Horizontal Scrolling
View Mode
Follow Mode
Text Faces
Colors for Faces
Standard Faces
Text Scale
Font Lock mode
Interactive Highlighting
Window Fringes
Displaying Boundaries
Useless Whitespace
Selective Display
Optional Mode Line Features
How Text Is Displayed
Displaying the Cursor
Line Truncation
Visual Line Mode
Customization of Display
Searching and Replacement
Incremental Search
Basics of Incremental Search
Repeating Incremental Search
Errors in Incremental Search
Special Input for Incremental Search
Isearch Yanking
Not Exiting Incremental Search
Searching the Minibuffer
Nonincremental Search
Word Search
Symbol Search
Regular Expression Search
Syntax of Regular Expressions
Backslash in Regular Expressions
Regular Expression Example
Searching and Case
Replacement Commands
Unconditional Replacement
Regexp Replacement
Replace Commands and Case
Query Replace
Other Search-and-Loop Commands
Commands for Fixing Typos
Transposing Text
Case Conversion
Checking and Correcting Spelling
Keyboard Macros
Basic Use
The Keyboard Macro Ring
The Keyboard Macro Counter
Executing Macros with Variations
Naming and Saving Keyboard Macros
Editing a Keyboard Macro
Stepwise Editing a Keyboard Macro
File Handling
File Names
Visiting Files
Saving Files
Commands for Saving Files
Backup Files
Single or Numbered Backups
Automatic Deletion of Backups
Copying vs. Renaming
Customizing Saving of Files
Protection against Simultaneous Editing
Shadowing Files
Updating Time Stamps Automatically
Reverting a Buffer
Auto-Saving: Protection Against Disasters
Auto-Save Files
Controlling Auto-Saving
Recovering Data from Auto-Saves
File Name Aliases
File Directories
Comparing Files
Diff Mode
Miscellaneous File Operations
Accessing Compressed Files
File Archives
Remote Files
Quoted File Names
File Name Cache
Convenience Features for Finding Files
Using Multiple Buffers
Creating and Selecting Buffers
Listing Existing Buffers
Miscellaneous Buffer Operations
Killing Buffers
Operating on Several Buffers
Indirect Buffers
Convenience Features and Customization of Buffer Handling
Making Buffer Names Unique
Fast minibuffer selection
Customizing Buffer Menus
Multiple Windows
Concepts of Emacs Windows
Splitting Windows
Using Other Windows
Displaying in Another Window
Deleting and Rearranging Windows
Displaying a Buffer in a Window
How display-buffer works
Convenience Features for Window Handling
Frames and Graphical Displays
Mouse Commands for Editing
Mouse Commands for Words and Lines
Following References with the Mouse
Mouse Clicks for Menus
Mode Line Mouse Commands
Creating Frames
Frame Commands
Speedbar Frames
Multiple Displays
Frame Parameters
Scroll Bars
Drag and Drop
Menu Bars
Tool Bars
Using Dialog Boxes
Mouse Avoidance
Non-Window Terminals
Using a Mouse in Text Terminals
International Character Set Support
Introduction to International Character Sets
Language Environments
Input Methods
Selecting an Input Method
Coding Systems
Recognizing Coding Systems
Specifying a File's Coding System
Choosing Coding Systems for Output
Specifying a Coding System for File Text
Coding Systems for Interprocess Communication
Coding Systems for File Names
Coding Systems for Terminal I/O
Defining fontsets
Modifying Fontsets
Undisplayable Characters
Unibyte Editing Mode
Bidirectional Editing
Major and Minor Modes
Major Modes
Minor Modes
Choosing File Modes
Indentation Commands
Tab Stops
Tabs vs. Spaces
Convenience Features for Indentation
Commands for Human Languages
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
Folding Editing
Org Mode
Org as an organizer
Org as an authoring system
TeX{} Mode
TeX{} Editing Commands
LaTeX{} Editing Commands
TeX{} Printing Commands
TeX{} Mode Miscellany
SGML and HTML Modes
Nroff Mode
Enriched Text
Enriched Mode
Hard and Soft Newlines
Editing Format Information
Faces in Enriched Text
Indentation in Enriched Text
Justification in Enriched Text
Setting Other Text Properties
Editing Text-based Tables
What is a Text-based Table?
Creating a Table
Table Recognition
Commands for Table Cells
Cell Justification
Table Rows and Columns
Converting Between Plain Text and Tables
Table Miscellany
Two-Column Editing
Editing Programs
Major Modes for Programming Languages
Top-Level Definitions, or Defuns
Left Margin Convention
Moving by Defuns
Which Function Mode
Indentation for Programs
Basic Program Indentation Commands
Indenting Several Lines
Customizing Lisp Indentation
Commands for C Indentation
Customizing C Indentation
Commands for Editing with Parentheses
Expressions with Balanced Parentheses
Moving in the Parenthesis Structure
Matching Parentheses
Manipulating Comments
Comment Commands
Multiple Lines of Comments
Options Controlling Comments
Documentation Lookup
Info Documentation Lookup
Man Page Lookup
Emacs Lisp Documentation Lookup
Hideshow minor mode
Completion for Symbol Names
MixedCase Words
Other Features Useful for Editing Programs
C and Related Modes
C Mode Motion Commands
Electric C Characters
Hungry Delete Feature in C
Other Commands for C Mode
Asm Mode
Compiling and Testing Programs
Running Compilations under Emacs
Compilation Mode
Subshells for Compilation
Searching with Grep under Emacs
Finding Syntax Errors On The Fly
Running Debuggers Under Emacs
Starting GUD
Debugger Operation
Commands of GUD
GUD Customization
GDB Graphical Interface
GDB User Interface Layout
Source Buffers
Breakpoints Buffer
Threads Buffer
Stack Buffer
Other GDB Buffers
Watch Expressions
Multithreaded Debugging
Executing Lisp Expressions
Libraries of Lisp Code for Emacs
Evaluating Emacs Lisp Expressions
Lisp Interaction Buffers
Running an External Lisp
Maintaining Large Programs
Version Control
Introduction to Version Control
Understanding the problems it addresses
Supported Version Control Systems
Concepts of Version Control
Merge-based vs lock-based Version Control
Changeset-based vs File-based Version Control
Decentralized vs Centralized Repositories
Types of Log File
Version Control and the Mode Line
Basic Editing under Version Control
Basic Version Control with Merging
Basic Version Control with Locking
Advanced Control in C-x v v
Features of the Log Entry Buffer
Registering a File for Version Control
Examining And Comparing Old Revisions
VC Change Log
Undoing Version Control Actions
Ignore Version Control Files
VC Directory Mode
The VC Directory Buffer
VC Directory Commands
Version Control Branches
Switching between Branches
Pulling Changes into a Branch
Merging Branches
Creating New Branches
Change Logs
Change Log Commands
Format of ChangeLog
Tags Tables
Source File Tag Syntax
Creating Tags Tables
Etags Regexps
Selecting a Tags Table
Finding a Tag
Searching and Replacing with Tags Tables
Tags Table Inquiries
Emacs Development Environment
Abbrev Concepts
Defining Abbrevs
Controlling Abbrev Expansion
Examining and Editing Abbrevs
Saving Abbrevs
Dynamic Abbrev Expansion
Customizing Dynamic Abbreviation
Dired, the Directory Editor
Entering Dired
Navigation 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
Editing the Dired Buffer
Viewing Image Thumbnails in Dired
Other Dired Features
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
Writing Calendar Files
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
The Diary
Displaying the Diary
The Diary File
Date Formats
Commands to Add to the Diary
Special Diary Entries
Importing and Exporting Diary Entries
Daylight Saving Time
Summing Time Intervals
Sending Mail
The Format of the Mail Buffer
Mail Header Fields
Mail Aliases
Mail Commands
Mail Sending
Mail Header Editing
Citing Mail
Mail Miscellany
Mail Signature
Mail Amusements
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
Rmail Attributes
Sending Replies
Making Summaries
Editing in Summaries
Sorting the Rmail File
Display of Messages
Rmail and Coding Systems
Editing Within a Message
Digest Messages
Reading Rot13 Messages
movemail program
Retrieving Mail from Remote Mailboxes
Retrieving Mail from Local Mailboxes in Various Formats
Miscellaneous Commands
Gnus Buffers
When Gnus Starts Up
Using the Gnus Group Buffer
Using the Gnus Summary Buffer
Document Viewing
DocView Navigation
DocView Searching
DocView Slicing
DocView Conversion
Web Browsing with EWW
Running Shell Commands from Emacs
Single Shell Commands
Interactive Subshell
Shell Mode
Shell Prompts
Shell Command History
Shell History Ring
Shell History Copying
Shell History References
Directory Tracking
Shell Mode Options
Emacs Terminal Emulator
Term Mode
Remote Host Shell
Serial Terminal
Using Emacs as a Server
Invoking emacsclient
emacsclient Options
Printing Hard Copies
PostScript Hardcopy
Variables for PostScript Hardcopy
Printing Package
Sorting Text
Editing Binary Files
Saving Emacs Sessions
Recursive Editing Levels
Hyperlinking and Navigation Features
Following URLs
Activating URLs
Finding Files and URLs at Point
Other Amusements
Emacs Lisp Packages
The Package Menu Buffer
Package Installation
Package Files and Directory Layout
Easy Customization Interface
Customization Groups
Browsing and Searching for Settings
Changing a Variable
Saving Customizations
Customizing Faces
Customizing Specific Items
Custom Themes
Creating Custom Themes
Examining and Setting Variables
Local Variables
Local Variables in Files
Specifying File Variables
Safety of File Variables
Per-Directory Local Variables
Customizing Key Bindings
Prefix Keymaps
Local Keymaps
Minibuffer Keymaps
Changing Key Bindings Interactively
Rebinding Keys in Your Init File
Modifier Keys
Rebinding Function Keys
Named ASCII Control Characters
Rebinding Mouse Buttons
Disabling Commands
The Emacs Initialization File
Init File Syntax
Init File Examples
Terminal-specific Initialization
How Emacs Finds Your Init File
Non-ASCII Characters in Init Files
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
Running out of Memory
When Emacs Crashes
Recovery After a Crash
Emergency Escape
Reporting Bugs
Reading Existing Bug Reports and Known Problems
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
GNU Free Documentation License
Command Line Arguments for Emacs Invocation
Action Arguments
Initial Options
Command Argument Example
Environment Variables
General Variables
Miscellaneous Variables
The MS-Windows System Registry
Specifying the Display Name
Font Specification Options
Window Color Options
Options for Window Size and Position
Internal and External Borders
Frame Titles
Other Display Options
X Options and Resources
X Resources
Table of X Resources for Emacs
GTK resources
GTK Resource Basics
GTK widget names
GTK Widget Names in Emacs
GTK styles
Emacs 23 Antinews
Emacs and Mac OS / GNUstep
Basic Emacs usage under Mac OS and GNUstep
Grabbing environment variables
Mac / GNUstep Customization
Font and Color Panels
Windowing System Events under Mac OS / GNUstep
GNUstep Support
Emacs and Microsoft Windows/MS-DOS
How to Start Emacs on MS-Windows
Text Files and Binary Files
File Names on MS-Windows
Emulation of ls on MS-Windows
HOME and Startup Directories on MS-Windows
Keyboard Usage on MS-Windows
Mouse Usage on MS-Windows
Subprocesses on Windows 9X/ME and Windows NT/2K/XP
Printing and MS-Windows
Specifying Fonts on MS-Windows
Miscellaneous Windows-specific features
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
Key (Character) Index
Command and Function Index
Variable Index
Concept Index
The book hasn't received reviews yet.
You May Also Like