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 26.3.
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.
This is the GNU Emacs Manual, updated for Emacs version 26.3.
| 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 25. |
| 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. |
| Autorevert | Auto Reverting non-file buffers. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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 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. |
| 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. |
| 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. |
| 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–2019 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.”