The Emacs Editor
Emacs is the extensible, customizable, self-documenting real-time
display editor. This manual describes how to edit with Emacs and
some of the ways to customize it; it corresponds to GNU Emacs version
27.1.
The homepage for GNU Emacs is at
https://www.gnu.org/software/emacs/.
To view this manual in other formats, click
here.
You can also purchase a printed copy from the
FSF store.
For information on extending Emacs, see Emacs Lisp in The
Emacs Lisp Reference Manual.
This is the GNU Emacs Manual,
updated for Emacs version 27.1.
Distrib
How to get the latest Emacs distribution.
Intro
An introduction to Emacs concepts.
Important General Concepts
Screen
How to interpret what you see on the screen.
User Input
Kinds of input events (characters, buttons,
function keys).
Keys
Key sequences: what you type to request one
editing action.
Commands
Named functions run by key sequences to do editing.
Entering Emacs
Starting Emacs from the shell.
Exiting
Stopping or killing Emacs.
Fundamental Editing Commands
Basic
The most basic editing commands.
Minibuffer
Entering arguments that are prompted for.
M-x
Invoking commands by their names.
Help
Commands for asking Emacs about its commands.
Important Text-Changing Commands
Mark
The mark: how to delimit a region of text.
Killing
Killing (cutting) and yanking (copying) text.
Registers
Saving a text string or a location in the buffer.
Display
Controlling what text is displayed.
Search
Finding or replacing occurrences of a string.
Fixit
Commands especially useful for fixing typos.
Keyboard Macros
Recording a sequence of keystrokes to be replayed.
Major Structures of Emacs
Files
All about handling files.
Buffers
Multiple buffers; editing several files at once.
Windows
Viewing multiple pieces of text in one frame.
Frames
Using multiple windows on your display.
International
Using non-ASCII character sets.
Advanced Features
Modes
Major and minor modes alter Emacs’s basic behavior.
Indentation
Editing the white space at the beginnings of lines.
Text
Commands and modes for editing human languages.
Programs
Commands and modes for editing programs.
Building
Compiling, running and debugging programs.
Maintaining
Features for maintaining large programs.
Abbrevs
Defining text abbreviations to reduce typing.
Dired
Directory and file manager.
Calendar/Diary
Calendar and diary facilities.
Sending Mail
Sending mail in Emacs.
Rmail
Reading mail in Emacs.
Gnus
A flexible mail and news reader.
Host Security
Security issues on a single computer.
Network Security
Managing the network security.
Document View
Viewing PDF, PS and DVI files.
Shell
Executing shell commands from Emacs.
Emacs Server
Using Emacs as an editing server.
Printing
Printing hardcopies of buffers or regions.
Sorting
Sorting lines, paragraphs or pages within Emacs.
Picture Mode
Editing pictures made up of text characters.
Editing Binary Files
Editing binary files with Hexl mode.
Saving Emacs Sessions
Saving Emacs state from one session to the next.
Recursive Edit
Performing edits while within another command.
Hyperlinking
Following links in buffers.
Amusements
Various games and hacks.
Packages
Installing additional features.
Customization
Modifying the behavior of Emacs.
Recovery from Problems
Quitting
Quitting and aborting.
Lossage
What to do if Emacs is hung or malfunctioning.
Bugs
How and when to report a bug.
Contributing
How to contribute improvements to Emacs.
Service
How to get help for your own Emacs needs.
Appendices
Copying
The GNU General Public License gives you permission
to redistribute GNU Emacs on certain terms;
it also explains that there is no warranty.
GNU Free Documentation License
The license for this documentation.
Emacs Invocation
Hairy startup options.
X Resources
X resources for customizing Emacs.
Antinews
Information about Emacs version 26.
Mac OS / GNUstep
Using Emacs under macOS and GNUstep.
Microsoft Windows
Using Emacs on Microsoft Windows and MS-DOS.
Manifesto
What’s GNU? Gnu’s Not Unix!
Glossary
Terms used in this manual.
Acknowledgments
Major contributors to GNU Emacs.
Indexes (each index contains a large menu)
Key Index
An item for each standard Emacs key sequence.
Option Index
An item for every command-line option.
Command Index
An item for each standard command name.
Variable Index
An item for each variable documented in this manual.
Concept Index
An item for concepts and other general subjects.
Detailed Node Listing
Here are some other nodes which are really subnodes of the ones
already listed, mentioned here so you can get to them in one step:
The Organization of the Screen
Point
The place in the text where editing commands operate.
Echo Area
Short messages appear at the bottom of the screen.
Mode Line
Interpreting the mode line.
Menu Bar
How to use the menu bar.
Basic Editing Commands
Inserting Text
Inserting text by simply typing it.
Moving Point
Moving the cursor to the place where you want to
change something.
Erasing
Deleting and killing text.
Basic Undo
Undoing recent changes in the text.
Basic Files
Visiting, creating, and saving files.
Basic Help
Asking what a character does.
Blank Lines
Making and deleting blank lines.
Continuation Lines
How Emacs displays lines too wide for the screen.
Position Info
What line, row, or column is point on?
Arguments
Numeric arguments for repeating a command N times.
Repeating
Repeating the previous command quickly.
The Minibuffer
Basic Minibuffer
Basic usage of the minibuffer.
Minibuffer File
Entering file names with the minibuffer.
Minibuffer Edit
How to edit in the minibuffer.
Completion
An abbreviation facility for minibuffer input.
Minibuffer History
Reusing recent minibuffer arguments.
Repetition
Re-executing commands that used the minibuffer.
Passwords
Entering passwords in the echo area.
Yes or No Prompts
Replying yes or no in the echo area.
Completion
Completion Example
Examples of using completion.
Completion Commands
A list of completion commands.
Completion Exit
Completion and minibuffer text submission.
Completion Styles
How completion matches are chosen.
Completion Options
Options for completion.
Help
Help Summary
Brief list of all Help commands.
Key Help
Asking what a key does in Emacs.
Name Help
Asking about a command, variable or function name.
Apropos
Asking what pertains to a given topic.
Help Mode
Special features of Help mode and Help buffers.
Package Keywords
Finding Lisp libraries by keywords (topics).
Language Help
Help relating to international language support.
Misc Help
Other help commands.
Help Files
Commands to display auxiliary help files.
Help Echo
Help on active text and tooltips.
The Mark and the Region
Setting Mark
Commands to set the mark.
Marking Objects
Commands to put region around textual units.
Using Region
Summary of ways to operate on contents of the region.
Mark Ring
Previous mark positions saved so you can go back there.
Global Mark Ring
Previous mark positions in various buffers.
Shift Selection
Using shifted cursor motion keys.
Disabled Transient Mark
Leaving regions unhighlighted by default.
Killing and Moving Text
Deletion and Killing
Commands that remove text.
Yanking
Commands that insert text.
Cut and Paste
Clipboard and selections on graphical displays.
Accumulating Text
Other methods to add text to the buffer.
Rectangles
Operating on text in rectangular areas.
CUA Bindings
Using C-x/C-c/C-v to kill and yank.
Deletion and Killing
Deletion
Commands for deleting small amounts of text and
blank areas.
Killing by Lines
How to kill entire lines of text at one time.
Other Kill Commands
Commands to kill large regions of text and
syntactic units such as words and sentences.
Kill Options
Options that affect killing.
Yanking
Kill Ring
Where killed text is stored.
Earlier Kills
Yanking something killed some time ago.
Appending Kills
Several kills in a row all yank together.
Cut and Paste Operations on Graphical Displays
Clipboard
How Emacs uses the system clipboard.
Primary Selection
The temporarily selected text selection.
Secondary Selection
Cutting without altering point and mark.
Registers
Position Registers
Saving positions in registers.
Text Registers
Saving text in registers.
Rectangle Registers
Saving rectangles in registers.
Configuration Registers
Saving window configurations in registers.
Number Registers
Numbers in registers.
File Registers
File names in registers.
Keyboard Macro Registers
Keyboard macros in registers.
Bookmarks
Bookmarks are like registers, but persistent.
Controlling the Display
Scrolling
Commands to move text up and down in a window.
Recentering
A scroll command that centers the current line.
Auto Scrolling
Redisplay scrolls text automatically when needed.
Horizontal Scrolling
Moving text left and right in a window.
Narrowing
Restricting display and editing to a portion
of the buffer.
View Mode
Viewing read-only buffers.
Follow Mode
Follow mode lets two windows scroll as one.
Faces
How to change the display style using faces.
Colors
Specifying colors for faces.
Standard Faces
The main predefined faces.
Text Scale
Increasing or decreasing text size in a buffer.
Font Lock
Minor mode for syntactic highlighting using faces.
Highlight Interactively
Tell Emacs what text to highlight.
Fringes
Enabling or disabling window fringes.
Displaying Boundaries
Displaying top and bottom of the buffer.
Useless Whitespace
Showing possibly spurious trailing whitespace.
Selective Display
Hiding lines with lots of indentation.
Optional Mode Line
Optional mode line display features.
Text Display
How text characters are normally displayed.
Cursor Display
Features for displaying the cursor.
Line Truncation
Truncating lines to fit the screen width instead
of continuing them to multiple screen lines.
Visual Line Mode
Word wrap and screen line-based editing.
Display Custom
Information on variables for customizing display.
Searching and Replacement
Incremental Search
Search happens as you type the string.
Nonincremental Search
Specify entire string and then search.
Word Search
Search for sequence of words.
Symbol Search
Search for a source code symbol.
Regexp Search
Search for match for a regexp.
Regexps
Syntax of regular expressions.
Regexp Backslash
Regular expression constructs starting with ‘\’.
Regexp Example
A complex regular expression explained.
Lax Search
Search ignores some distinctions between
similar characters, like letter-case.
Replace
Search, and replace some or all matches.
Other Repeating Search
Operating on all matches for some regexp.
Search Customizations
Various search customizations.
Incremental Search
Basic Isearch
Basic incremental search commands.
Repeat Isearch
Searching for the same string again.
Isearch Yank
Commands that grab text into the search string
or else edit the search string.
Error in Isearch
When your string is not found.
Special Isearch
Special input in incremental search.
Not Exiting Isearch
Prefix argument and scrolling commands.
Isearch Minibuffer
Incremental search of the minibuffer history.
Replacement Commands
Unconditional Replace
Replacing all matches for a string.
Regexp Replace
Replacing all matches for a regexp.
Replacement and Lax Matches
Lax searching for text to replace.
Query Replace
How to use querying.
Commands for Fixing Typos
Undo
The Undo commands.
Transpose
Exchanging two characters, words, lines, lists...
Fixing Case
Correcting case of last word entered.
Spelling
Apply spelling checker to a word, or a whole file.
Keyboard Macros
Basic Keyboard Macro
Defining and running keyboard macros.
Keyboard Macro Ring
Where previous keyboard macros are saved.
Keyboard Macro Counter
Inserting incrementing numbers in macros.
Keyboard Macro Query
Making keyboard macros do different things each
time.
Save Keyboard Macro
Giving keyboard macros names; saving them in
files.
Edit Keyboard Macro
Editing keyboard macros.
Keyboard Macro Step-Edit
Interactively executing and editing a keyboard
macro.
File Handling
File Names
How to type and edit file-name arguments.
Visiting
Visiting a file prepares Emacs to edit the file.
Saving
Saving makes your changes permanent.
Reverting
Reverting cancels all the changes not saved.
Auto Revert
Keeping buffers automatically up-to-date.
Auto Save
Auto Save periodically protects against loss of data.
File Aliases
Handling multiple names for one file.
Directories
Creating, deleting, and listing file directories.
Comparing Files
Finding where two files differ.
Diff Mode
Mode for editing file differences.
Copying and Naming
Copying, naming and renaming files.
Misc File Ops
Other things you can do on files.
Compressed Files
Accessing compressed files.
File Archives
Operating on tar, zip, jar etc. archive files.
Remote Files
Accessing files on other machines.
Quoted File Names
Quoting special characters in file names.
File Name Cache
Completion against a list of files you often use.
File Conveniences
Convenience features for finding files.
Image Mode
Viewing image files.
Filesets
Handling sets of files.
Saving Files
Save Commands
Commands for saving files.
Backup
How Emacs saves the old version of your file.
Customize Save
Customizing the saving of files.
Interlocking
How Emacs protects against simultaneous editing
of one file by two users.
File Shadowing
Copying files to shadows automatically.
Time Stamps
Emacs can update time stamps on saved files.
Backup Files
Backup Names
How backup files are named.
Backup Deletion
Emacs deletes excess numbered backups.
Backup Copying
Backups can be made by copying or renaming.
Auto Reverting Non-File Buffers
Auto Reverting the Buffer Menu
Auto Revert of the Buffer Menu.
Auto Reverting Dired
Auto Revert of Dired buffers.
Auto-Saving: Protection Against Disasters
Auto Save Files
The file where auto-saved changes are
actually made until you save the file.
Auto Save Control
Controlling when and how often to auto-save.
Recover
Recovering text from auto-save files.
Using Multiple Buffers
Select Buffer
Creating a new buffer or reselecting an old one.
List Buffers
Getting a list of buffers that exist.
Misc Buffer
Renaming; changing read-only status; copying text.
Kill Buffer
Killing buffers you no longer need.
Several Buffers
How to go through the list of all buffers
and operate variously on several of them.
Indirect Buffers
An indirect buffer shares the text of another buffer.
Buffer Convenience
Convenience and customization features for
buffer handling.
Convenience Features and Customization of Buffer Handling
Uniquify
Making buffer names unique with directory parts.
Icomplete
Fast minibuffer selection.
Buffer Menus
Configurable buffer menu.
Multiple Windows
Basic Window
Introduction to Emacs windows.
Split Window
New windows are made by splitting existing windows.
Other Window
Moving to another window or doing something to it.
Pop Up Window
Finding a file or buffer in another window.
Change Window
Deleting windows and changing their sizes.
Displaying Buffers
How Emacs picks a window for displaying a buffer.
Temporary Displays
Displaying non-editable buffers.
Window Convenience
Convenience functions for window handling.
Tab Line
Window tab line.
Displaying a Buffer in a Window
Window Choice
How display-buffer
works.
Frames and Graphical Displays
Mouse Commands
Moving, cutting, and pasting, with the mouse.
Word and Line Mouse
Mouse commands for selecting whole words or lines.
Mouse References
Using the mouse to select an item from a list.
Menu Mouse Clicks
Mouse clicks that bring up menus.
Mode Line Mouse
Mouse clicks on the mode line.
Creating Frames
Creating additional Emacs frames with various contents.
Frame Commands
Iconifying, deleting, and switching frames.
Fonts
Changing the frame font.
Speedbar
How to make and use a speedbar frame.
Multiple Displays
How one Emacs instance can talk to several displays.
Frame Parameters
Changing the colors and other modes of frames.
Scroll Bars
How to enable and disable scroll bars; how to use them.
Window Dividers
Window separators that can be dragged with the mouse.
Drag and Drop
Using drag and drop to open files and insert text.
Menu Bars
Enabling and disabling the menu bar.
Tool Bars
Enabling and disabling the tool bar.
Tab Bars
Enabling and disabling the tab bar.
Dialog Boxes
Controlling use of dialog boxes.
Tooltips
Displaying information at the current mouse position.
Mouse Avoidance
Preventing the mouse pointer from obscuring text.
Non-Window Terminals
Multiple frames on terminals that show only one.
Text-Only Mouse
Using the mouse in text terminals.
International Character Set Support
International Chars
Basic concepts of multibyte characters.
Language Environments
Setting things up for the language you use.
Input Methods
Entering text characters not on your keyboard.
Select Input Method
Specifying your choice of input methods.
Coding Systems
Character set conversion when you read and
write files, and so on.
Recognize Coding
How Emacs figures out which conversion to use.
Specify Coding
Specifying a file’s coding system explicitly.
Output Coding
Choosing coding systems for output.
Text Coding
Choosing conversion to use for file text.
Communication Coding
Coding systems for interprocess communication.
File Name Coding
Coding systems for file names.
Terminal Coding
Specifying coding systems for converting
terminal input and output.
Fontsets
Fontsets are collections of fonts
that cover the whole spectrum of characters.
Defining Fontsets
Defining a new fontset.
Modifying Fontsets
Modifying an existing fontset.
Undisplayable Characters
When characters don’t display.
Unibyte Mode
You can pick one European character set
to use without multibyte characters.
Charsets
How Emacs groups its internal character codes.
Bidirectional Editing
Support for right-to-left scripts.
Major and Minor Modes
Major Modes
Text mode vs. Lisp mode vs. C mode...
Minor Modes
Each minor mode is a feature you can turn on
independently of any others.
Choosing Modes
How modes are chosen when visiting files.
Indentation
Indentation Commands
More commands for performing indentation.
Tab Stops
Stop points for indentation in Text modes.
Just Spaces
Using only space characters for indentation.
Indent Convenience
Optional indentation features.
Commands for Human Languages
Words
Moving over and killing words.
Sentences
Moving over and killing sentences.
Paragraphs
Moving over paragraphs.
Pages
Moving over pages.
Quotation Marks
Inserting quotation marks.
Filling
Filling or justifying text.
Case
Changing the case of text.
Text Mode
The major modes for editing text files.
Outline Mode
Editing outlines.
Org Mode
The Emacs organizer.
TeX Mode
Editing TeX and LaTeX files.
HTML Mode
Editing HTML and SGML files.
Nroff Mode
Editing input to the nroff formatter.
Enriched Text
Editing text enriched with fonts, colors, etc.
Text Based Tables
Commands for editing text-based tables.
Two-Column
Splitting text columns into separate windows.
Filling Text
Auto Fill
Auto Fill mode breaks long lines automatically.
Fill Commands
Commands to refill paragraphs and center lines.
Fill Prefix
Filling paragraphs that are indented
or in a comment, etc.
Adaptive Fill
How Emacs can determine the fill prefix automatically.
Outline Mode
Outline Format
What the text of an outline looks like.
Outline Motion
Special commands for moving through outlines.
Outline Visibility
Commands to control what is visible.
Outline Views
Outlines and multiple views.
Foldout
Folding means zooming in on outlines.
Org Mode
Org Organizer
Managing TODO lists and agendas.
Org Authoring
Exporting Org buffers to various formats.
TeX Mode
TeX Editing
Special commands for editing in TeX mode.
LaTeX Editing
Additional commands for LaTeX input files.
TeX Print
Commands for printing part of a file with TeX.
TeX Misc
Customization of TeX mode, and related features.
Enriched Text
Enriched Mode
Entering and exiting Enriched mode.
Hard and Soft Newlines
There are two different kinds of newlines.
Editing Format Info
How to edit text properties.
Enriched Faces
Bold, italic, underline, etc.
Enriched Indentation
Changing the left and right margins.
Enriched Justification
Centering, setting text flush with the
left or right margin, etc.
Enriched Properties
The “Special text properties” submenu.
Editing Text-based Tables
Table Definition
What is a text based table.
Table Creation
How to create a table.
Table Recognition
How to activate and deactivate tables.
Cell Commands
Cell-oriented commands in a table.
Cell Justification
Justifying cell contents.
Table Rows and Columns
Inserting and deleting rows and columns.
Table Conversion
Converting between plain text and tables.
Table Misc
Table miscellany.
Editing Programs
Program Modes
Major modes for editing programs.
Defuns
Commands to operate on major top-level parts
of a program.
Program Indent
Adjusting indentation to show the nesting.
Parentheses
Commands that operate on parentheses.
Comments
Inserting, killing, and aligning comments.
Documentation
Getting documentation of functions you plan to call.
Hideshow
Displaying blocks selectively.
Symbol Completion
Completion on symbol names of your program or language.
MixedCase Words
Dealing with identifiersLikeThis.
Semantic
Suite of editing tools based on source code parsing.
Misc for Programs
Other Emacs features useful for editing programs.
C Modes
Special commands of C, C++, Objective-C,
Java, IDL, Pike and AWK modes.
Asm Mode
Asm mode and its special features.
Fortran
Fortran mode and its special features.
Top-Level Definitions, or Defuns
Left Margin Paren
An open-paren or similar opening delimiter
starts a defun if it is at the left margin.
Moving by Defuns
Commands to move over or mark a major definition.
Imenu
Making buffer indexes as menus.
Which Function
Which Function mode shows which function you are in.
Indentation for Programs
Basic Indent
Indenting a single line.
Multi-line Indent
Commands to reindent many lines at once.
Lisp Indent
Specifying how each Lisp function should be indented.
C Indent
Extra features for indenting C and related modes.
Custom C Indent
Controlling indentation style for C and related modes.
Commands for Editing with Parentheses
Expressions
Expressions with balanced parentheses.
Moving by Parens
Commands for moving up, down and across
in the structure of parentheses.
Matching
Insertion of a close-delimiter flashes matching open.
Manipulating Comments
Comment Commands
Inserting, killing, and aligning comments.
Multi-Line Comments
Commands for adding and editing multi-line comments.
Options for Comments
Customizing the comment features.
Documentation Lookup
Info Lookup
Looking up library functions and commands in Info files.
Man Page
Looking up man pages of library functions and commands.
Lisp Doc
Looking up Emacs Lisp functions, etc.
C and Related Modes
Motion in C
Commands to move by C statements, etc.
Electric C
Colon and other chars can automatically reindent.
Hungry Delete
A more powerful DEL command.
Other C Commands
Filling comments, viewing expansion of macros,
and other neat features.
Fortran Mode
Fortran Motion
Moving point by statements or subprograms.
Fortran Indent
Indentation commands for Fortran.
Fortran Comments
Inserting and aligning comments.
Fortran Autofill
Auto fill support for Fortran.
Fortran Columns
Measuring columns for valid Fortran.
Fortran Abbrev
Built-in abbrevs for Fortran keywords.
Fortran Indentation
ForIndent Commands
Commands for indenting and filling Fortran.
ForIndent Cont
How continuation lines indent.
ForIndent Num
How line numbers auto-indent.
ForIndent Conv
Conventions you must obey to avoid trouble.
ForIndent Vars
Variables controlling Fortran indent style.
Compiling and Testing Programs
Compilation
Compiling programs in languages other
than Lisp (C, Pascal, etc.).
Compilation Mode
The mode for visiting compiler errors.
Compilation Shell
Customizing your shell properly
for use in the compilation buffer.
Grep Searching
Searching with grep.
Flymake
Finding syntax errors on the fly.
Debuggers
Running symbolic debuggers for non-Lisp programs.
Executing Lisp
Various modes for editing Lisp programs,
with different facilities for running
the Lisp programs.
Lisp Libraries
How Lisp programs are loaded into Emacs.
Lisp Eval
Executing a single Lisp expression in Emacs.
Lisp Interaction
Executing Lisp in an Emacs buffer.
External Lisp
Communicating through Emacs with a separate Lisp.
Running Debuggers Under Emacs
Starting GUD
How to start a debugger subprocess.
Debugger Operation
Connection between the debugger and source buffers.
Commands of GUD
Key bindings for common commands.
GUD Customization
Defining your own commands for GUD.
GDB Graphical Interface
An enhanced mode that uses GDB features to
implement a graphical debugging environment.
GDB Graphical Interface
GDB User Interface Layout
Control the number of displayed buffers.
Source Buffers
Use the mouse in the fringe/margin to
control your program.
Breakpoints Buffer
A breakpoint control panel.
Threads Buffer
Displays your threads.
Stack Buffer
Select a frame from the call stack.
Other GDB Buffers
Other buffers for controlling the GDB state.
Watch Expressions
Monitor variable values in the speedbar.
Multithreaded Debugging
Debugging programs with several threads.
Maintaining Large Programs
Version Control
Using version control systems.
Projects
Commands for handling source files in a project.
Change Log
Maintaining a change history for your program.
Xref
Find definitions and references of any function,
method, struct, macro, … in your program.
EDE
An integrated development environment for Emacs.
Emerge
A convenient way of merging two versions of a program.
Version Control
Introduction to VC
How version control works in general.
VC Mode Line
How the mode line shows version control status.
Basic VC Editing
How to edit a file under version control.
Log Buffer
Features available in log entry buffers.
Registering
Putting a file under version control.
Old Revisions
Examining and comparing old versions.
VC Change Log
Viewing the VC Change Log.
VC Undo
Canceling changes before or after committing.
VC Ignore
Ignore files under version control system.
VC Directory Mode
Listing files managed by version control.
Branches
Multiple lines of development.
Miscellaneous VC
Various other commands and features of VC.
Customizing VC
Variables that change VC’s behavior.
Introduction to Version Control
Why Version Control?
Understanding the problems it addresses.
Version Control Systems
Supported version control back-end systems.
VCS Concepts
Words and concepts related to version control.
VCS Merging
How file conflicts are handled.
VCS Changesets
How changes are grouped.
VCS Repositories
Where version control repositories are stored.
Types of Log File
The VCS log in contrast to the ChangeLog.
Basic Editing under Version Control
VC With A Merging VCS
Without locking: default mode for CVS.
VC With A Locking VCS
RCS in its default mode, SCCS, and optionally CVS.
Advanced C-x v v
Advanced features available with a prefix argument.
VC Directory Mode
VC Directory Buffer
What the buffer looks like and means.
VC Directory Commands
Commands to use in a VC directory buffer.
Version Control Branches
Switching Branches
How to get to another existing branch.
Pulling / Pushing
Receiving/sending changes from/to elsewhere.
Merging
Transferring changes between branches.
Creating Branches
How to start a new branch.
Miscellaneous Commands and Features of VC
Change Logs and VC
Generating a change log file from log entries.
VC Delete/Rename
Deleting and renaming version-controlled files.
Revision Tags
Symbolic names for revisions.
Version Headers
Inserting version control headers into working files.
Customizing VC
General VC Options
Options that apply to multiple back ends.
RCS and SCCS
Options for RCS and SCCS.
CVS Options
Options for CVS.
Change Logs
Change Log Commands
Commands for editing change log files.
Format of ChangeLog
What the change log file looks like.
Xref
Find Identifiers
Commands to find where an identifier is defined
or referenced, to list identifiers, etc.
Tags Tables
Tags table records which file defines a symbol.
Select Tags Table
How to visit a specific tags table.
Find Identifiers
Looking Up Identifiers
Commands to find the definition of a specific tag.
Xref Commands
Commands in the *xref*
buffer.
Identifier Search
Searching and replacing identifiers.
List Identifiers
Listing identifiers and completing on them.
Tags Tables
Tag Syntax
Tag syntax for various types of code and text files.
Create Tags Table
Creating a tags table with etags
.
Etags Regexps
Create arbitrary tags using regular expressions.
Merging Files with Emerge
Overview of Emerge
How to start Emerge. Basic concepts.
Submodes of Emerge
Fast mode vs. Edit mode.
Skip Prefers mode and Auto Advance mode.
State of Difference
You do the merge by specifying state A or B
for each difference.
Merge Commands
Commands for selecting a difference,
changing states of differences, etc.
Exiting Emerge
What to do when you’ve finished the merge.
Combining in Emerge
How to keep both alternatives for a difference.
Fine Points of Emerge
Miscellaneous issues.
Abbrevs
Abbrev Concepts
Fundamentals of defined abbrevs.
Defining Abbrevs
Defining an abbrev, so it will expand when typed.
Expanding Abbrevs
Controlling expansion: prefixes, canceling expansion.
Editing Abbrevs
Viewing or editing the entire list of defined abbrevs.
Saving Abbrevs
Saving the entire list of abbrevs for another session.
Dynamic Abbrevs
Abbreviations for words already in the buffer.
Dabbrev Customization
What is a word, for dynamic abbrevs. Case handling.
Editing Pictures
Basic Picture
Basic concepts and simple commands of Picture Mode.
Insert in Picture
Controlling direction of cursor motion
after self-inserting characters.
Tabs in Picture
Various features for tab stops and indentation.
Rectangles in Picture
Clearing and superimposing rectangles.
Dired, the Directory Editor
Dired Enter
How to invoke Dired.
Dired Navigation
Special motion commands in the Dired buffer.
Dired Deletion
Deleting files with Dired.
Flagging Many Files
Flagging files based on their names.
Dired Visiting
Other file operations through Dired.
Marks vs Flags
Flagging for deletion vs marking.
Operating on Files
How to copy, rename, print, compress, etc.
either one file or several files.
Shell Commands in Dired
Running a shell command on the marked files.
Transforming File Names
Using patterns to rename multiple files.
Comparison in Dired
Running diff
by way of Dired.
Subdirectories in Dired
Adding subdirectories to the Dired buffer.
Subdir Switches
Subdirectory switches in Dired.
Subdirectory Motion
Moving across subdirectories, and up and down.
Hiding Subdirectories
Making subdirectories visible or invisible.
Dired Updating
Discarding lines for files of no interest.
Dired and Find
Using find
to choose the files for Dired.
Wdired
Operating on files by editing the Dired buffer.
Image-Dired
Viewing image thumbnails in Dired.
Misc Dired Features
Various other features.
The Calendar and the Diary
Calendar Motion
Moving through the calendar; selecting a date.
Scroll Calendar
Bringing earlier or later months onto the screen.
Counting Days
How many days are there between two dates?
General Calendar
Exiting or recomputing the calendar.
Writing Calendar Files
Writing calendars to files of various formats.
Holidays
Displaying dates of holidays.
Sunrise/Sunset
Displaying local times of sunrise and sunset.
Lunar Phases
Displaying phases of the moon.
Other Calendars
Converting dates to other calendar systems.
Diary
Displaying events from your diary.
Daylight Saving
How to specify when daylight saving time is active.
Time Intervals
Keeping track of time intervals.
Advanced Calendar/Diary Usage
Advanced Calendar/Diary customization.
Movement in the Calendar
Calendar Unit Motion
Moving by days, weeks, months, and years.
Move to Beginning or End
Moving to start/end of weeks, months, and years.
Specified Dates
Moving to the current date or another
specific date.
Conversion To and From Other Calendars
Calendar Systems
The calendars Emacs understands
(aside from Gregorian).
To Other Calendar
Converting the selected date to various calendars.
From Other Calendar
Moving to a date specified in another calendar.
The Diary
Format of Diary File
Entering events in your diary.
Displaying the Diary
Viewing diary entries and associated calendar dates.
Date Formats
Various ways you can specify dates.
Adding to Diary
Commands to create diary entries.
Special Diary Entries
Anniversaries, blocks of dates, cyclic entries, etc.
Appointments
Reminders when it’s time to do something.
Importing Diary
Converting diary events to/from other formats.
More advanced features of the Calendar and Diary
Calendar Customizing
Calendar layout and hooks.
Holiday Customizing
Defining your own holidays.
Mayan Calendar
Moving to a date specified in a Mayan calendar.
Date Display Format
Changing the format.
Time Display Format
Changing the format.
Diary Customizing
Defaults you can set.
Non-Gregorian Diary
Diary entries based on other calendars.
Diary Display
A choice of ways to display the diary.
Fancy Diary Display
Sorting diary entries, using included diary files.
Sexp Diary Entries
More flexible diary entries.
Sending Mail
Mail Format
Format of a mail message.
Mail Headers
Details of some standard mail header fields.
Mail Aliases
Abbreviating and grouping mail addresses.
Mail Commands
Special commands for editing mail being composed.
Mail Signature
Adding a signature to every message.
Mail Amusements
Distracting the NSA; adding fortune messages.
Mail Methods
Using alternative mail-composition methods.
Mail Commands
Mail Sending
Commands to send the message.
Header Editing
Commands to move to header fields and edit them.
Citing Mail
Quoting a message you are replying to.
Mail Misc
Attachments, spell checking, etc.
Reading Mail with Rmail
Rmail Basics
Basic concepts of Rmail, and simple use.
Rmail Scrolling
Scrolling through a message.
Rmail Motion
Moving to another message.
Rmail Deletion
Deleting and expunging messages.
Rmail Inbox
How mail gets into the Rmail file.
Rmail Files
Using multiple Rmail files.
Rmail Output
Copying message out to files.
Rmail Labels
Classifying messages by labeling them.
Rmail Attributes
Certain standard labels, called attributes.
Rmail Reply
Sending replies to messages you are viewing.
Rmail Summary
Summaries show brief info on many messages.
Rmail Sorting
Sorting messages in Rmail.
Rmail Display
How Rmail displays a message; customization.
Rmail Coding
How Rmail handles decoding character sets.
Rmail Editing
Editing message text and headers in Rmail.
Rmail Digest
Extracting the messages from a digest message.
Rmail Rot13
Reading messages encoded in the rot13 code.
Movemail
More details of fetching new mail.
Remote Mailboxes
Retrieving mail from remote mailboxes.
Other Mailbox Formats
Retrieving mail from local mailboxes in
various formats.
Rmail Summaries
Rmail Make Summary
Making various sorts of summaries.
Rmail Summary Edit
Manipulating messages from the summary.
Gnus
Buffers of Gnus
The group, summary, and article buffers.
Gnus Startup
What you should know about starting Gnus.
Gnus Group Buffer
A short description of Gnus group commands.
Gnus Summary Buffer
A short description of Gnus summary commands.
Document Viewing
DocView Navigation
Navigating DocView buffers.
DocView Searching
Searching inside documents.
DocView Slicing
Specifying which part of a page is displayed.
DocView Conversion
Influencing and triggering conversion.
Running Shell Commands from Emacs
Single Shell
How to run one shell command and return.
Interactive Shell
Permanent shell taking input via Emacs.
Shell Mode
Special Emacs commands used with permanent shell.
Shell Prompts
Two ways to recognize shell prompts.
Shell History
Repeating previous commands in a shell buffer.
Directory Tracking
Keeping track when the subshell changes directory.
Shell Options
Options for customizing Shell mode.
Terminal emulator
An Emacs window as a terminal emulator.
Term Mode
Special Emacs commands used in Term mode.
Remote Host
Connecting to another computer.
Serial Terminal
Connecting to a serial port.
Shell Command History
Shell Ring
Fetching commands from the history list.
Shell History Copying
Moving to a command and then copying it.
History References
Expanding ‘!
’-style history references.
Using Emacs as a Server
TCP Emacs server
Listening to a TCP socket.
Invoking emacsclient
Connecting to the Emacs server.
emacsclient Options
Emacs client startup options.
Printing Hard Copies
PostScript
Printing buffers or regions as PostScript.
PostScript Variables
Customizing the PostScript printing commands.
Printing Package
An optional advanced printing interface.
Hyperlinking and Navigation Features
EWW
A web browser in Emacs.
Embedded WebKit Widgets
Embedding browser widgets in Emacs buffers.
Browse-URL
Following URLs.
Goto Address mode
Activating URLs.
FFAP
Finding files etc. at point.
Emacs Lisp Packages
Package Menu
Buffer for viewing and managing packages.
Package Statuses
Which statuses a package can have.
Package Installation
Options for package installation.
Package Files
Where packages are installed.
Customization
Easy Customization
Convenient way to browse and change settings.
Variables
Many Emacs commands examine Emacs variables
to decide what to do; by setting variables,
you can control their functioning.
Key Bindings
The keymaps say what command each key runs.
By changing them, you can redefine keys.
Init File
How to write common customizations in the
initialization file.
Authentication
Keeping persistent authentication information.
Easy Customization Interface
Customization Groups
How settings are classified.
Browsing Custom
Browsing and searching for settings.
Changing a Variable
How to edit an option’s value and set the option.
Saving Customizations
Saving customizations for future Emacs sessions.
Face Customization
How to edit the attributes of a face.
Specific Customization
Customizing specific settings or groups.
Custom Themes
Collections of customization settings.
Creating Custom Themes
How to create a new custom theme.
Variables
Examining
Examining or setting one variable’s value.
Hooks
Hook variables let you specify programs for parts
of Emacs to run on particular occasions.
Locals
Per-buffer values of variables.
File Variables
How files can specify variable values.
Directory Variables
How variable values can be specified by directory.
Connection Variables
Variables which are valid for buffers with a
remote default directory.
Local Variables in Files
Specifying File Variables
Specifying file local variables.
Safe File Variables
Making sure file local variables are safe.
Customizing Key Bindings
Keymaps
Generalities. The global keymap.
Prefix Keymaps
Keymaps for prefix keys.
Local Keymaps
Major and minor modes have their own keymaps.
Minibuffer Maps
The minibuffer uses its own local keymaps.
Rebinding
How to redefine one key’s meaning conveniently.
Init Rebinding
Rebinding keys with your initialization file.
Modifier Keys
Using modifier keys in key bindings.
Function Keys
Rebinding terminal function keys.
Named ASCII Chars
Distinguishing TAB
from C-i, and so on.
Mouse Buttons
Rebinding mouse buttons in Emacs.
Disabling
Disabling a command means confirmation is required
before it can be executed. This is done to protect
beginners from surprises.
The Emacs Initialization File
Init Syntax
Syntax of constants in Emacs Lisp.
Init Examples
How to do some things with an init file.
Terminal Init
Each terminal type can have an init file.
Find Init
How Emacs finds the init file.
Init Non-ASCII
Using non-ASCII characters in an init file.
Early Init File
Another init file, which is read early on.
Dealing with Emacs Trouble
DEL Does Not Delete
What to do if DEL
doesn’t delete.
Stuck Recursive
’[...]’ in mode line around the parentheses.
Screen Garbled
Garbage on the screen.
Text Garbled
Garbage in the text.
Memory Full
How to cope when you run out of memory.
Crashing
What Emacs does when it crashes.
After a Crash
Recovering editing in an Emacs session that crashed.
Emergency Escape
What to do if Emacs stops responding.
Long Lines
Mitigating slowness due to extremely long lines.
Reporting Bugs
Known Problems
How to read about known problems and bugs.
Bug Criteria
Have you really found a bug?
Understanding Bug Reporting
How to report a bug effectively.
Checklist
Steps to follow for a good bug report.
Sending Patches
How to send a patch for GNU Emacs.
Contributing to Emacs Development
Coding Standards
GNU Emacs coding standards.
Copyright Assignment
Assigning copyright to the FSF.
Command Line Arguments for Emacs Invocation
Action Arguments
Arguments to visit files, load libraries,
and call functions.
Initial Options
Arguments that take effect while starting Emacs.
Command Example
Examples of using command line arguments.
Environment
Environment variables that Emacs uses.
Display X
Changing the default display and using remote login.
Font X
Choosing a font for text, under X.
Colors X
Choosing display colors.
Window Size X
Start-up window size, under X.
Borders X
Internal and outer borders, under X.
Title X
Specifying the initial frame’s title.
Icons X
Choosing what sort of icon to use, under X.
Misc X
Other display options.
Environment Variables
General Variables
Environment variables that all versions of Emacs use.
Misc Variables
Certain system-specific variables.
MS-Windows Registry
An alternative to the environment on MS-Windows.
X Options and Resources
Resources
Using X resources with Emacs (in general).
Table of Resources
Table of specific X resources that affect Emacs.
Lucid Resources
X resources for Lucid menus.
Motif Resources
X resources for Motif and LessTif menus.
GTK resources
Resources for GTK widgets.
GTK resources
GTK Resource Basics
Basic usage of GTK+ resources.
GTK Widget Names
How GTK+ widgets are named.
GTK Names in Emacs
GTK+ widgets used by Emacs.
GTK styles
What can be customized in a GTK+ widget.
Emacs and macOS / GNUstep
Mac / GNUstep Basics
Basic Emacs usage under GNUstep or macOS.
Mac / GNUstep Customization
Customizations under GNUstep or macOS.
Mac / GNUstep Events
How window system events are handled.
GNUstep Support
Details on status of GNUstep support.
Emacs and Microsoft Windows/MS-DOS
Windows Startup
How to start Emacs on Windows.
Text and Binary
Text files use CRLF to terminate lines.
Windows Files
File-name conventions on Windows.
ls in Lisp
Emulation of ls
for Dired.
Windows HOME
Where Emacs looks for your .emacs
and
where it starts up.
Windows Keyboard
Windows-specific keyboard features.
Windows Mouse
Windows-specific mouse features.
Windows Processes
Running subprocesses on Windows.
Windows Printing
How to specify the printer on MS-Windows.
Windows Fonts
Specifying fonts on MS-Windows.
Windows Misc
Miscellaneous Windows features.
MS-DOS
Using Emacs on MS-DOS.
Emacs and MS-DOS
MS-DOS Keyboard
Keyboard conventions on MS-DOS.
MS-DOS Mouse
Mouse conventions on MS-DOS.
MS-DOS Display
Fonts, frames and display size on MS-DOS.
MS-DOS File Names
File name conventions on MS-DOS.
MS-DOS Printing
Printing specifics on MS-DOS.
MS-DOS and MULE
Support for internationalization on MS-DOS.
MS-DOS Processes
Running subprocesses on MS-DOS.
Copyright © 1985–1987, 1993–2020 Free Software Foundation,
Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being “The GNU Manifesto,” “Distribution” and
“GNU GENERAL PUBLIC LICENSE,” with the Front-Cover Texts being “A GNU
Manual,” and with the Back-Cover Texts as in (a) below. A copy of the
license is included in the section entitled “GNU Free Documentation
License.”
(a) The FSF’s Back-Cover Text is: “You have the freedom to copy and
modify this GNU manual. Buying copies from the FSF supports it in
developing GNU and promoting software freedom.”