Skip to main content

The Emacs Editor

Emacs is the advanced, extensible, customizable, self-documenting editor. This manual describes how to edit with Emacs and some of the ways to customize it; it corresponds to GNU Emacs version 27.2.

The homepage for GNU Emacs is at 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.2.

Copyright © 1985–1987, 1993–2021 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."

DistribHow to get the latest Emacs distribution.
IntroAn introduction to Emacs concepts.
Important General Concepts
ScreenHow to interpret what you see on the screen.
User InputKinds of input events (characters, buttons, function keys).
KeysKey sequences: what you type to request one editing action.
CommandsNamed functions run by key sequences to do editing.
Entering EmacsStarting Emacs from the shell.
ExitingStopping or killing Emacs.
Fundamental Editing Commands
BasicThe most basic editing commands.
MinibufferEntering arguments that are prompted for.
M-xInvoking commands by their names.
HelpCommands for asking Emacs about its commands.
Important Text-Changing Commands
MarkThe mark: how to delimit a region of text.
KillingKilling (cutting) and yanking (copying) text.
RegistersSaving a text string or a location in the buffer.
DisplayControlling what text is displayed.
SearchFinding or replacing occurrences of a string.
FixitCommands especially useful for fixing typos.
Keyboard MacrosRecording a sequence of keystrokes to be replayed.
Major Structures of Emacs
FilesAll about handling files.
BuffersMultiple buffers; editing several files at once.
WindowsViewing multiple pieces of text in one frame.
FramesUsing multiple windows on your display.
InternationalUsing non-ASCII character sets.
Advanced Features
ModesMajor and minor modes alter Emacs’s basic behavior.
IndentationEditing the white space at the beginnings of lines.
TextCommands and modes for editing human languages.
ProgramsCommands and modes for editing programs.
BuildingCompiling, running and debugging programs.
MaintainingFeatures for maintaining large programs.
AbbrevsDefining text abbreviations to reduce typing.
DiredDirectory and file manager.
Calendar/DiaryCalendar and diary facilities.
Sending MailSending mail in Emacs.
RmailReading mail in Emacs.
GnusA flexible mail and news reader.
Host SecuritySecurity issues on a single computer.
Network SecurityManaging the network security.
Document ViewViewing PDF, PS and DVI files.
ShellExecuting shell commands from Emacs.
Emacs ServerUsing Emacs as an editing server.
PrintingPrinting hardcopies of buffers or regions.
SortingSorting lines, paragraphs or pages within Emacs.
Picture ModeEditing pictures made up of text characters.
Editing Binary FilesEditing binary files with Hexl mode.
Saving Emacs SessionsSaving Emacs state from one session to the next.
Recursive EditPerforming edits while within another command.
HyperlinkingFollowing links in buffers.
AmusementsVarious games and hacks.
PackagesInstalling additional features.
CustomizationModifying the behavior of Emacs.
Recovery from Problems
QuittingQuitting and aborting.
LossageWhat to do if Emacs is hung or malfunctioning.
BugsHow and when to report a bug.
ContributingHow to contribute improvements to Emacs.
ServiceHow to get help for your own Emacs needs.
CopyingThe 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 LicenseThe license for this documentation.
Emacs InvocationHairy startup options.
X ResourcesX resources for customizing Emacs.
AntinewsInformation about Emacs version 26.
Mac OS / GNUstepUsing Emacs under macOS and GNUstep.
Microsoft WindowsUsing Emacs on Microsoft Windows and MS-DOS.
ManifestoWhat’s GNU? Gnu’s Not Unix!
GlossaryTerms used in this manual.
AcknowledgmentsMajor contributors to GNU Emacs.
Indexes (each index contains a large menu)
Key IndexAn item for each standard Emacs key sequence.
Option IndexAn item for every command-line option.
Command IndexAn item for each standard command name.
Variable IndexAn item for each variable documented in this manual.
Concept IndexAn 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
PointThe place in the text where editing commands operate.
Echo AreaShort messages appear at the bottom of the screen.
Mode LineInterpreting the mode line.
Menu BarHow to use the menu bar.
Basic Editing Commands
Inserting TextInserting text by simply typing it.
Moving PointMoving the cursor to the place where you want to change something.
ErasingDeleting and killing text.
Basic UndoUndoing recent changes in the text.
Basic FilesVisiting, creating, and saving files.
Basic HelpAsking what a character does.
Blank LinesMaking and deleting blank lines.
Continuation LinesHow Emacs displays lines too wide for the screen.
Position InfoWhat line, row, or column is point on?
ArgumentsNumeric arguments for repeating a command N times.
RepeatingRepeating the previous command quickly.
The Minibuffer
Basic MinibufferBasic usage of the minibuffer.
Minibuffer FileEntering file names with the minibuffer.
Minibuffer EditHow to edit in the minibuffer.
CompletionAn abbreviation facility for minibuffer input.
Minibuffer HistoryReusing recent minibuffer arguments.
RepetitionRe-executing commands that used the minibuffer.
PasswordsEntering passwords in the echo area.
Yes or No PromptsReplying yes or no in the echo area.
Completion ExampleExamples of using completion.
Completion CommandsA list of completion commands.
Completion ExitCompletion and minibuffer text submission.
Completion StylesHow completion matches are chosen.
Completion OptionsOptions for completion.
Help SummaryBrief list of all Help commands.
Key HelpAsking what a key does in Emacs.
Name HelpAsking about a command, variable or function name.
AproposAsking what pertains to a given topic.
Help ModeSpecial features of Help mode and Help buffers.
Package KeywordsFinding Lisp libraries by keywords (topics).
Language HelpHelp relating to international language support.
Misc HelpOther help commands.
Help FilesCommands to display auxiliary help files.
Help EchoHelp on active text and tooltips.
The Mark and the Region
Setting MarkCommands to set the mark.
Marking ObjectsCommands to put region around textual units.
Using RegionSummary of ways to operate on contents of the region.
Mark RingPrevious mark positions saved so you can go back there.
Global Mark RingPrevious mark positions in various buffers.
Shift SelectionUsing shifted cursor motion keys.
Disabled Transient MarkLeaving regions unhighlighted by default.
Killing and Moving Text
Deletion and KillingCommands that remove text.
YankingCommands that insert text.
Cut and PasteClipboard and selections on graphical displays.
Accumulating TextOther methods to add text to the buffer.
RectanglesOperating on text in rectangular areas.
CUA BindingsUsing C-x/C-c/C-v to kill and yank.
Deletion and Killing
DeletionCommands for deleting small amounts of text and blank areas.
Killing by LinesHow to kill entire lines of text at one time.
Other Kill CommandsCommands to kill large regions of text and syntactic units such as words and sentences.
Kill OptionsOptions that affect killing.
Kill RingWhere killed text is stored.
Earlier KillsYanking something killed some time ago.
Appending KillsSeveral kills in a row all yank together.
Cut and Paste Operations on Graphical Displays
ClipboardHow Emacs uses the system clipboard.
Primary SelectionThe temporarily selected text selection.
Secondary SelectionCutting without altering point and mark.
Position RegistersSaving positions in registers.
Text RegistersSaving text in registers.
Rectangle RegistersSaving rectangles in registers.
Configuration RegistersSaving window configurations in registers.
Number RegistersNumbers in registers.
File RegistersFile names in registers.
Keyboard Macro RegistersKeyboard macros in registers.
BookmarksBookmarks are like registers, but persistent.
Controlling the Display
ScrollingCommands to move text up and down in a window.
RecenteringA scroll command that centers the current line.
Auto ScrollingRedisplay scrolls text automatically when needed.
Horizontal ScrollingMoving text left and right in a window.
NarrowingRestricting display and editing to a portion of the buffer.
View ModeViewing read-only buffers.
Follow ModeFollow mode lets two windows scroll as one.
FacesHow to change the display style using faces.
ColorsSpecifying colors for faces.
Standard FacesThe main predefined faces.
Text ScaleIncreasing or decreasing text size in a buffer.
Font LockMinor mode for syntactic highlighting using faces.
Highlight InteractivelyTell Emacs what text to highlight.
FringesEnabling or disabling window fringes.
Displaying BoundariesDisplaying top and bottom of the buffer.
Useless WhitespaceShowing possibly spurious trailing whitespace.
Selective DisplayHiding lines with lots of indentation.
Optional Mode LineOptional mode line display features.
Text DisplayHow text characters are normally displayed.
Cursor DisplayFeatures for displaying the cursor.
Line TruncationTruncating lines to fit the screen width instead of continuing them to multiple screen lines.
Visual Line ModeWord wrap and screen line-based editing.
Display CustomInformation on variables for customizing display.
Searching and Replacement
Incremental SearchSearch happens as you type the string.
Nonincremental SearchSpecify entire string and then search.
Word SearchSearch for sequence of words.
Symbol SearchSearch for a source code symbol.
Regexp SearchSearch for match for a regexp.
RegexpsSyntax of regular expressions.
Regexp BackslashRegular expression constructs starting with ‘\’.
Regexp ExampleA complex regular expression explained.
Lax SearchSearch ignores some distinctions between similar characters, like letter-case.
ReplaceSearch, and replace some or all matches.
Other Repeating SearchOperating on all matches for some regexp.
Search CustomizationsVarious search customizations.
Incremental Search
Basic IsearchBasic incremental search commands.
Repeat IsearchSearching for the same string again.
Isearch YankCommands that grab text into the search string or else edit the search string.
Error in IsearchWhen your string is not found.
Special IsearchSpecial input in incremental search.
Not Exiting IsearchPrefix argument and scrolling commands.
Isearch MinibufferIncremental search of the minibuffer history.
Replacement Commands
Unconditional ReplaceReplacing all matches for a string.
Regexp ReplaceReplacing all matches for a regexp.
Replacement and Lax MatchesLax searching for text to replace.
Query ReplaceHow to use querying.
Commands for Fixing Typos
UndoThe Undo commands.
TransposeExchanging two characters, words, lines, lists...
Fixing CaseCorrecting case of last word entered.
SpellingApply spelling checker to a word, or a whole file.
Keyboard Macros
Basic Keyboard MacroDefining and running keyboard macros.
Keyboard Macro RingWhere previous keyboard macros are saved.
Keyboard Macro CounterInserting incrementing numbers in macros.
Keyboard Macro QueryMaking keyboard macros do different things each time.
Save Keyboard MacroGiving keyboard macros names; saving them in files.
Edit Keyboard MacroEditing keyboard macros.
Keyboard Macro Step-EditInteractively executing and editing a keyboard macro.
File Handling
File NamesHow to type and edit file-name arguments.
VisitingVisiting a file prepares Emacs to edit the file.
SavingSaving makes your changes permanent.
RevertingReverting cancels all the changes not saved.
Auto RevertKeeping buffers automatically up-to-date.
Auto SaveAuto Save periodically protects against loss of data.
File AliasesHandling multiple names for one file.
DirectoriesCreating, deleting, and listing file directories.
Comparing FilesFinding where two files differ.
Diff ModeMode for editing file differences.
Copying and NamingCopying, naming and renaming files.
Misc File OpsOther things you can do on files.
Compressed FilesAccessing compressed files.
File ArchivesOperating on tar, zip, jar etc. archive files.
Remote FilesAccessing files on other machines.
Quoted File NamesQuoting special characters in file names.
File Name CacheCompletion against a list of files you often use.
File ConveniencesConvenience features for finding files.
Image ModeViewing image files.
FilesetsHandling sets of files.
Saving Files
Save CommandsCommands for saving files.
BackupHow Emacs saves the old version of your file.
Customize SaveCustomizing the saving of files.
InterlockingHow Emacs protects against simultaneous editing of one file by two users.
File ShadowingCopying files to shadows automatically.
Time StampsEmacs can update time stamps on saved files.
Backup Files
Backup NamesHow backup files are named.
Backup DeletionEmacs deletes excess numbered backups.
Backup CopyingBackups can be made by copying or renaming.
Auto Reverting Non-File Buffers
Auto Reverting the Buffer MenuAuto Revert of the Buffer Menu.
Auto Reverting DiredAuto Revert of Dired buffers.
Auto-Saving: Protection Against Disasters
Auto Save FilesThe file where auto-saved changes are actually made until you save the file.
Auto Save ControlControlling when and how often to auto-save.
RecoverRecovering text from auto-save files.
Using Multiple Buffers
Select BufferCreating a new buffer or reselecting an old one.
List BuffersGetting a list of buffers that exist.
Misc BufferRenaming; changing read-only status; copying text.
Kill BufferKilling buffers you no longer need.
Several BuffersHow to go through the list of all buffers and operate variously on several of them.
Indirect BuffersAn indirect buffer shares the text of another buffer.
Buffer ConvenienceConvenience and customization features for buffer handling.
Convenience Features and Customization of Buffer Handling
UniquifyMaking buffer names unique with directory parts.
IcompleteFast minibuffer selection.
Buffer MenusConfigurable buffer menu.
Multiple Windows
Basic WindowIntroduction to Emacs windows.
Split WindowNew windows are made by splitting existing windows.
Other WindowMoving to another window or doing something to it.
Pop Up WindowFinding a file or buffer in another window.
Change WindowDeleting windows and changing their sizes.
Displaying BuffersHow Emacs picks a window for displaying a buffer.
Temporary DisplaysDisplaying non-editable buffers.
Window ConvenienceConvenience functions for window handling.
Tab LineWindow tab line.
Displaying a Buffer in a Window
Window ChoiceHow display-buffer works.
Frames and Graphical Displays
Mouse CommandsMoving, cutting, and pasting, with the mouse.
Word and Line MouseMouse commands for selecting whole words or lines.
Mouse ReferencesUsing the mouse to select an item from a list.
Menu Mouse ClicksMouse clicks that bring up menus.
Mode Line MouseMouse clicks on the mode line.
Creating FramesCreating additional Emacs frames with various contents.
Frame CommandsIconifying, deleting, and switching frames.
FontsChanging the frame font.
SpeedbarHow to make and use a speedbar frame.
Multiple DisplaysHow one Emacs instance can talk to several displays.
Frame ParametersChanging the colors and other modes of frames.
Scroll BarsHow to enable and disable scroll bars; how to use them.
Window DividersWindow separators that can be dragged with the mouse.
Drag and DropUsing drag and drop to open files and insert text.
Menu BarsEnabling and disabling the menu bar.
Tool BarsEnabling and disabling the tool bar.
Tab BarsEnabling and disabling the tab bar.
Dialog BoxesControlling use of dialog boxes.
TooltipsDisplaying information at the current mouse position.
Mouse AvoidancePreventing the mouse pointer from obscuring text.
Non-Window TerminalsMultiple frames on terminals that show only one.
Text-Only MouseUsing the mouse in text terminals.
International Character Set Support
International CharsBasic concepts of multibyte characters.
Language EnvironmentsSetting things up for the language you use.
Input MethodsEntering text characters not on your keyboard.
Select Input MethodSpecifying your choice of input methods.
Coding SystemsCharacter set conversion when you read and write files, and so on.
Recognize CodingHow Emacs figures out which conversion to use.
Specify CodingSpecifying a file’s coding system explicitly.
Output CodingChoosing coding systems for output.
Text CodingChoosing conversion to use for file text.
Communication CodingCoding systems for interprocess communication.
File Name CodingCoding systems for file names.
Terminal CodingSpecifying coding systems for converting terminal input and output.
FontsetsFontsets are collections of fonts that cover the whole spectrum of characters.
Defining FontsetsDefining a new fontset.
Modifying FontsetsModifying an existing fontset.
Undisplayable CharactersWhen characters don’t display.
Unibyte ModeYou can pick one European character set to use without multibyte characters.
CharsetsHow Emacs groups its internal character codes.
Bidirectional EditingSupport for right-to-left scripts.
Major and Minor Modes
Major ModesText mode vs. Lisp mode vs. C mode...
Minor ModesEach minor mode is a feature you can turn on independently of any others.
Choosing ModesHow modes are chosen when visiting files.
Indentation CommandsMore commands for performing indentation.
Tab StopsStop points for indentation in Text modes.
Just SpacesUsing only space characters for indentation.
Indent ConvenienceOptional indentation features.
Commands for Human Languages
WordsMoving over and killing words.
SentencesMoving over and killing sentences.
ParagraphsMoving over paragraphs.
PagesMoving over pages.
Quotation MarksInserting quotation marks.
FillingFilling or justifying text.
CaseChanging the case of text.
Text ModeThe major modes for editing text files.
Outline ModeEditing outlines.
Org ModeThe Emacs organizer.
TeX ModeEditing TeX and LaTeX files.
HTML ModeEditing HTML and SGML files.
Nroff ModeEditing input to the nroff formatter.
Enriched TextEditing text enriched with fonts, colors, etc.
Text Based TablesCommands for editing text-based tables.
Two-ColumnSplitting text columns into separate windows.
Filling Text
Auto FillAuto Fill mode breaks long lines automatically.
Fill CommandsCommands to refill paragraphs and center lines.
Fill PrefixFilling paragraphs that are indented or in a comment, etc.
Adaptive FillHow Emacs can determine the fill prefix automatically.
Outline Mode
Outline FormatWhat the text of an outline looks like.
Outline MotionSpecial commands for moving through outlines.
Outline VisibilityCommands to control what is visible.
Outline ViewsOutlines and multiple views.
FoldoutFolding means zooming in on outlines.
Org Mode
Org OrganizerManaging TODO lists and agendas.
Org AuthoringExporting Org buffers to various formats.
TeX Mode
TeX EditingSpecial commands for editing in TeX mode.
LaTeX EditingAdditional commands for LaTeX input files.
TeX PrintCommands for printing part of a file with TeX.
TeX MiscCustomization of TeX mode, and related features.
Enriched Text
Enriched ModeEntering and exiting Enriched mode.
Hard and Soft NewlinesThere are two different kinds of newlines.
Editing Format InfoHow to edit text properties.
Enriched FacesBold, italic, underline, etc.
Enriched IndentationChanging the left and right margins.
Enriched JustificationCentering, setting text flush with the left or right margin, etc.
Enriched PropertiesThe “Special text properties" submenu.
Editing Text-based Tables
Table DefinitionWhat is a text based table.
Table CreationHow to create a table.
Table RecognitionHow to activate and deactivate tables.
Cell CommandsCell-oriented commands in a table.
Cell JustificationJustifying cell contents.
Table Rows and ColumnsInserting and deleting rows and columns.
Table ConversionConverting between plain text and tables.
Table MiscTable miscellany.
Editing Programs
Program ModesMajor modes for editing programs.
DefunsCommands to operate on major top-level parts of a program.
Program IndentAdjusting indentation to show the nesting.
ParenthesesCommands that operate on parentheses.
CommentsInserting, killing, and aligning comments.
DocumentationGetting documentation of functions you plan to call.
HideshowDisplaying blocks selectively.
Symbol CompletionCompletion on symbol names of your program or language.
MixedCase WordsDealing with identifiersLikeThis.
SemanticSuite of editing tools based on source code parsing.
Misc for ProgramsOther Emacs features useful for editing programs.
C ModesSpecial commands of C, C++, Objective-C, Java, IDL, Pike and AWK modes.
Asm ModeAsm mode and its special features.
FortranFortran mode and its special features.
Top-Level Definitions, or Defuns
Left Margin ParenAn open-paren or similar opening delimiter starts a defun if it is at the left margin.
Moving by DefunsCommands to move over or mark a major definition.
ImenuMaking buffer indexes as menus.
Which FunctionWhich Function mode shows which function you are in.
Indentation for Programs
Basic IndentIndenting a single line.
Multi-line IndentCommands to reindent many lines at once.
Lisp IndentSpecifying how each Lisp function should be indented.
C IndentExtra features for indenting C and related modes.
Custom C IndentControlling indentation style for C and related modes.
Commands for Editing with Parentheses
ExpressionsExpressions with balanced parentheses.
Moving by ParensCommands for moving up, down and across in the structure of parentheses.
MatchingInsertion of a close-delimiter flashes matching open.
Manipulating Comments
Comment CommandsInserting, killing, and aligning comments.
Multi-Line CommentsCommands for adding and editing multi-line comments.
Options for CommentsCustomizing the comment features.
Documentation Lookup
Info LookupLooking up library functions and commands in Info files.
Man PageLooking up man pages of library functions and commands.
Lisp DocLooking up Emacs Lisp functions, etc.
C and Related Modes
Motion in CCommands to move by C statements, etc.
Electric CColon and other chars can automatically reindent.
Hungry DeleteA more powerful DEL command.
Other C CommandsFilling comments, viewing expansion of macros, and other neat features.
Fortran Mode
Fortran MotionMoving point by statements or subprograms.
Fortran IndentIndentation commands for Fortran.
Fortran CommentsInserting and aligning comments.
Fortran AutofillAuto fill support for Fortran.
Fortran ColumnsMeasuring columns for valid Fortran.
Fortran AbbrevBuilt-in abbrevs for Fortran keywords.
Fortran Indentation
ForIndent CommandsCommands for indenting and filling Fortran.
ForIndent ContHow continuation lines indent.
ForIndent NumHow line numbers auto-indent.
ForIndent ConvConventions you must obey to avoid trouble.
ForIndent VarsVariables controlling Fortran indent style.
Compiling and Testing Programs
CompilationCompiling programs in languages other than Lisp (C, Pascal, etc.).
Compilation ModeThe mode for visiting compiler errors.
Compilation ShellCustomizing your shell properly for use in the compilation buffer.
Grep SearchingSearching with grep.
FlymakeFinding syntax errors on the fly.
DebuggersRunning symbolic debuggers for non-Lisp programs.
Executing LispVarious modes for editing Lisp programs, with different facilities for running the Lisp programs.
Lisp LibrariesHow Lisp programs are loaded into Emacs.
Lisp EvalExecuting a single Lisp expression in Emacs.
Lisp InteractionExecuting Lisp in an Emacs buffer.
External LispCommunicating through Emacs with a separate Lisp.
Running Debuggers Under Emacs
Starting GUDHow to start a debugger subprocess.
Debugger OperationConnection between the debugger and source buffers.
Commands of GUDKey bindings for common commands.
GUD CustomizationDefining your own commands for GUD.
GDB Graphical InterfaceAn enhanced mode that uses GDB features to implement a graphical debugging environment.
GDB Graphical Interface
GDB User Interface LayoutControl the number of displayed buffers.
Source BuffersUse the mouse in the fringe/margin to control your program.
Breakpoints BufferA breakpoint control panel.
Threads BufferDisplays your threads.
Stack BufferSelect a frame from the call stack.
Other GDB BuffersOther buffers for controlling the GDB state.
Watch ExpressionsMonitor variable values in the speedbar.
Multithreaded DebuggingDebugging programs with several threads.
Maintaining Large Programs
Version ControlUsing version control systems.
ProjectsCommands for handling source files in a project.
Change LogMaintaining a change history for your program.
XrefFind definitions and references of any function, method, struct, macro, … in your program.
EDEAn integrated development environment for Emacs.
EmergeA convenient way of merging two versions of a program.
Version Control
Introduction to VCHow version control works in general.
VC Mode LineHow the mode line shows version control status.
Basic VC EditingHow to edit a file under version control.
Log BufferFeatures available in log entry buffers.
RegisteringPutting a file under version control.
Old RevisionsExamining and comparing old versions.
VC Change LogViewing the VC Change Log.
VC UndoCanceling changes before or after committing.
VC IgnoreIgnore files under version control system.
VC Directory ModeListing files managed by version control.
BranchesMultiple lines of development.
Miscellaneous VCVarious other commands and features of VC.
Customizing VCVariables that change VC’s behavior.
Introduction to Version Control
Why Version Control?Understanding the problems it addresses.
Version Control SystemsSupported version control back-end systems.
VCS ConceptsWords and concepts related to version control.
VCS MergingHow file conflicts are handled.
VCS ChangesetsHow changes are grouped.
VCS RepositoriesWhere version control repositories are stored.
Types of Log FileThe VCS log in contrast to the ChangeLog.
Basic Editing under Version Control
VC With A Merging VCSWithout locking: default mode for CVS.
VC With A Locking VCSRCS in its default mode, SCCS, and optionally CVS.
Advanced C-x v vAdvanced features available with a prefix argument.
VC Directory Mode
VC Directory BufferWhat the buffer looks like and means.
VC Directory CommandsCommands to use in a VC directory buffer.
Version Control Branches
Switching BranchesHow to get to another existing branch.
Pulling / PushingReceiving/sending changes from/to elsewhere.
MergingTransferring changes between branches.
Creating BranchesHow to start a new branch.
Miscellaneous Commands and Features of VC
Change Logs and VCGenerating a change log file from log entries.
VC Delete/RenameDeleting and renaming version-controlled files.
Revision TagsSymbolic names for revisions.
Version HeadersInserting version control headers into working files.
Customizing VC
General VC OptionsOptions that apply to multiple back ends.
RCS and SCCSOptions for RCS and SCCS.
CVS OptionsOptions for CVS.
Change Logs
Change Log CommandsCommands for editing change log files.
Format of ChangeLogWhat the change log file looks like.
Find IdentifiersCommands to find where an identifier is defined or referenced, to list identifiers, etc.
Tags TablesTags table records which file defines a symbol.
Select Tags TableHow to visit a specific tags table.
Find Identifiers
Looking Up IdentifiersCommands to find the definition of a specific tag.
Xref CommandsCommands in the *xref* buffer.
Identifier SearchSearching and replacing identifiers.
List IdentifiersListing identifiers and completing on them.
Tags Tables
Tag SyntaxTag syntax for various types of code and text files.
Create Tags TableCreating a tags table with etags.
Etags RegexpsCreate arbitrary tags using regular expressions.
Merging Files with Emerge
Overview of EmergeHow to start Emerge. Basic concepts.
Submodes of EmergeFast mode vs. Edit mode. Skip Prefers mode and Auto Advance mode.
State of DifferenceYou do the merge by specifying state A or B for each difference.
Merge CommandsCommands for selecting a difference, changing states of differences, etc.
Exiting EmergeWhat to do when you’ve finished the merge.
Combining in EmergeHow to keep both alternatives for a difference.
Fine Points of EmergeMiscellaneous issues.
Abbrev ConceptsFundamentals of defined abbrevs.
Defining AbbrevsDefining an abbrev, so it will expand when typed.
Expanding AbbrevsControlling expansion: prefixes, canceling expansion.
Editing AbbrevsViewing or editing the entire list of defined abbrevs.
Saving AbbrevsSaving the entire list of abbrevs for another session.
Dynamic AbbrevsAbbreviations for words already in the buffer.
Dabbrev CustomizationWhat is a word, for dynamic abbrevs. Case handling.
Editing Pictures
Basic PictureBasic concepts and simple commands of Picture Mode.
Insert in PictureControlling direction of cursor motion after self-inserting characters.
Tabs in PictureVarious features for tab stops and indentation.
Rectangles in PictureClearing and superimposing rectangles.
Dired, the Directory Editor
Dired EnterHow to invoke Dired.
Dired NavigationSpecial motion commands in the Dired buffer.
Dired DeletionDeleting files with Dired.
Flagging Many FilesFlagging files based on their names.
Dired VisitingOther file operations through Dired.
Marks vs FlagsFlagging for deletion vs marking.
Operating on FilesHow to copy, rename, print, compress, etc. either one file or several files.
Shell Commands in DiredRunning a shell command on the marked files.
Transforming File NamesUsing patterns to rename multiple files.
Comparison in DiredRunning diff by way of Dired.
Subdirectories in DiredAdding subdirectories to the Dired buffer.
Subdir SwitchesSubdirectory switches in Dired.
Subdirectory MotionMoving across subdirectories, and up and down.
Hiding SubdirectoriesMaking subdirectories visible or invisible.
Dired UpdatingDiscarding lines for files of no interest.
Dired and FindUsing find to choose the files for Dired.
WdiredOperating on files by editing the Dired buffer.
Image-DiredViewing image thumbnails in Dired.
Misc Dired FeaturesVarious other features.
The Calendar and the Diary
Calendar MotionMoving through the calendar; selecting a date.
Scroll CalendarBringing earlier or later months onto the screen.
Counting DaysHow many days are there between two dates?
General CalendarExiting or recomputing the calendar.
Writing Calendar FilesWriting calendars to files of various formats.
HolidaysDisplaying dates of holidays.
Sunrise/SunsetDisplaying local times of sunrise and sunset.
Lunar PhasesDisplaying phases of the moon.
Other CalendarsConverting dates to other calendar systems.
DiaryDisplaying events from your diary.
Daylight SavingHow to specify when daylight saving time is active.
Time IntervalsKeeping track of time intervals.
Advanced Calendar/Diary UsageAdvanced Calendar/Diary customization.
Movement in the Calendar
Calendar Unit MotionMoving by days, weeks, months, and years.
Move to Beginning or EndMoving to start/end of weeks, months, and years.
Specified DatesMoving to the current date or another specific date.
Conversion To and From Other Calendars
Calendar SystemsThe calendars Emacs understands (aside from Gregorian).
To Other CalendarConverting the selected date to various calendars.
From Other CalendarMoving to a date specified in another calendar.
The Diary
Format of Diary FileEntering events in your diary.
Displaying the DiaryViewing diary entries and associated calendar dates.
Date FormatsVarious ways you can specify dates.
Adding to DiaryCommands to create diary entries.
Special Diary EntriesAnniversaries, blocks of dates, cyclic entries, etc.
AppointmentsReminders when it’s time to do something.
Importing DiaryConverting diary events to/from other formats.
More advanced features of the Calendar and Diary
Calendar CustomizingCalendar layout and hooks.
Holiday CustomizingDefining your own holidays.
Mayan CalendarMoving to a date specified in a Mayan calendar.
Date Display FormatChanging the format.
Time Display FormatChanging the format.
Diary CustomizingDefaults you can set.
Non-Gregorian DiaryDiary entries based on other calendars.
Diary DisplayA choice of ways to display the diary.
Fancy Diary DisplaySorting diary entries, using included diary files.
Sexp Diary EntriesMore flexible diary entries.
Sending Mail
Mail FormatFormat of a mail message.
Mail HeadersDetails of some standard mail header fields.
Mail AliasesAbbreviating and grouping mail addresses.
Mail CommandsSpecial commands for editing mail being composed.
Mail SignatureAdding a signature to every message.
Mail AmusementsDistracting the NSA; adding fortune messages.
Mail MethodsUsing alternative mail-composition methods.
Mail Commands
Mail SendingCommands to send the message.
Header EditingCommands to move to header fields and edit them.
Citing MailQuoting a message you are replying to.
Mail MiscAttachments, spell checking, etc.
Reading Mail with Rmail
Rmail BasicsBasic concepts of Rmail, and simple use.
Rmail ScrollingScrolling through a message.
Rmail MotionMoving to another message.
Rmail DeletionDeleting and expunging messages.
Rmail InboxHow mail gets into the Rmail file.
Rmail FilesUsing multiple Rmail files.
Rmail OutputCopying message out to files.
Rmail LabelsClassifying messages by labeling them.
Rmail AttributesCertain standard labels, called attributes.
Rmail ReplySending replies to messages you are viewing.
Rmail SummarySummaries show brief info on many messages.
Rmail SortingSorting messages in Rmail.
Rmail DisplayHow Rmail displays a message; customization.
Rmail CodingHow Rmail handles decoding character sets.
Rmail EditingEditing message text and headers in Rmail.
Rmail DigestExtracting the messages from a digest message.
Rmail Rot13Reading messages encoded in the rot13 code.
MovemailMore details of fetching new mail.
Remote MailboxesRetrieving mail from remote mailboxes.
Other Mailbox FormatsRetrieving mail from local mailboxes in various formats.
Rmail Summaries
Rmail Make SummaryMaking various sorts of summaries.
Rmail Summary EditManipulating messages from the summary.
Buffers of GnusThe group, summary, and article buffers.
Gnus StartupWhat you should know about starting Gnus.
Gnus Group BufferA short description of Gnus group commands.
Gnus Summary BufferA short description of Gnus summary commands.
Document Viewing
DocView NavigationNavigating DocView buffers.
DocView SearchingSearching inside documents.
DocView SlicingSpecifying which part of a page is displayed.
DocView ConversionInfluencing and triggering conversion.
Running Shell Commands from Emacs
Single ShellHow to run one shell command and return.
Interactive ShellPermanent shell taking input via Emacs.
Shell ModeSpecial Emacs commands used with permanent shell.
Shell PromptsTwo ways to recognize shell prompts.
Shell HistoryRepeating previous commands in a shell buffer.
Directory TrackingKeeping track when the subshell changes directory.
Shell OptionsOptions for customizing Shell mode.
Terminal emulatorAn Emacs window as a terminal emulator.
Term ModeSpecial Emacs commands used in Term mode.
Remote HostConnecting to another computer.
Serial TerminalConnecting to a serial port.
Shell Command History
Shell RingFetching commands from the history list.
Shell History CopyingMoving to a command and then copying it.
History ReferencesExpanding ‘!’-style history references.
Using Emacs as a Server
TCP Emacs serverListening to a TCP socket.
Invoking emacsclientConnecting to the Emacs server.
emacsclient OptionsEmacs client startup options.
Printing Hard Copies
PostScriptPrinting buffers or regions as PostScript.
PostScript VariablesCustomizing the PostScript printing commands.
Printing PackageAn optional advanced printing interface.
Hyperlinking and Navigation Features
EWWA web browser in Emacs.
Embedded WebKit WidgetsEmbedding browser widgets in Emacs buffers.
Browse-URLFollowing URLs.
Goto Address modeActivating URLs.
FFAPFinding files etc. at point.
Emacs Lisp Packages
Package MenuBuffer for viewing and managing packages.
Package StatusesWhich statuses a package can have.
Package InstallationOptions for package installation.
Package FilesWhere packages are installed.
Easy CustomizationConvenient way to browse and change settings.
VariablesMany Emacs commands examine Emacs variables to decide what to do; by setting variables, you can control their functioning.
Key BindingsThe keymaps say what command each key runs. By changing them, you can redefine keys.
Init FileHow to write common customizations in the initialization file.
AuthenticationKeeping persistent authentication information.
Easy Customization Interface
Customization GroupsHow settings are classified.
Browsing CustomBrowsing and searching for settings.
Changing a VariableHow to edit an option’s value and set the option.
Saving CustomizationsSaving customizations for future Emacs sessions.
Face CustomizationHow to edit the attributes of a face.
Specific CustomizationCustomizing specific settings or groups.
Custom ThemesCollections of customization settings.
Creating Custom ThemesHow to create a new custom theme.
ExaminingExamining or setting one variable’s value.
HooksHook variables let you specify programs for parts of Emacs to run on particular occasions.
LocalsPer-buffer values of variables.
File VariablesHow files can specify variable values.
Directory VariablesHow variable values can be specified by directory.
Connection VariablesVariables which are valid for buffers with a remote default directory.
Local Variables in Files
Specifying File VariablesSpecifying file local variables.
Safe File VariablesMaking sure file local variables are safe.
Customizing Key Bindings
KeymapsGeneralities. The global keymap.
Prefix KeymapsKeymaps for prefix keys.
Local KeymapsMajor and minor modes have their own keymaps.
Minibuffer MapsThe minibuffer uses its own local keymaps.
RebindingHow to redefine one key’s meaning conveniently.
Init RebindingRebinding keys with your initialization file.
Modifier KeysUsing modifier keys in key bindings.
Function KeysRebinding terminal function keys.
Named ASCII CharsDistinguishing TAB from C-i, and so on.
Mouse ButtonsRebinding mouse buttons in Emacs.
DisablingDisabling a command means confirmation is required before it can be executed. This is done to protect beginners from surprises.
The Emacs Initialization File
Init SyntaxSyntax of constants in Emacs Lisp.
Init ExamplesHow to do some things with an init file.
Terminal InitEach terminal type can have an init file.
Find InitHow Emacs finds the init file.
Init Non-ASCIIUsing non-ASCII characters in an init file.
Early Init FileAnother init file, which is read early on.
Dealing with Emacs Trouble
DEL Does Not DeleteWhat to do if DEL doesn’t delete.
Stuck Recursive[...]’ in mode line around the parentheses.
Screen GarbledGarbage on the screen.
Text GarbledGarbage in the text.
Memory FullHow to cope when you run out of memory.
CrashingWhat Emacs does when it crashes.
After a CrashRecovering editing in an Emacs session that crashed.
Emergency EscapeWhat to do if Emacs stops responding.
Long LinesMitigating slowness due to extremely long lines.
Reporting Bugs
Known ProblemsHow to read about known problems and bugs.
Bug CriteriaHave you really found a bug?
Understanding Bug ReportingHow to report a bug effectively.
ChecklistSteps to follow for a good bug report.
Sending PatchesHow to send a patch for GNU Emacs.
Contributing to Emacs Development
Coding StandardsGNU Emacs coding standards.
Copyright AssignmentAssigning copyright to the FSF.
Command Line Arguments for Emacs Invocation
Action ArgumentsArguments to visit files, load libraries, and call functions.
Initial OptionsArguments that take effect while starting Emacs.
Command ExampleExamples of using command line arguments.
EnvironmentEnvironment variables that Emacs uses.
Display XChanging the default display and using remote login.
Font XChoosing a font for text, under X.
Colors XChoosing display colors.
Window Size XStart-up window size, under X.
Borders XInternal and outer borders, under X.
Title XSpecifying the initial frame’s title.
Icons XChoosing what sort of icon to use, under X.
Misc XOther display options.
Environment Variables
General VariablesEnvironment variables that all versions of Emacs use.
Misc VariablesCertain system-specific variables.
MS-Windows RegistryAn alternative to the environment on MS-Windows.
X Options and Resources
ResourcesUsing X resources with Emacs (in general).
Table of ResourcesTable of specific X resources that affect Emacs.
Lucid ResourcesX resources for Lucid menus.
Motif ResourcesX resources for Motif and LessTif menus.
GTK resourcesResources for GTK widgets.
GTK resources
GTK Resource BasicsBasic usage of GTK+ resources.
GTK Widget NamesHow GTK+ widgets are named.
GTK Names in EmacsGTK+ widgets used by Emacs.
GTK stylesWhat can be customized in a GTK+ widget.
Emacs and macOS / GNUstep
Mac / GNUstep BasicsBasic Emacs usage under GNUstep or macOS.
Mac / GNUstep CustomizationCustomizations under GNUstep or macOS.
Mac / GNUstep EventsHow window system events are handled.
GNUstep SupportDetails on status of GNUstep support.
Emacs and Microsoft Windows/MS-DOS
Windows StartupHow to start Emacs on Windows.
Text and BinaryText files use CRLF to terminate lines.
Windows FilesFile-name conventions on Windows.
ls in LispEmulation of ls for Dired.
Windows HOMEWhere Emacs looks for your .emacs and where it starts up.
Windows KeyboardWindows-specific keyboard features.
Windows MouseWindows-specific mouse features.
Windows ProcessesRunning subprocesses on Windows.
Windows PrintingHow to specify the printer on MS-Windows.
Windows FontsSpecifying fonts on MS-Windows.
Windows MiscMiscellaneous Windows features.
MS-DOSUsing Emacs on MS-DOS.
Emacs and MS-DOS
MS-DOS KeyboardKeyboard conventions on MS-DOS.
MS-DOS MouseMouse conventions on MS-DOS.
MS-DOS DisplayFonts, frames and display size on MS-DOS.
MS-DOS File NamesFile name conventions on MS-DOS.
MS-DOS PrintingPrinting specifics on MS-DOS.
MS-DOS and MULESupport for internationalization on MS-DOS.
MS-DOS ProcessesRunning subprocesses on MS-DOS.