GNU Emacs Manual
Free

GNU Emacs Manual

By Richard M. Stallman
Free
Book Description

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

Features include:



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

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

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

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

  • Compile and debug from inside Emacs

  • Maintain extensive ChangeLogs

  • Extensive file merge and diff functions

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

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

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

  • And much more!


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

Table of Contents
  • Preface
  • Distribution
    • Acknowledgments
  • Introduction
  • The Organization of the Screen
    • Point
    • The Echo Area
    • The Mode Line
    • The Menu Bar
  • Characters, Keys and Commands
    • Kinds of User Input
    • Keys
    • Keys and Commands
  • Entering and Exiting Emacs
    • Entering Emacs
    • Exiting Emacs
  • Basic Editing Commands
    • Inserting Text
    • Changing the Location of Point
    • Erasing Text
    • Undoing Changes
    • Files
    • Help
    • Blank Lines
    • Continuation Lines
    • Cursor Position Information
    • Numeric Arguments
    • Repeating a Command
  • The Minibuffer
    • Using the Minibuffer
    • Minibuffers for File Names
    • Editing in the Minibuffer
    • Completion
      • Completion Example
      • Completion Commands
      • Completion Exit
      • How Completion Alternatives Are Chosen
      • Completion Options
    • Minibuffer History
    • Repeating Minibuffer Commands
    • Entering passwords
    • Yes or No Prompts
  • Running Commands by Name
  • Help
    • Documentation for a Key
    • Help by Command or Variable Name
    • Apropos
    • Help Mode Commands
    • Keyword Search for Packages
    • Help for International Language Support
    • Other Help Commands
    • Help Files
    • Help on Active Text and Tooltips
  • The Mark and the Region
    • Setting the Mark
    • Commands to Mark Textual Objects
    • Operating on the Region
    • The Mark Ring
    • The Global Mark Ring
    • Shift Selection
    • Disabling Transient Mark Mode
  • Killing and Moving Text
    • Deletion and Killing
      • Deletion
      • Killing by Lines
      • Other Kill Commands
      • Options for Killing
    • Yanking
      • The Kill Ring
      • Yanking Earlier Kills
      • Appending Kills
    • ``Cut and Paste'' Operations on Graphical Displays
      • Using the Clipboard
      • Cut and Paste with Other Window Applications
      • Secondary Selection
    • Accumulating Text
    • Rectangles
    • CUA Bindings
  • Registers
    • Saving Positions in Registers
    • Saving Text in Registers
    • Saving Rectangles in Registers
    • Saving Window Configurations in Registers
    • Keeping Numbers in Registers
    • Keeping File Names in Registers
    • Keyboard Macro Registers
    • Bookmarks
  • Controlling the Display
    • Scrolling
    • Recentering
    • Automatic Scrolling
    • Horizontal Scrolling
    • Narrowing
    • View Mode
    • Follow Mode
    • Text Faces
    • Colors for Faces
    • Standard Faces
    • Text Scale
    • Font Lock mode
    • Interactive Highlighting
    • Window Fringes
    • Displaying Boundaries
    • Useless Whitespace
    • Selective Display
    • Optional Mode Line Features
    • How Text Is Displayed
    • Displaying the Cursor
    • Line Truncation
    • Visual Line Mode
    • Customization of Display
  • Searching and Replacement
    • Incremental Search
      • Basics of Incremental Search
      • Repeating Incremental Search
      • Errors in Incremental Search
      • Special Input for Incremental Search
      • Isearch Yanking
      • Not Exiting Incremental Search
      • Searching the Minibuffer
    • Nonincremental Search
    • Word Search
    • Symbol Search
    • Regular Expression Search
    • Syntax of Regular Expressions
    • Backslash in Regular Expressions
    • Regular Expression Example
    • Searching and Case
    • Replacement Commands
      • Unconditional Replacement
      • Regexp Replacement
      • Replace Commands and Case
      • Query Replace
    • Other Search-and-Loop Commands
  • Commands for Fixing Typos
    • Undo
    • Transposing Text
    • Case Conversion
    • Checking and Correcting Spelling
  • Keyboard Macros
    • Basic Use
    • The Keyboard Macro Ring
    • The Keyboard Macro Counter
    • Executing Macros with Variations
    • Naming and Saving Keyboard Macros
    • Editing a Keyboard Macro
    • Stepwise Editing a Keyboard Macro
  • File Handling
    • File Names
    • Visiting Files
    • Saving Files
      • Commands for Saving Files
      • Backup Files
        • Single or Numbered Backups
        • Automatic Deletion of Backups
        • Copying vs. Renaming
      • Customizing Saving of Files
      • Protection against Simultaneous Editing
      • Shadowing Files
      • Updating Time Stamps Automatically
    • Reverting a Buffer
    • Auto-Saving: Protection Against Disasters
      • Auto-Save Files
      • Controlling Auto-Saving
      • Recovering Data from Auto-Saves
    • File Name Aliases
    • File Directories
    • Comparing Files
    • Diff Mode
    • Miscellaneous File Operations
    • Accessing Compressed Files
    • File Archives
    • Remote Files
    • Quoted File Names
    • File Name Cache
    • Convenience Features for Finding Files
    • Filesets
  • Using Multiple Buffers
    • Creating and Selecting Buffers
    • Listing Existing Buffers
    • Miscellaneous Buffer Operations
    • Killing Buffers
    • Operating on Several Buffers
    • Indirect Buffers
    • Convenience Features and Customization of Buffer Handling
      • Making Buffer Names Unique
      • Fast minibuffer selection
      • Customizing Buffer Menus
  • Multiple Windows
    • Concepts of Emacs Windows
    • Splitting Windows
    • Using Other Windows
    • Displaying in Another Window
    • Deleting and Rearranging Windows
    • Displaying a Buffer in a Window
      • How display-buffer works
    • Convenience Features for Window Handling
  • Frames and Graphical Displays
    • Mouse Commands for Editing
    • Mouse Commands for Words and Lines
    • Following References with the Mouse
    • Mouse Clicks for Menus
    • Mode Line Mouse Commands
    • Creating Frames
    • Frame Commands
    • Fonts
    • Speedbar Frames
    • Multiple Displays
    • Frame Parameters
    • Scroll Bars
    • Drag and Drop
    • Menu Bars
    • Tool Bars
    • Using Dialog Boxes
    • Tooltips
    • Mouse Avoidance
    • Non-Window Terminals
    • Using a Mouse in Text Terminals
  • International Character Set Support
    • Introduction to International Character Sets
    • Language Environments
    • Input Methods
    • Selecting an Input Method
    • Coding Systems
    • Recognizing Coding Systems
    • Specifying a File's Coding System
    • Choosing Coding Systems for Output
    • Specifying a Coding System for File Text
    • Coding Systems for Interprocess Communication
    • Coding Systems for File Names
    • Coding Systems for Terminal I/O
    • Fontsets
    • Defining fontsets
    • Modifying Fontsets
    • Undisplayable Characters
    • Unibyte Editing Mode
    • Charsets
    • Bidirectional Editing
  • Major and Minor Modes
    • Major Modes
    • Minor Modes
    • Choosing File Modes
  • Indentation
    • Indentation Commands
    • Tab Stops
    • Tabs vs. Spaces
    • Convenience Features for Indentation
  • Commands for Human Languages
    • Words
    • Sentences
    • Paragraphs
    • Pages
    • Filling Text
      • Auto Fill Mode
      • Explicit Fill Commands
      • The Fill Prefix
      • Adaptive Filling
    • Case Conversion Commands
    • Text Mode
    • Outline Mode
      • Format of Outlines
      • Outline Motion Commands
      • Outline Visibility Commands
      • Viewing One Outline in Multiple Views
      • Folding Editing
    • Org Mode
      • Org as an organizer
      • Org as an authoring system
    • TeX{} Mode
      • TeX{} Editing Commands
      • LaTeX{} Editing Commands
      • TeX{} Printing Commands
      • TeX{} Mode Miscellany
    • SGML and HTML Modes
    • Nroff Mode
    • Enriched Text
      • Enriched Mode
      • Hard and Soft Newlines
      • Editing Format Information
      • Faces in Enriched Text
      • Indentation in Enriched Text
      • Justification in Enriched Text
      • Setting Other Text Properties
    • Editing Text-based Tables
      • What is a Text-based Table?
      • Creating a Table
      • Table Recognition
      • Commands for Table Cells
      • Cell Justification
      • Table Rows and Columns
      • Converting Between Plain Text and Tables
      • Table Miscellany
    • Two-Column Editing
  • Editing Programs
    • Major Modes for Programming Languages
    • Top-Level Definitions, or Defuns
      • Left Margin Convention
      • Moving by Defuns
      • Imenu
      • Which Function Mode
    • Indentation for Programs
      • Basic Program Indentation Commands
      • Indenting Several Lines
      • Customizing Lisp Indentation
      • Commands for C Indentation
      • Customizing C Indentation
    • Commands for Editing with Parentheses
      • Expressions with Balanced Parentheses
      • Moving in the Parenthesis Structure
      • Matching Parentheses
    • Manipulating Comments
      • Comment Commands
      • Multiple Lines of Comments
      • Options Controlling Comments
    • Documentation Lookup
      • Info Documentation Lookup
      • Man Page Lookup
      • Emacs Lisp Documentation Lookup
    • Hideshow minor mode
    • Completion for Symbol Names
    • MixedCase Words
    • Semantic
    • Other Features Useful for Editing Programs
    • C and Related Modes
      • C Mode Motion Commands
      • Electric C Characters
      • Hungry Delete Feature in C
      • Other Commands for C Mode
    • Asm Mode
  • Compiling and Testing Programs
    • Running Compilations under Emacs
    • Compilation Mode
    • Subshells for Compilation
    • Searching with Grep under Emacs
    • Finding Syntax Errors On The Fly
    • Running Debuggers Under Emacs
      • Starting GUD
      • Debugger Operation
      • Commands of GUD
      • GUD Customization
      • GDB Graphical Interface
        • GDB User Interface Layout
        • Source Buffers
        • Breakpoints Buffer
        • Threads Buffer
        • Stack Buffer
        • Other GDB Buffers
        • Watch Expressions
        • Multithreaded Debugging
    • Executing Lisp Expressions
    • Libraries of Lisp Code for Emacs
    • Evaluating Emacs Lisp Expressions
    • Lisp Interaction Buffers
    • Running an External Lisp
  • Maintaining Large Programs
    • Version Control
      • Introduction to Version Control
        • Understanding the problems it addresses
        • Supported Version Control Systems
        • Concepts of Version Control
        • Merge-based vs lock-based Version Control
        • Changeset-based vs File-based Version Control
        • Decentralized vs Centralized Repositories
        • Types of Log File
      • Version Control and the Mode Line
      • Basic Editing under Version Control
        • Basic Version Control with Merging
        • Basic Version Control with Locking
        • Advanced Control in C-x v v
      • Features of the Log Entry Buffer
      • Registering a File for Version Control
      • Examining And Comparing Old Revisions
      • VC Change Log
      • Undoing Version Control Actions
      • Ignore Version Control Files
      • VC Directory Mode
        • The VC Directory Buffer
        • VC Directory Commands
      • Version Control Branches
        • Switching between Branches
        • Pulling Changes into a Branch
        • Merging Branches
        • Creating New Branches
    • Change Logs
      • Change Log Commands
      • Format of ChangeLog
    • Tags Tables
      • Source File Tag Syntax
      • Creating Tags Tables
      • Etags Regexps
      • Selecting a Tags Table
      • Finding a Tag
      • Searching and Replacing with Tags Tables
      • Tags Table Inquiries
    • Emacs Development Environment
  • Abbrevs
    • Abbrev Concepts
    • Defining Abbrevs
    • Controlling Abbrev Expansion
    • Examining and Editing Abbrevs
    • Saving Abbrevs
    • Dynamic Abbrev Expansion
    • Customizing Dynamic Abbreviation
  • Dired, the Directory Editor
    • Entering Dired
    • Navigation in the Dired Buffer
    • Deleting Files with Dired
    • Flagging Many Files at Once
    • Visiting Files in Dired
    • Dired Marks vs. Flags
    • Operating on Files
    • Shell Commands in Dired
    • Transforming File Names in Dired
    • File Comparison with Dired
    • Subdirectories in Dired
    • Moving Over Subdirectories
    • Hiding Subdirectories
    • Updating the Dired Buffer
    • Dired and find
    • Editing the Dired Buffer
    • Viewing Image Thumbnails in Dired
    • Other Dired Features
  • The Calendar and the Diary
    • Movement in the Calendar
      • Motion by Standard Lengths of Time
      • Beginning or End of Week, Month or Year
      • Specified Dates
    • Scrolling in the Calendar
    • Counting Days
    • Miscellaneous Calendar Commands
    • Writing Calendar Files
    • Holidays
    • Times of Sunrise and Sunset
    • Phases of the Moon
    • Conversion To and From Other Calendars
      • Supported Calendar Systems
      • Converting To Other Calendars
      • Converting From Other Calendars
    • The Diary
      • Displaying the Diary
      • The Diary File
      • Date Formats
      • Commands to Add to the Diary
      • Special Diary Entries
    • Appointments
    • Importing and Exporting Diary Entries
    • Daylight Saving Time
    • Summing Time Intervals
  • Sending Mail
    • The Format of the Mail Buffer
    • Mail Header Fields
    • Mail Aliases
    • Mail Commands
      • Mail Sending
      • Mail Header Editing
      • Citing Mail
      • Mail Miscellany
    • Mail Signature
    • Mail Amusements
    • Mail-Composition Methods
  • Reading Mail with Rmail
    • Basic Concepts of Rmail
    • Scrolling Within a Message
    • Moving Among Messages
    • Deleting Messages
    • Rmail Files and Inboxes
    • Multiple Rmail Files
    • Copying Messages Out to Files
    • Labels
    • Rmail Attributes
    • Sending Replies
    • Summaries
      • Making Summaries
      • Editing in Summaries
    • Sorting the Rmail File
    • Display of Messages
    • Rmail and Coding Systems
    • Editing Within a Message
    • Digest Messages
    • Reading Rot13 Messages
    • movemail program
    • Retrieving Mail from Remote Mailboxes
    • Retrieving Mail from Local Mailboxes in Various Formats
  • Miscellaneous Commands
    • Gnus
      • Gnus Buffers
      • When Gnus Starts Up
      • Using the Gnus Group Buffer
      • Using the Gnus Summary Buffer
    • Document Viewing
      • DocView Navigation
      • DocView Searching
      • DocView Slicing
      • DocView Conversion
    • Web Browsing with EWW
    • Running Shell Commands from Emacs
      • Single Shell Commands
      • Interactive Subshell
      • Shell Mode
      • Shell Prompts
      • Shell Command History
        • Shell History Ring
        • Shell History Copying
        • Shell History References
      • Directory Tracking
      • Shell Mode Options
      • Emacs Terminal Emulator
      • Term Mode
      • Remote Host Shell
      • Serial Terminal
    • Using Emacs as a Server
      • Invoking emacsclient
      • emacsclient Options
    • Printing Hard Copies
      • PostScript Hardcopy
      • Variables for PostScript Hardcopy
      • Printing Package
    • Sorting Text
    • Editing Binary Files
    • Saving Emacs Sessions
    • Recursive Editing Levels
    • Hyperlinking and Navigation Features
      • Following URLs
      • Activating URLs
      • Finding Files and URLs at Point
    • Other Amusements
  • Emacs Lisp Packages
    • The Package Menu Buffer
    • Package Installation
    • Package Files and Directory Layout
  • Customization
    • Easy Customization Interface
      • Customization Groups
      • Browsing and Searching for Settings
      • Changing a Variable
      • Saving Customizations
      • Customizing Faces
      • Customizing Specific Items
      • Custom Themes
      • Creating Custom Themes
    • Variables
      • Examining and Setting Variables
      • Hooks
      • Local Variables
      • Local Variables in Files
        • Specifying File Variables
        • Safety of File Variables
      • Per-Directory Local Variables
    • Customizing Key Bindings
      • Keymaps
      • Prefix Keymaps
      • Local Keymaps
      • Minibuffer Keymaps
      • Changing Key Bindings Interactively
      • Rebinding Keys in Your Init File
      • Modifier Keys
      • Rebinding Function Keys
      • Named ASCII Control Characters
      • Rebinding Mouse Buttons
      • Disabling Commands
    • The Emacs Initialization File
      • Init File Syntax
      • Init File Examples
      • Terminal-specific Initialization
      • How Emacs Finds Your Init File
      • Non-ASCII Characters in Init Files
  • Dealing with Common Problems
    • Quitting and Aborting
    • Dealing with Emacs Trouble
      • If DEL Fails to Delete
      • Recursive Editing Levels
      • Garbage on the Screen
      • Garbage in the Text
      • Running out of Memory
      • When Emacs Crashes
      • Recovery After a Crash
      • Emergency Escape
    • Reporting Bugs
      • Reading Existing Bug Reports and Known Problems
      • When Is There a Bug
      • Understanding Bug Reporting
      • Checklist for Bug Reports
      • Sending Patches for GNU Emacs
    • Contributing to Emacs Development
    • How To Get Help with GNU Emacs
  • GNU GENERAL PUBLIC LICENSE
  • GNU Free Documentation License
  • Command Line Arguments for Emacs Invocation
    • Action Arguments
    • Initial Options
    • Command Argument Example
    • Environment Variables
      • General Variables
      • Miscellaneous Variables
      • The MS-Windows System Registry
    • Specifying the Display Name
    • Font Specification Options
    • Window Color Options
    • Options for Window Size and Position
    • Internal and External Borders
    • Frame Titles
    • Icons
    • Other Display Options
  • X Options and Resources
    • X Resources
    • Table of X Resources for Emacs
    • GTK resources
      • GTK Resource Basics
      • GTK widget names
      • GTK Widget Names in Emacs
      • GTK styles
  • Emacs 23 Antinews
  • Emacs and Mac OS / GNUstep
    • Basic Emacs usage under Mac OS and GNUstep
      • Grabbing environment variables
    • Mac / GNUstep Customization
      • Font and Color Panels
    • Windowing System Events under Mac OS / GNUstep
    • GNUstep Support
  • Emacs and Microsoft Windows/MS-DOS
    • How to Start Emacs on MS-Windows
    • Text Files and Binary Files
    • File Names on MS-Windows
    • Emulation of ls on MS-Windows
    • HOME and Startup Directories on MS-Windows
    • Keyboard Usage on MS-Windows
    • Mouse Usage on MS-Windows
    • Subprocesses on Windows 9X/ME and Windows NT/2K/XP
    • Printing and MS-Windows
    • Specifying Fonts on MS-Windows
    • Miscellaneous Windows-specific features
  • The GNU Manifesto
    • What's GNU Gnu's Not Unix!
    • Why I Must Write GNU
    • Why GNU Will Be Compatible with Unix
    • How GNU Will Be Available
    • Why Many Other Programmers Want to Help
    • How You Can Contribute
    • Why All Computer Users Will Benefit
    • Some Easily Rebutted Objections to GNU's Goals
  • Glossary
  • Key (Character) Index
  • Command and Function Index
  • Variable Index
  • Concept Index
    No review for this book yet, be the first to review.
      No comment for this book yet, be the first to comment
      You May Also Like
      Also Available On
      App store smallGoogle play small
      Categories
      Curated Lists
      • Pattern Recognition and Machine Learning (Information Science and Statistics)
        by Christopher M. Bishop
        Data mining
        by I. H. Witten
        The Elements of Statistical Learning: Data Mining, Inference, and Prediction
        by Various
        See more...
      • CK-12 Chemistry
        by Various
        Concept Development Studies in Chemistry
        by John Hutchinson
        An Introduction to Chemistry - Atoms First
        by Mark Bishop
        See more...
      • Microsoft Word - How to Use Advanced Algebra II.doc
        by Jonathan Emmons
        Advanced Algebra II: Activities and Homework
        by Kenny Felder
        de2de
        by
        See more...
      • The Sun Who Lost His Way
        by
        Tania is a Detective
        by Kanika G
        Firenze_s-Light
        by
        See more...
      • Java 3D Programming
        by Daniel Selman
        The Java EE 6 Tutorial
        by Oracle Corporation
        JavaKid811
        by
        See more...