Close sidebar
GNU Emacs
Emacs
Distribution
Introduction
1 The Organization of the Screen
1.1 Point
1.2 The Echo Area
1.3 The Mode Line
1.4 The Menu Bar
2 Kinds of User Input
3 Keys
4 Keys and Commands
5 Entering Emacs
6 Exiting Emacs
7 Basic Editing Commands
7.1 Inserting Text
7.2 Changing the Location of Point
7.3 Erasing Text
7.4 Undoing Changes
7.5 Files
7.6 Help
7.7 Blank Lines
7.8 Continuation Lines
7.9 Cursor Position Information
7.10 Numeric Arguments
7.11 Repeating a Command
8 The Minibuffer
8.1 Using the Minibuffer
8.2 Minibuffers for File Names
8.3 Editing in the Minibuffer
8.4 Completion
8.4.1 Completion Example
8.4.2 Completion Commands
8.4.3 Completion Exit
8.4.4 How Completion Alternatives Are Chosen
8.4.5 Completion Options
8.5 Minibuffer History
8.6 Repeating Minibuffer Commands
8.7 Entering passwords
8.8 Yes or No Prompts
9 Running Commands by Name
10 Help
10.1 Help Summary
10.2 Documentation for a Key
10.3 Help by Command or Variable Name
10.4 Apropos
10.5 Help Mode Commands
10.6 Keyword Search for Packages
10.7 Help for International Language Support
10.8 Other Help Commands
10.9 Help Files
10.10 Help on Active Text and Tooltips
11 The Mark and the Region
11.1 Setting the Mark
11.2 Commands to Mark Textual Objects
11.3 Operating on the Region
11.4 The Mark Ring
11.5 The Global Mark Ring
11.6 Shift Selection
11.7 Disabling Transient Mark Mode
12 Killing and Moving Text
12.1 Deletion and Killing
12.1.1 Deletion
12.1.2 Killing by Lines
12.1.3 Other Kill Commands
12.1.4 Options for Killing
12.2 Yanking
12.2.1 The Kill Ring
12.2.2 Yanking Earlier Kills
12.2.3 Appending Kills
12.3 “Cut and Paste” Operations on Graphical Displays
12.3.1 Using the Clipboard
12.3.2 Cut and Paste with Other Window Applications
12.3.3 Secondary Selection
12.4 Accumulating Text
12.5 Rectangles
12.6 CUA Bindings
13 Registers
13.1 Saving Positions in Registers
13.2 Saving Text in Registers
13.3 Saving Rectangles in Registers
13.4 Saving Window Configurations in Registers
13.5 Keeping Numbers in Registers
13.6 Keeping File Names in Registers
13.7 Keyboard Macro Registers
13.8 Bookmarks
14 Controlling the Display
14.1 Scrolling
14.2 Recentering
14.3 Automatic Scrolling
14.4 Horizontal Scrolling
14.5 Narrowing
14.6 View Mode
14.7 Follow Mode
14.8 Text Faces
14.9 Colors for Faces
14.9.1 Color Names
14.9.2 RGB Triplets
14.10 Standard Faces
14.11 Text Scale
14.12 Font Lock mode
14.13 Interactive Highlighting
14.14 Window Fringes
14.15 Displaying Boundaries
14.16 Useless Whitespace
14.17 Selective Display
14.18 Optional Mode Line Features
14.19 How Text Is Displayed
14.20 Displaying the Cursor
14.21 Line Truncation
14.22 Visual Line Mode
14.23 Customization of Display
15 Searching and Replacement
15.1 Incremental Search
15.1.1 Basics of Incremental Search
15.1.2 Repeating Incremental Search
15.1.3 Isearch Yanking
15.1.4 Errors in Incremental Search
15.1.5 Special Input for Incremental Search
15.1.6 Not Exiting Incremental Search
15.1.7 Searching the Minibuffer
15.2 Nonincremental Search
15.3 Word Search
15.4 Symbol Search
15.5 Regular Expression Search
15.6 Syntax of Regular Expressions
15.7 Backslash in Regular Expressions
15.8 Regular Expression Example
15.9 Lax Matching During Searching
15.10 Replacement Commands
15.10.1 Unconditional Replacement
15.10.2 Regexp Replacement
15.10.3 Replace Commands and Lax Matches
15.10.4 Query Replace
15.11 Other Search-and-Loop Commands
15.12 Tailoring Search to Your Needs
16 Commands for Fixing Typos
16.1 Undo
16.2 Transposing Text
16.3 Case Conversion
16.4 Checking and Correcting Spelling
17 Keyboard Macros
17.1 Basic Use
17.2 The Keyboard Macro Ring
17.3 The Keyboard Macro Counter
17.4 Executing Macros with Variations
17.5 Naming and Saving Keyboard Macros
17.6 Editing a Keyboard Macro
17.7 Stepwise Editing a Keyboard Macro
18 File Handling
18.1 File Names
18.2 Visiting Files
18.3 Saving Files
18.3.1 Commands for Saving Files
18.3.2 Backup Files
18.3.2.1 Single or Numbered Backups
18.3.2.2 Automatic Deletion of Backups
18.3.2.3 Copying vs. Renaming
18.3.3 Customizing Saving of Files
18.3.4 Protection against Simultaneous Editing
18.3.5 Shadowing Files
18.3.6 Updating Time Stamps Automatically
18.4 Reverting a Buffer
18.5 Auto Revert: Keeping buffers automatically up-to-date
18.5.1 Auto Reverting Non-File Buffers
18.5.1.1 Auto Reverting the Buffer Menu
18.5.1.2 Auto Reverting Dired buffers
18.6 Auto-Saving: Protection Against Disasters
18.6.1 Auto-Save Files
18.6.2 Controlling Auto-Saving
18.6.3 Recovering Data from Auto-Saves
18.7 File Name Aliases
18.8 File Directories
18.9 Comparing Files
18.10 Diff Mode
18.11 Copying, Naming and Renaming Files
18.12 Miscellaneous File Operations
18.13 Accessing Compressed Files
18.14 File Archives
18.15 Remote Files
18.16 Quoted File Names
18.17 File Name Cache
18.18 Convenience Features for Finding Files
18.19 Viewing Image Files
18.20 Filesets
19 Using Multiple Buffers
19.1 Creating and Selecting Buffers
19.2 Listing Existing Buffers
19.3 Miscellaneous Buffer Operations
19.4 Killing Buffers
19.5 Operating on Several Buffers
19.6 Indirect Buffers
19.7 Convenience Features and Customization of Buffer Handling
19.7.1 Making Buffer Names Unique
19.7.2 Fast minibuffer selection
19.7.3 Customizing Buffer Menus
20 Multiple Windows
20.1 Concepts of Emacs Windows
20.2 Splitting Windows
20.3 Using Other Windows
20.4 Displaying in Another Window
20.5 Deleting and Resizing Windows
20.6 Displaying a Buffer in a Window
20.6.1 How display-buffer works
20.6.2 Displaying non-editable buffers.
20.7 Convenience Features for Window Handling
20.8 Window Tab Line
21 Frames and Graphical Displays
21.1 Mouse Commands for Editing
21.2 Mouse Commands for Words and Lines
21.3 Following References with the Mouse
21.4 Mouse Clicks for Menus
21.5 Mode Line Mouse Commands
21.6 Creating Frames
21.7 Frame Commands
21.8 Fonts
21.9 Speedbar Frames
21.10 Multiple Displays
21.11 Frame Parameters
21.12 Scroll Bars
21.13 Window Dividers
21.14 Drag and Drop
21.15 Menu Bars
21.16 Tool Bars
21.17 Tab Bars
21.18 Using Dialog Boxes
21.19 Tooltips
21.20 Mouse Avoidance
21.21 Non-Window Terminals
21.22 Using a Mouse in Text Terminals
22 International Character Set Support
22.1 Introduction to International Character Sets
22.2 Language Environments
22.3 Input Methods
22.4 Selecting an Input Method
22.5 Coding Systems
22.6 Recognizing Coding Systems
22.7 Specifying a File’s Coding System
22.8 Choosing Coding Systems for Output
22.9 Specifying a Coding System for File Text
22.10 Coding Systems for Interprocess Communication
22.11 Coding Systems for File Names
22.12 Coding Systems for Terminal I/O
22.13 Fontsets
22.14 Defining Fontsets
22.15 Modifying Fontsets
22.16 Undisplayable Characters
22.17 Unibyte Editing Mode
22.18 Charsets
22.19 Bidirectional Editing
23 Major and Minor Modes
23.1 Major Modes
23.2 Minor Modes
23.3 Choosing File Modes
24 Indentation
24.1 Indentation Commands
24.2 Tab Stops
24.3 Tabs vs. Spaces
24.4 Convenience Features for Indentation
25 Commands for Human Languages
25.1 Words
25.2 Sentences
25.3 Paragraphs
25.4 Pages
25.5 Quotation Marks
25.6 Filling Text
25.6.1 Auto Fill Mode
25.6.2 Explicit Fill Commands
25.6.3 The Fill Prefix
25.6.4 Adaptive Filling
25.7 Case Conversion Commands
25.8 Text Mode
25.9 Outline Mode
25.9.1 Format of Outlines
25.9.2 Outline Motion Commands
25.9.3 Outline Visibility Commands
25.9.4 Viewing One Outline in Multiple Views
25.9.5 Folding Editing
25.10 Org Mode
25.10.1 Org as an organizer
25.10.2 Org as an authoring system
25.11 TeX Mode
25.11.1 TeX Editing Commands
25.11.2 LaTeX Editing Commands
25.11.3 TeX Printing Commands
25.11.4 TeX Mode Miscellany
25.12 SGML and HTML Modes
25.13 Nroff Mode
25.14 Enriched Text
25.14.1 Enriched Mode
25.14.2 Hard and Soft Newlines
25.14.3 Editing Format Information
25.14.4 Faces in Enriched Text
25.14.5 Indentation in Enriched Text
25.14.6 Justification in Enriched Text
25.14.7 Setting Other Text Properties
25.15 Editing Text-based Tables
25.15.1 What is a Text-based Table?
25.15.2 Creating a Table
25.15.3 Table Recognition
25.15.4 Commands for Table Cells
25.15.5 Cell Justification
25.15.6 Table Rows and Columns
25.15.7 Converting Between Plain Text and Tables
25.15.8 Table Miscellany
25.16 Two-Column Editing
26 Editing Programs
26.1 Major Modes for Programming Languages
26.2 Top-Level Definitions, or Defuns
26.2.1 Left Margin Convention
26.2.2 Moving by Defuns
26.2.3 Imenu
26.2.4 Which Function Mode
26.3 Indentation for Programs
26.3.1 Basic Program Indentation Commands
26.3.2 Indenting Several Lines
26.3.3 Customizing Lisp Indentation
26.3.4 Commands for C Indentation
26.3.5 Customizing C Indentation
26.4 Commands for Editing with Parentheses
26.4.1 Expressions with Balanced Parentheses
26.4.2 Moving in the Parenthesis Structure
26.4.3 Matching Parentheses
26.5 Manipulating Comments
26.5.1 Comment Commands
26.5.2 Multiple Lines of Comments
26.5.3 Options Controlling Comments
26.6 Documentation Lookup
26.6.1 Info Documentation Lookup
26.6.2 Man Page Lookup
26.6.3 Emacs Lisp Documentation Lookup
26.7 Hideshow minor mode
26.8 Completion for Symbol Names
26.9 MixedCase Words
26.10 Semantic
26.11 Other Features Useful for Editing Programs
26.12 C and Related Modes
26.12.1 C Mode Motion Commands
26.12.2 Electric C Characters
26.12.3 Hungry Delete Feature in C
26.12.4 Other Commands for C Mode
26.13 Asm Mode
26.14 Fortran Mode
26.14.1 Motion Commands
26.14.2 Fortran Indentation
26.14.2.1 Fortran Indentation and Filling Commands
26.14.2.2 Continuation Lines
26.14.2.3 Line Numbers
26.14.2.4 Syntactic Conventions
26.14.2.5 Variables for Fortran Indentation
26.14.3 Fortran Comments
26.14.4 Auto Fill in Fortran Mode
26.14.5 Checking Columns in Fortran
26.14.6 Fortran Keyword Abbrevs
27 Compiling and Testing Programs
27.1 Running Compilations under Emacs
27.2 Compilation Mode
27.3 Subshells for Compilation
27.4 Searching with Grep under Emacs
27.5 Finding Syntax Errors On The Fly
27.6 Running Debuggers Under Emacs
27.6.1 Starting GUD
27.6.2 Debugger Operation
27.6.3 Commands of GUD
27.6.4 GUD Customization
27.6.5 GDB Graphical Interface
27.6.5.1 GDB User Interface Layout
27.6.5.2 Source Buffers
27.6.5.3 Breakpoints Buffer
27.6.5.4 Threads Buffer
27.6.5.5 Stack Buffer
27.6.5.6 Other GDB Buffers
27.6.5.7 Watch Expressions
27.6.5.8 Multithreaded Debugging
27.7 Executing Lisp Expressions
27.8 Libraries of Lisp Code for Emacs
27.9 Evaluating Emacs Lisp Expressions
27.10 Lisp Interaction Buffers
27.11 Running an External Lisp
28 Maintaining Large Programs
28.1 Version Control
28.1.1 Introduction to Version Control
28.1.1.1 Understanding the Problems it Addresses
28.1.1.2 Supported Version Control Systems
28.1.1.3 Concepts of Version Control
28.1.1.4 Merge-based vs Lock-based Version Control
28.1.1.5 Changeset-based vs File-based Version Control
28.1.1.6 Decentralized vs Centralized Repositories
28.1.1.7 Types of Log File
28.1.2 Version Control and the Mode Line
28.1.3 Basic Editing under Version Control
28.1.3.1 Basic Version Control with Merging
28.1.3.2 Basic Version Control with Locking
28.1.3.3 Advanced Control in C-x v v
28.1.4 Features of the Log Entry Buffer
28.1.5 Registering a File for Version Control
28.1.6 Examining And Comparing Old Revisions
28.1.7 VC Change Log
28.1.8 Undoing Version Control Actions
28.1.9 Ignore Version Control Files
28.1.10 VC Directory Mode
28.1.10.1 The VC Directory Buffer
28.1.10.2 VC Directory Commands
28.1.11 Version Control Branches
28.1.11.1 Switching between Branches
28.1.11.2 Pulling/Pushing Changes into/from a Branch
28.1.11.3 Merging Branches
28.1.11.4 Creating New Branches
28.1.12 Miscellaneous Commands and Features of VC
28.1.12.1 Change Logs and VC
28.1.12.2 Deleting and Renaming Version-Controlled Files
28.1.12.3 Revision Tags
28.1.12.4 Inserting Version Control Headers
28.1.13 Customizing VC
28.1.13.1 General Options
28.1.13.2 Options for RCS and SCCS
28.1.13.3 Options specific for CVS
28.2 Working with Projects
28.2.1 Project Commands That Operate on Files
28.2.2 Project Commands That Operate on Buffers
28.2.3 Switching Projects
28.2.4 Managing the Project List File
28.3 Change Logs
28.3.1 Change Log Commands
28.3.2 Format of ChangeLog
28.4 Find Identifier References
28.4.1 Find Identifiers
28.4.1.1 Looking Up Identifiers
28.4.1.2 Commands Available in the *xref* Buffer
28.4.1.3 Searching and Replacing with Identifiers
28.4.1.4 Identifier Inquiries
28.4.2 Tags Tables
28.4.2.1 Source File Tag Syntax
28.4.2.2 Creating Tags Tables
28.4.2.3 Etags Regexps
28.4.3 Selecting a Tags Table
28.5 Emacs Development Environment
28.6 Merging Files with Emerge
28.6.1 Overview of Emerge
28.6.2 Submodes of Emerge
28.6.3 State of a Difference
28.6.4 Merge Commands
28.6.5 Exiting Emerge
28.6.6 Combining the Two Versions
28.6.7 Fine Points of Emerge
28.7 Bug Reference
29 Abbrevs
29.1 Abbrev Concepts
29.2 Defining Abbrevs
29.3 Controlling Abbrev Expansion
29.4 Abbrevs Suggestions
29.5 Examining and Editing Abbrevs
29.6 Saving Abbrevs
29.7 Dynamic Abbrev Expansion
29.8 Customizing Dynamic Abbreviation
30 Dired, the Directory Editor
30.1 Entering Dired
30.2 Navigation in the Dired Buffer
30.3 Deleting Files with Dired
30.4 Flagging Many Files at Once
30.5 Visiting Files in Dired
30.6 Dired Marks vs. Flags
30.7 Operating on Files
30.8 Shell Commands in Dired
30.9 Transforming File Names in Dired
30.10 File Comparison with Dired
30.11 Subdirectories in Dired
30.12 Subdirectory Switches in Dired
30.13 Moving Over Subdirectories
30.14 Hiding Subdirectories
30.15 Updating the Dired Buffer
30.16 Dired and find
30.17 Editing the Dired Buffer
30.18 Viewing Image Thumbnails in Dired
30.19 Other Dired Features
31 The Calendar and the Diary
31.1 Movement in the Calendar
31.1.1 Motion by Standard Lengths of Time
31.1.2 Beginning or End of Week, Month or Year
31.1.3 Specified Dates
31.2 Scrolling in the Calendar
31.3 Counting Days
31.4 Miscellaneous Calendar Commands
31.5 Writing Calendar Files
31.6 Holidays
31.7 Times of Sunrise and Sunset
31.8 Phases of the Moon
31.9 Conversion To and From Other Calendars
31.9.1 Supported Calendar Systems
31.9.2 Converting To Other Calendars
31.9.3 Converting From Other Calendars
31.10 The Diary
31.10.1 The Diary File
31.10.2 Displaying the Diary
31.10.3 Date Formats
31.10.4 Commands to Add to the Diary
31.10.5 Special Diary Entries
31.10.6 Appointments
31.10.7 Importing and Exporting Diary Entries
31.11 Daylight Saving Time
31.12 Summing Time Intervals
31.13 More advanced features of the Calendar and Diary
31.13.1 Customizing the Calendar
31.13.2 Customizing the Holidays
31.13.3 Converting from the Mayan Calendar
31.13.4 Date Display Format
31.13.5 Time Display Format
31.13.6 Customizing the Diary
31.13.7 Diary Entries Using non-Gregorian Calendars
31.13.8 Diary Display
31.13.9 Fancy Diary Display
31.13.10 Sexp Entries and the Fancy Diary Display
32 Sending Mail
32.1 The Format of the Mail Buffer
32.2 Mail Header Fields
32.3 Mail Aliases
32.4 Mail Commands
32.4.1 Mail Sending
32.4.2 Mail Header Editing
32.4.3 Citing Mail
32.4.4 Mail Miscellany
32.5 Mail Signature
32.6 Mail Amusements
32.7 Mail-Composition Methods
33 Reading Mail with Rmail
33.1 Basic Concepts of Rmail
33.2 Scrolling Within a Message
33.3 Moving Among Messages
33.4 Deleting Messages
33.5 Rmail Files and Inboxes
33.6 Multiple Rmail Files
33.7 Copying Messages Out to Files
33.8 Labels
33.9 Rmail Attributes
33.10 Sending Replies
33.11 Summaries
33.11.1 Making Summaries
33.11.2 Editing in Summaries
33.12 Sorting the Rmail File
33.13 Display of Messages
33.14 Rmail and Coding Systems
33.15 Editing Within a Message
33.16 Digest Messages
33.17 Reading Rot13 Messages
33.18 movemail program
33.19 Retrieving Mail from Remote Mailboxes
33.20 Retrieving Mail from Local Mailboxes in Various Formats
34 Email and Usenet News with Gnus
34.1 Gnus Buffers
34.2 When Gnus Starts Up
34.3 Using the Gnus Group Buffer
34.4 Using the Gnus Summary Buffer
35 Host Security
36 Network Security
37 Document Viewing
37.1 DocView Navigation
37.2 DocView Searching
37.3 DocView Slicing
37.4 DocView Conversion
38 Running Shell Commands from Emacs
38.1 Single Shell Commands
38.2 Interactive Subshell
38.3 Shell Mode
38.4 Shell Prompts
38.5 Shell Command History
38.5.1 Shell History Ring
38.5.2 Shell History Copying
38.5.3 Shell History References
38.6 Directory Tracking
38.7 Shell Mode Options
38.8 Emacs Terminal Emulator
38.9 Term Mode
38.10 Remote Host Shell
38.11 Serial Terminal
39 Using Emacs as a Server
39.1 TCP Emacs server
39.2 Invoking emacsclient
39.3 emacsclient Options
40 Printing Hard Copies
40.1 PostScript Hardcopy
40.2 Variables for PostScript Hardcopy
40.3 Printing Package
41 Sorting Text
42 Editing Pictures
42.1 Basic Editing in Picture Mode
42.2 Controlling Motion after Insert
42.3 Picture Mode Tabs
42.4 Picture Mode Rectangle Commands
43 Editing Binary Files
44 Saving Emacs Sessions
45 Recursive Editing Levels
46 Hyperlinking and Web Navigation Features
46.1 Web Browsing with EWW
46.2 Embedded WebKit Widgets
46.3 Following URLs
46.4 Activating URLs
46.5 Finding Files and URLs at Point
47 Games and Other Amusements
48 Emacs Lisp Packages
48.1 The Package Menu Buffer
48.2 Package Statuses
48.3 Package Installation
48.4 Package Files and Directory Layout
49 Customization
49.1 Easy Customization Interface
49.1.1 Customization Groups
49.1.2 Browsing and Searching for Settings
49.1.3 Changing a Variable
49.1.4 Saving Customizations
49.1.5 Customizing Faces
49.1.6 Customizing Specific Items
49.1.7 Custom Themes
49.1.8 Creating Custom Themes
49.2 Variables
49.2.1 Examining and Setting Variables
49.2.2 Hooks
49.2.3 Local Variables
49.2.4 Local Variables in Files
49.2.4.1 Specifying File Variables
49.2.4.2 Safety of File Variables
49.2.5 Per-Directory Local Variables
49.2.6 Per-Connection Local Variables
49.3 Customizing Key Bindings
49.3.1 Keymaps
49.3.2 Prefix Keymaps
49.3.3 Local Keymaps
49.3.4 Minibuffer Keymaps
49.3.5 Changing Key Bindings Interactively
49.3.6 Rebinding Keys in Your Init File
49.3.7 Modifier Keys
49.3.8 Rebinding Function Keys
49.3.9 Named ASCII Control Characters
49.3.10 Rebinding Mouse Buttons
49.3.11 Disabling Commands
49.4 The Emacs Initialization File
49.4.1 Init File Syntax
49.4.2 Init File Examples
49.4.3 Terminal-specific Initialization
49.4.4 How Emacs Finds Your Init File
49.4.5 Non-ASCII Characters in Init Files
49.4.6 The Early Init File
49.5 Keeping Persistent Authentication Information
50 Quitting and Aborting
51 Dealing with Emacs Trouble
51.1 If DEL Fails to Delete
51.2 Recursive Editing Levels
51.3 Garbage on the Screen
51.4 Garbage in the Text
51.5 Running out of Memory
51.6 When Emacs Crashes
51.7 Recovery After a Crash
51.8 Emergency Escape
51.9 Long Lines
52 Reporting Bugs
52.1 Reading Existing Bug Reports and Known Problems
52.2 When Is There a Bug
52.3 Understanding Bug Reporting
52.4 Checklist for Bug Reports
52.5 Sending Patches for GNU Emacs
53 Contributing to Emacs Development
53.1 Coding Standards
53.2 Copyright Assignment
54 How To Get Help with GNU Emacs
Appendix A GNU GENERAL PUBLIC LICENSE
Appendix B GNU Free Documentation License
Appendix C Command Line Arguments for Emacs Invocation
C.1 Action Arguments
C.2 Initial Options
C.3 Command Argument Example
C.4 Environment Variables
C.4.1 General Variables
C.4.2 Miscellaneous Variables
C.4.3 The MS-Windows System Registry
C.5 Specifying the Display Name
C.6 Font Specification Options
C.7 Window Color Options
C.8 Options for Window Size and Position
C.9 Internal and Outer Borders
C.10 Frame Titles
C.11 Icons
C.12 Other Display Options
Appendix D X Options and Resources
D.1 X Resources
D.2 Table of X Resources for Emacs
D.3 Lucid Menu And Dialog X Resources
D.4 Motif Menu X Resources
D.5 GTK+ resources
D.5.1 GTK+ Resource Basics
D.5.2 GTK+ widget names
D.5.3 GTK+ Widget Names in Emacs
D.5.4 GTK+ styles
Appendix E Emacs 27 Antinews
Appendix F Emacs and macOS / GNUstep
F.1 Basic Emacs usage under macOS and GNUstep
F.1.1 Grabbing environment variables
F.2 Mac / GNUstep Customization
F.2.1 Modifier keys
F.2.2 Frame Variables
F.2.3 macOS Trackpad/Mousewheel Variables
F.2.4 Font Panel
F.3 Windowing System Events under macOS / GNUstep
F.4 GNUstep Support
Appendix G Emacs and Microsoft Windows/MS-DOS
G.1 How to Start Emacs on MS-Windows
G.2 Text Files and Binary Files
G.3 File Names on MS-Windows
G.4 Emulation of ls on MS-Windows
G.5 HOME and Startup Directories on MS-Windows
G.6 Keyboard Usage on MS-Windows
G.7 Mouse Usage on MS-Windows
G.8 Subprocesses on Windows 9X/ME and Windows NT/2K/XP/Vista/7/8/10
G.9 Printing and MS-Windows
G.10 Specifying Fonts on MS-Windows
G.11 Miscellaneous Windows-specific features
G.12 Emacs and MS-DOS
G.12.1 Keyboard Usage on MS-DOS
G.12.2 Mouse Usage on MS-DOS
G.12.3 Display on MS-DOS
G.12.4 File Names on MS-DOS
G.12.5 Printing and MS-DOS
G.12.6 International Support on MS-DOS
G.12.7 Subprocesses on MS-DOS
The GNU Manifesto
What’s GNU? Gnu’s Not Unix!
Why I Must Write GNU
Why GNU Will Be Compatible with Unix
How GNU Will Be Available
Why Many Other Programmers Want to Help
How You Can Contribute
Why All Computer Users Will Benefit
Some Easily Rebutted Objections to GNU’s Goals
Glossary
Acknowledgments
Key (Character) Index
Command-Line Options Index
Command and Function Index
Variable Index
Concept Index
GNU Emacs
Emacs
Distribution
Introduction
1 The Organization of the Screen
1.1 Point
1.2 The Echo Area
1.3 The Mode Line
1.4 The Menu Bar
2 Kinds of User Input
3 Keys
4 Keys and Commands
5 Entering Emacs
6 Exiting Emacs
7 Basic Editing Commands
7.1 Inserting Text
7.2 Changing the Location of Point
7.3 Erasing Text
7.4 Undoing Changes
7.5 Files
7.6 Help
7.7 Blank Lines
7.8 Continuation Lines
7.9 Cursor Position Information
7.10 Numeric Arguments
7.11 Repeating a Command
8 The Minibuffer
8.1 Using the Minibuffer
8.2 Minibuffers for File Names
8.3 Editing in the Minibuffer
8.4 Completion
8.4.1 Completion Example
8.4.2 Completion Commands
8.4.3 Completion Exit
8.4.4 How Completion Alternatives Are Chosen
8.4.5 Completion Options
8.5 Minibuffer History
8.6 Repeating Minibuffer Commands
8.7 Entering passwords
8.8 Yes or No Prompts
9 Running Commands by Name
10 Help
10.1 Help Summary
10.2 Documentation for a Key
10.3 Help by Command or Variable Name
10.4 Apropos
10.5 Help Mode Commands
10.6 Keyword Search for Packages
10.7 Help for International Language Support
10.8 Other Help Commands
10.9 Help Files
10.10 Help on Active Text and Tooltips
11 The Mark and the Region
11.1 Setting the Mark
11.2 Commands to Mark Textual Objects
11.3 Operating on the Region
11.4 The Mark Ring
11.5 The Global Mark Ring
11.6 Shift Selection
11.7 Disabling Transient Mark Mode
12 Killing and Moving Text
12.1 Deletion and Killing
12.1.1 Deletion
12.1.2 Killing by Lines
12.1.3 Other Kill Commands
12.1.4 Options for Killing
12.2 Yanking
12.2.1 The Kill Ring
12.2.2 Yanking Earlier Kills
12.2.3 Appending Kills
12.3 “Cut and Paste” Operations on Graphical Displays
12.3.1 Using the Clipboard
12.3.2 Cut and Paste with Other Window Applications
12.3.3 Secondary Selection
12.4 Accumulating Text
12.5 Rectangles
12.6 CUA Bindings
13 Registers
13.1 Saving Positions in Registers
13.2 Saving Text in Registers
13.3 Saving Rectangles in Registers
13.4 Saving Window Configurations in Registers
13.5 Keeping Numbers in Registers
13.6 Keeping File Names in Registers
13.7 Keyboard Macro Registers
13.8 Bookmarks
14 Controlling the Display
14.1 Scrolling
14.2 Recentering
14.3 Automatic Scrolling
14.4 Horizontal Scrolling
14.5 Narrowing
14.6 View Mode
14.7 Follow Mode
14.8 Text Faces
14.9 Colors for Faces
14.9.1 Color Names
14.9.2 RGB Triplets
14.10 Standard Faces
14.11 Text Scale
14.12 Font Lock mode
14.13 Interactive Highlighting
14.14 Window Fringes
14.15 Displaying Boundaries
14.16 Useless Whitespace
14.17 Selective Display
14.18 Optional Mode Line Features
14.19 How Text Is Displayed
14.20 Displaying the Cursor
14.21 Line Truncation
14.22 Visual Line Mode
14.23 Customization of Display
15 Searching and Replacement
15.1 Incremental Search
15.1.1 Basics of Incremental Search
15.1.2 Repeating Incremental Search
15.1.3 Isearch Yanking
15.1.4 Errors in Incremental Search
15.1.5 Special Input for Incremental Search
15.1.6 Not Exiting Incremental Search
15.1.7 Searching the Minibuffer
15.2 Nonincremental Search
15.3 Word Search
15.4 Symbol Search
15.5 Regular Expression Search
15.6 Syntax of Regular Expressions
15.7 Backslash in Regular Expressions
15.8 Regular Expression Example
15.9 Lax Matching During Searching
15.10 Replacement Commands
15.10.1 Unconditional Replacement
15.10.2 Regexp Replacement
15.10.3 Replace Commands and Lax Matches
15.10.4 Query Replace
15.11 Other Search-and-Loop Commands
15.12 Tailoring Search to Your Needs
16 Commands for Fixing Typos
16.1 Undo
16.2 Transposing Text
16.3 Case Conversion
16.4 Checking and Correcting Spelling
17 Keyboard Macros
17.1 Basic Use
17.2 The Keyboard Macro Ring
17.3 The Keyboard Macro Counter
17.4 Executing Macros with Variations
17.5 Naming and Saving Keyboard Macros
17.6 Editing a Keyboard Macro
17.7 Stepwise Editing a Keyboard Macro
18 File Handling
18.1 File Names
18.2 Visiting Files
18.3 Saving Files
18.3.1 Commands for Saving Files
18.3.2 Backup Files
18.3.2.1 Single or Numbered Backups
18.3.2.2 Automatic Deletion of Backups
18.3.2.3 Copying vs. Renaming
18.3.3 Customizing Saving of Files
18.3.4 Protection against Simultaneous Editing
18.3.5 Shadowing Files
18.3.6 Updating Time Stamps Automatically
18.4 Reverting a Buffer
18.5 Auto Revert: Keeping buffers automatically up-to-date
18.5.1 Auto Reverting Non-File Buffers
18.5.1.1 Auto Reverting the Buffer Menu
18.5.1.2 Auto Reverting Dired buffers
18.6 Auto-Saving: Protection Against Disasters
18.6.1 Auto-Save Files
18.6.2 Controlling Auto-Saving
18.6.3 Recovering Data from Auto-Saves
18.7 File Name Aliases
18.8 File Directories
18.9 Comparing Files
18.10 Diff Mode
18.11 Copying, Naming and Renaming Files
18.12 Miscellaneous File Operations
18.13 Accessing Compressed Files
18.14 File Archives
18.15 Remote Files
18.16 Quoted File Names
18.17 File Name Cache
18.18 Convenience Features for Finding Files
18.19 Viewing Image Files
18.20 Filesets
19 Using Multiple Buffers
19.1 Creating and Selecting Buffers
19.2 Listing Existing Buffers
19.3 Miscellaneous Buffer Operations
19.4 Killing Buffers
19.5 Operating on Several Buffers
19.6 Indirect Buffers
19.7 Convenience Features and Customization of Buffer Handling
19.7.1 Making Buffer Names Unique
19.7.2 Fast minibuffer selection
19.7.3 Customizing Buffer Menus
20 Multiple Windows
20.1 Concepts of Emacs Windows
20.2 Splitting Windows
20.3 Using Other Windows
20.4 Displaying in Another Window
20.5 Deleting and Resizing Windows
20.6 Displaying a Buffer in a Window
20.6.1 How display-buffer works
20.6.2 Displaying non-editable buffers.
20.7 Convenience Features for Window Handling
20.8 Window Tab Line
21 Frames and Graphical Displays
21.1 Mouse Commands for Editing
21.2 Mouse Commands for Words and Lines
21.3 Following References with the Mouse
21.4 Mouse Clicks for Menus
21.5 Mode Line Mouse Commands
21.6 Creating Frames
21.7 Frame Commands
21.8 Fonts
21.9 Speedbar Frames
21.10 Multiple Displays
21.11 Frame Parameters
21.12 Scroll Bars
21.13 Window Dividers
21.14 Drag and Drop
21.15 Menu Bars
21.16 Tool Bars
21.17 Tab Bars
21.18 Using Dialog Boxes
21.19 Tooltips
21.20 Mouse Avoidance
21.21 Non-Window Terminals
21.22 Using a Mouse in Text Terminals
22 International Character Set Support
22.1 Introduction to International Character Sets
22.2 Language Environments
22.3 Input Methods
22.4 Selecting an Input Method
22.5 Coding Systems
22.6 Recognizing Coding Systems
22.7 Specifying a File’s Coding System
22.8 Choosing Coding Systems for Output
22.9 Specifying a Coding System for File Text
22.10 Coding Systems for Interprocess Communication
22.11 Coding Systems for File Names
22.12 Coding Systems for Terminal I/O
22.13 Fontsets
22.14 Defining Fontsets
22.15 Modifying Fontsets
22.16 Undisplayable Characters
22.17 Unibyte Editing Mode
22.18 Charsets
22.19 Bidirectional Editing
23 Major and Minor Modes
23.1 Major Modes
23.2 Minor Modes
23.3 Choosing File Modes
24 Indentation
24.1 Indentation Commands
24.2 Tab Stops
24.3 Tabs vs. Spaces
24.4 Convenience Features for Indentation
25 Commands for Human Languages
25.1 Words
25.2 Sentences
25.3 Paragraphs
25.4 Pages
25.5 Quotation Marks
25.6 Filling Text
25.6.1 Auto Fill Mode
25.6.2 Explicit Fill Commands
25.6.3 The Fill Prefix
25.6.4 Adaptive Filling
25.7 Case Conversion Commands
25.8 Text Mode
25.9 Outline Mode
25.9.1 Format of Outlines
25.9.2 Outline Motion Commands
25.9.3 Outline Visibility Commands
25.9.4 Viewing One Outline in Multiple Views
25.9.5 Folding Editing
25.10 Org Mode
25.10.1 Org as an organizer
25.10.2 Org as an authoring system
25.11 TeX Mode
25.11.1 TeX Editing Commands
25.11.2 LaTeX Editing Commands
25.11.3 TeX Printing Commands
25.11.4 TeX Mode Miscellany
25.12 SGML and HTML Modes
25.13 Nroff Mode
25.14 Enriched Text
25.14.1 Enriched Mode
25.14.2 Hard and Soft Newlines
25.14.3 Editing Format Information
25.14.4 Faces in Enriched Text
25.14.5 Indentation in Enriched Text
25.14.6 Justification in Enriched Text
25.14.7 Setting Other Text Properties
25.15 Editing Text-based Tables
25.15.1 What is a Text-based Table?
25.15.2 Creating a Table
25.15.3 Table Recognition
25.15.4 Commands for Table Cells
25.15.5 Cell Justification
25.15.6 Table Rows and Columns
25.15.7 Converting Between Plain Text and Tables
25.15.8 Table Miscellany
25.16 Two-Column Editing
26 Editing Programs
26.1 Major Modes for Programming Languages
26.2 Top-Level Definitions, or Defuns
26.2.1 Left Margin Convention
26.2.2 Moving by Defuns
26.2.3 Imenu
26.2.4 Which Function Mode
26.3 Indentation for Programs
26.3.1 Basic Program Indentation Commands
26.3.2 Indenting Several Lines
26.3.3 Customizing Lisp Indentation
26.3.4 Commands for C Indentation
26.3.5 Customizing C Indentation
26.4 Commands for Editing with Parentheses
26.4.1 Expressions with Balanced Parentheses
26.4.2 Moving in the Parenthesis Structure
26.4.3 Matching Parentheses
26.5 Manipulating Comments
26.5.1 Comment Commands
26.5.2 Multiple Lines of Comments
26.5.3 Options Controlling Comments
26.6 Documentation Lookup
26.6.1 Info Documentation Lookup
26.6.2 Man Page Lookup
26.6.3 Emacs Lisp Documentation Lookup
26.7 Hideshow minor mode
26.8 Completion for Symbol Names
26.9 MixedCase Words
26.10 Semantic
26.11 Other Features Useful for Editing Programs
26.12 C and Related Modes
26.12.1 C Mode Motion Commands
26.12.2 Electric C Characters
26.12.3 Hungry Delete Feature in C
26.12.4 Other Commands for C Mode
26.13 Asm Mode
26.14 Fortran Mode
26.14.1 Motion Commands
26.14.2 Fortran Indentation
26.14.2.1 Fortran Indentation and Filling Commands
26.14.2.2 Continuation Lines
26.14.2.3 Line Numbers
26.14.2.4 Syntactic Conventions
26.14.2.5 Variables for Fortran Indentation
26.14.3 Fortran Comments
26.14.4 Auto Fill in Fortran Mode
26.14.5 Checking Columns in Fortran
26.14.6 Fortran Keyword Abbrevs
27 Compiling and Testing Programs
27.1 Running Compilations under Emacs
27.2 Compilation Mode
27.3 Subshells for Compilation
27.4 Searching with Grep under Emacs
27.5 Finding Syntax Errors On The Fly
27.6 Running Debuggers Under Emacs
27.6.1 Starting GUD
27.6.2 Debugger Operation
27.6.3 Commands of GUD
27.6.4 GUD Customization
27.6.5 GDB Graphical Interface
27.6.5.1 GDB User Interface Layout
27.6.5.2 Source Buffers
27.6.5.3 Breakpoints Buffer
27.6.5.4 Threads Buffer
27.6.5.5 Stack Buffer
27.6.5.6 Other GDB Buffers
27.6.5.7 Watch Expressions
27.6.5.8 Multithreaded Debugging
27.7 Executing Lisp Expressions
27.8 Libraries of Lisp Code for Emacs
27.9 Evaluating Emacs Lisp Expressions
27.10 Lisp Interaction Buffers
27.11 Running an External Lisp
28 Maintaining Large Programs
28.1 Version Control
28.1.1 Introduction to Version Control
28.1.1.1 Understanding the Problems it Addresses
28.1.1.2 Supported Version Control Systems
28.1.1.3 Concepts of Version Control
28.1.1.4 Merge-based vs Lock-based Version Control
28.1.1.5 Changeset-based vs File-based Version Control
28.1.1.6 Decentralized vs Centralized Repositories
28.1.1.7 Types of Log File
28.1.2 Version Control and the Mode Line
28.1.3 Basic Editing under Version Control
28.1.3.1 Basic Version Control with Merging
28.1.3.2 Basic Version Control with Locking
28.1.3.3 Advanced Control in C-x v v
28.1.4 Features of the Log Entry Buffer
28.1.5 Registering a File for Version Control
28.1.6 Examining And Comparing Old Revisions
28.1.7 VC Change Log
28.1.8 Undoing Version Control Actions
28.1.9 Ignore Version Control Files
28.1.10 VC Directory Mode
28.1.10.1 The VC Directory Buffer
28.1.10.2 VC Directory Commands
28.1.11 Version Control Branches
28.1.11.1 Switching between Branches
28.1.11.2 Pulling/Pushing Changes into/from a Branch
28.1.11.3 Merging Branches
28.1.11.4 Creating New Branches
28.1.12 Miscellaneous Commands and Features of VC
28.1.12.1 Change Logs and VC
28.1.12.2 Deleting and Renaming Version-Controlled Files
28.1.12.3 Revision Tags
28.1.12.4 Inserting Version Control Headers
28.1.13 Customizing VC
28.1.13.1 General Options
28.1.13.2 Options for RCS and SCCS
28.1.13.3 Options specific for CVS
28.2 Working with Projects
28.2.1 Project Commands That Operate on Files
28.2.2 Project Commands That Operate on Buffers
28.2.3 Switching Projects
28.2.4 Managing the Project List File
28.3 Change Logs
28.3.1 Change Log Commands
28.3.2 Format of ChangeLog
28.4 Find Identifier References
28.4.1 Find Identifiers
28.4.1.1 Looking Up Identifiers
28.4.1.2 Commands Available in the *xref* Buffer
28.4.1.3 Searching and Replacing with Identifiers
28.4.1.4 Identifier Inquiries
28.4.2 Tags Tables
28.4.2.1 Source File Tag Syntax
28.4.2.2 Creating Tags Tables
28.4.2.3 Etags Regexps
28.4.3 Selecting a Tags Table
28.5 Emacs Development Environment
28.6 Merging Files with Emerge
28.6.1 Overview of Emerge
28.6.2 Submodes of Emerge
28.6.3 State of a Difference
28.6.4 Merge Commands
28.6.5 Exiting Emerge
28.6.6 Combining the Two Versions
28.6.7 Fine Points of Emerge
28.7 Bug Reference
29 Abbrevs
29.1 Abbrev Concepts
29.2 Defining Abbrevs
29.3 Controlling Abbrev Expansion
29.4 Abbrevs Suggestions
29.5 Examining and Editing Abbrevs
29.6 Saving Abbrevs
29.7 Dynamic Abbrev Expansion
29.8 Customizing Dynamic Abbreviation
30 Dired, the Directory Editor
30.1 Entering Dired
30.2 Navigation in the Dired Buffer
30.3 Deleting Files with Dired
30.4 Flagging Many Files at Once
30.5 Visiting Files in Dired
30.6 Dired Marks vs. Flags
30.7 Operating on Files
30.8 Shell Commands in Dired
30.9 Transforming File Names in Dired
30.10 File Comparison with Dired
30.11 Subdirectories in Dired
30.12 Subdirectory Switches in Dired
30.13 Moving Over Subdirectories
30.14 Hiding Subdirectories
30.15 Updating the Dired Buffer
30.16 Dired and find
30.17 Editing the Dired Buffer
30.18 Viewing Image Thumbnails in Dired
30.19 Other Dired Features
31 The Calendar and the Diary
31.1 Movement in the Calendar
31.1.1 Motion by Standard Lengths of Time
31.1.2 Beginning or End of Week, Month or Year
31.1.3 Specified Dates
31.2 Scrolling in the Calendar
31.3 Counting Days
31.4 Miscellaneous Calendar Commands
31.5 Writing Calendar Files
31.6 Holidays
31.7 Times of Sunrise and Sunset
31.8 Phases of the Moon
31.9 Conversion To and From Other Calendars
31.9.1 Supported Calendar Systems
31.9.2 Converting To Other Calendars
31.9.3 Converting From Other Calendars
31.10 The Diary
31.10.1 The Diary File
31.10.2 Displaying the Diary
31.10.3 Date Formats
31.10.4 Commands to Add to the Diary
31.10.5 Special Diary Entries
31.10.6 Appointments
31.10.7 Importing and Exporting Diary Entries
31.11 Daylight Saving Time
31.12 Summing Time Intervals
31.13 More advanced features of the Calendar and Diary
31.13.1 Customizing the Calendar
31.13.2 Customizing the Holidays
31.13.3 Converting from the Mayan Calendar
31.13.4 Date Display Format
31.13.5 Time Display Format
31.13.6 Customizing the Diary
31.13.7 Diary Entries Using non-Gregorian Calendars
31.13.8 Diary Display
31.13.9 Fancy Diary Display
31.13.10 Sexp Entries and the Fancy Diary Display
32 Sending Mail
32.1 The Format of the Mail Buffer
32.2 Mail Header Fields
32.3 Mail Aliases
32.4 Mail Commands
32.4.1 Mail Sending
32.4.2 Mail Header Editing
32.4.3 Citing Mail
32.4.4 Mail Miscellany
32.5 Mail Signature
32.6 Mail Amusements
32.7 Mail-Composition Methods
33 Reading Mail with Rmail
33.1 Basic Concepts of Rmail
33.2 Scrolling Within a Message
33.3 Moving Among Messages
33.4 Deleting Messages
33.5 Rmail Files and Inboxes
33.6 Multiple Rmail Files
33.7 Copying Messages Out to Files
33.8 Labels
33.9 Rmail Attributes
33.10 Sending Replies
33.11 Summaries
33.11.1 Making Summaries
33.11.2 Editing in Summaries
33.12 Sorting the Rmail File
33.13 Display of Messages
33.14 Rmail and Coding Systems
33.15 Editing Within a Message
33.16 Digest Messages
33.17 Reading Rot13 Messages
33.18 movemail program
33.19 Retrieving Mail from Remote Mailboxes
33.20 Retrieving Mail from Local Mailboxes in Various Formats
34 Email and Usenet News with Gnus
34.1 Gnus Buffers
34.2 When Gnus Starts Up
34.3 Using the Gnus Group Buffer
34.4 Using the Gnus Summary Buffer
35 Host Security
36 Network Security
37 Document Viewing
37.1 DocView Navigation
37.2 DocView Searching
37.3 DocView Slicing
37.4 DocView Conversion
38 Running Shell Commands from Emacs
38.1 Single Shell Commands
38.2 Interactive Subshell
38.3 Shell Mode
38.4 Shell Prompts
38.5 Shell Command History
38.5.1 Shell History Ring
38.5.2 Shell History Copying
38.5.3 Shell History References
38.6 Directory Tracking
38.7 Shell Mode Options
38.8 Emacs Terminal Emulator
38.9 Term Mode
38.10 Remote Host Shell
38.11 Serial Terminal
39 Using Emacs as a Server
39.1 TCP Emacs server
39.2 Invoking emacsclient
39.3 emacsclient Options
40 Printing Hard Copies
40.1 PostScript Hardcopy
40.2 Variables for PostScript Hardcopy
40.3 Printing Package
41 Sorting Text
42 Editing Pictures
42.1 Basic Editing in Picture Mode
42.2 Controlling Motion after Insert
42.3 Picture Mode Tabs
42.4 Picture Mode Rectangle Commands
43 Editing Binary Files
44 Saving Emacs Sessions
45 Recursive Editing Levels
46 Hyperlinking and Web Navigation Features
46.1 Web Browsing with EWW
46.2 Embedded WebKit Widgets
46.3 Following URLs
46.4 Activating URLs
46.5 Finding Files and URLs at Point
47 Games and Other Amusements
48 Emacs Lisp Packages
48.1 The Package Menu Buffer
48.2 Package Statuses
48.3 Package Installation
48.4 Package Files and Directory Layout
49 Customization
49.1 Easy Customization Interface
49.1.1 Customization Groups
49.1.2 Browsing and Searching for Settings
49.1.3 Changing a Variable
49.1.4 Saving Customizations
49.1.5 Customizing Faces
49.1.6 Customizing Specific Items
49.1.7 Custom Themes
49.1.8 Creating Custom Themes
49.2 Variables
49.2.1 Examining and Setting Variables
49.2.2 Hooks
49.2.3 Local Variables
49.2.4 Local Variables in Files
49.2.4.1 Specifying File Variables
49.2.4.2 Safety of File Variables
49.2.5 Per-Directory Local Variables
49.2.6 Per-Connection Local Variables
49.3 Customizing Key Bindings
49.3.1 Keymaps
49.3.2 Prefix Keymaps
49.3.3 Local Keymaps
49.3.4 Minibuffer Keymaps
49.3.5 Changing Key Bindings Interactively
49.3.6 Rebinding Keys in Your Init File
49.3.7 Modifier Keys
49.3.8 Rebinding Function Keys
49.3.9 Named ASCII Control Characters
49.3.10 Rebinding Mouse Buttons
49.3.11 Disabling Commands
49.4 The Emacs Initialization File
49.4.1 Init File Syntax
49.4.2 Init File Examples
49.4.3 Terminal-specific Initialization
49.4.4 How Emacs Finds Your Init File
49.4.5 Non-ASCII Characters in Init Files
49.4.6 The Early Init File
49.5 Keeping Persistent Authentication Information
50 Quitting and Aborting
51 Dealing with Emacs Trouble
51.1 If DEL Fails to Delete
51.2 Recursive Editing Levels
51.3 Garbage on the Screen
51.4 Garbage in the Text
51.5 Running out of Memory
51.6 When Emacs Crashes
51.7 Recovery After a Crash
51.8 Emergency Escape
51.9 Long Lines
52 Reporting Bugs
52.1 Reading Existing Bug Reports and Known Problems
52.2 When Is There a Bug
52.3 Understanding Bug Reporting
52.4 Checklist for Bug Reports
52.5 Sending Patches for GNU Emacs
53 Contributing to Emacs Development
53.1 Coding Standards
53.2 Copyright Assignment
54 How To Get Help with GNU Emacs
Appendix A GNU GENERAL PUBLIC LICENSE
Appendix B GNU Free Documentation License
Appendix C Command Line Arguments for Emacs Invocation
C.1 Action Arguments
C.2 Initial Options
C.3 Command Argument Example
C.4 Environment Variables
C.4.1 General Variables
C.4.2 Miscellaneous Variables
C.4.3 The MS-Windows System Registry
C.5 Specifying the Display Name
C.6 Font Specification Options
C.7 Window Color Options
C.8 Options for Window Size and Position
C.9 Internal and Outer Borders
C.10 Frame Titles
C.11 Icons
C.12 Other Display Options
Appendix D X Options and Resources
D.1 X Resources
D.2 Table of X Resources for Emacs
D.3 Lucid Menu And Dialog X Resources
D.4 Motif Menu X Resources
D.5 GTK+ resources
D.5.1 GTK+ Resource Basics
D.5.2 GTK+ widget names
D.5.3 GTK+ Widget Names in Emacs
D.5.4 GTK+ styles
Appendix E Emacs 27 Antinews
Appendix F Emacs and macOS / GNUstep
F.1 Basic Emacs usage under macOS and GNUstep
F.1.1 Grabbing environment variables
F.2 Mac / GNUstep Customization
F.2.1 Modifier keys
F.2.2 Frame Variables
F.2.3 macOS Trackpad/Mousewheel Variables
F.2.4 Font Panel
F.3 Windowing System Events under macOS / GNUstep
F.4 GNUstep Support
Appendix G Emacs and Microsoft Windows/MS-DOS
G.1 How to Start Emacs on MS-Windows
G.2 Text Files and Binary Files
G.3 File Names on MS-Windows
G.4 Emulation of ls on MS-Windows
G.5 HOME and Startup Directories on MS-Windows
G.6 Keyboard Usage on MS-Windows
G.7 Mouse Usage on MS-Windows
G.8 Subprocesses on Windows 9X/ME and Windows NT/2K/XP/Vista/7/8/10
G.9 Printing and MS-Windows
G.10 Specifying Fonts on MS-Windows
G.11 Miscellaneous Windows-specific features
G.12 Emacs and MS-DOS
G.12.1 Keyboard Usage on MS-DOS
G.12.2 Mouse Usage on MS-DOS
G.12.3 Display on MS-DOS
G.12.4 File Names on MS-DOS
G.12.5 Printing and MS-DOS
G.12.6 International Support on MS-DOS
G.12.7 Subprocesses on MS-DOS
The GNU Manifesto
What’s GNU? Gnu’s Not Unix!
Why I Must Write GNU
Why GNU Will Be Compatible with Unix
How GNU Will Be Available
Why Many Other Programmers Want to Help
How You Can Contribute
Why All Computer Users Will Benefit
Some Easily Rebutted Objections to GNU’s Goals
Glossary
Acknowledgments
Key (Character) Index
Command-Line Options Index
Command and Function Index
Variable Index
Concept Index
Open sidebar
Dashboard