|
|
|
Copyright
|
|
|
|
Preface
|
|
|
|
|
Why Read This Book?
|
|
|
|
|
Which Emacs Is Which?
|
|
|
|
|
What's New in This Edition?
|
|
|
|
|
GNU Emacs and the Free Software Foundation
|
|
|
|
|
An Approach to Learning Emacs
|
|
|
|
|
What We Haven't Included
|
|
|
|
|
The Meta Key
|
|
|
|
|
Conventions Used in This Book
|
|
|
|
|
How to Contact Us
|
|
|
|
|
Acknowledgments
|
|
|
|
Chapter 1. Emacs Basics
|
|
|
|
|
Section 1.1. Introducing Emacs!
|
|
|
|
|
Section 1.2. Understanding Files and Buffers
|
|
|
|
|
Section 1.3. A Word About Modes
|
|
|
|
|
Section 1.4. Starting Emacs
|
|
|
|
|
Section 1.5. About the Emacs Display
|
|
|
|
|
Section 1.6. Emacs Commands
|
|
|
|
|
Section 1.7. Opening a File
|
|
|
|
|
Section 1.8. Saving Files
|
|
|
|
|
Section 1.9. Leaving Emacs
|
|
|
|
|
Section 1.10. Getting Help
|
|
|
|
|
Section 1.11. Summary
|
|
|
|
Chapter 2. Editing
|
|
|
|
|
Section 2.1. Moving the Cursor
|
|
|
|
|
Section 2.2. Deleting Text
|
|
|
|
|
Section 2.3. Marking Text to Delete, Move, or Copy
|
|
|
|
|
Section 2.4. Emacs and the Clipboard
|
|
|
|
|
Section 2.5. Editing Tricks and Shortcuts
|
|
|
|
|
Section 2.6. Canceling Commands and Undoing Changes
|
|
|
|
|
Section 2.7. Making Emacs Work the Way You Want
|
|
|
|
Chapter 3. Search and Replace
|
|
|
|
|
Section 3.1. Different Kinds of Searches
|
|
|
|
|
Section 3.2. Search and Replace
|
|
|
|
|
Section 3.3. Checking Spelling Using Ispell
|
|
|
|
|
Section 3.4. Word Abbreviations
|
|
|
|
Chapter 4. Using Buffers, Windows, and Frames
|
|
|
|
|
Section 4.1. Understanding Buffers, Windows, and Frames
|
|
|
|
|
Section 4.2. Working with Multiple Buffers
|
|
|
|
|
Section 4.3. Working with Windows
|
|
|
|
|
Section 4.4. Working with Frames
|
|
|
|
|
Section 4.5. More About Buffers
|
|
|
|
|
Section 4.6. More About Windows
|
|
|
|
|
Section 4.7. Holding Your Place with Bookmarks
|
|
|
|
Chapter 5. Emacs as a Work Environment
|
|
|
|
|
Section 5.1. Executing Commands in Shell Buffers
|
|
|
|
|
Section 5.2. Using Dired, the Directory Editor
|
|
|
|
|
Section 5.3. Printing from Emacs
|
|
|
|
|
Section 5.4. Reading Manpages in Emacs
|
|
|
|
|
Section 5.5. Using Time Management Tools
|
|
|
|
Chapter 6. Writing Macros
|
|
|
|
|
Section 6.1. Defining a Macro
|
|
|
|
|
Section 6.2. Tips for Creating Good Macros
|
|
|
|
|
Section 6.3. A More Complicated Macro Example
|
|
|
|
|
Section 6.4. Editing a Macro
|
|
|
|
|
Section 6.5. The Macro Ring
|
|
|
|
|
Section 6.6. Binding Your Macro to a Key
|
|
|
|
|
Section 6.7. Naming, Saving, and Executing Your Macros
|
|
|
|
|
Section 6.8. Building More Complicated Macros
|
|
|
|
|
Section 6.9. Executing Macros on a Region
|
|
|
|
|
Section 6.10. Beyond Macros
|
|
|
|
Chapter 7. Simple Text Formatting and Specialized Editing
|
|
|
|
|
Section 7.1. Using Tabs
|
|
|
|
|
Section 7.2. Indenting Text
|
|
|
|
|
Section 7.3. Centering Text
|
|
|
|
|
Section 7.4. Using Outline Mode
|
|
|
|
|
Section 7.5. Rectangle Editing
|
|
|
|
|
Section 7.6. Making Simple Drawings
|
|
|
|
Chapter 8. Markup Language Support
|
|
|
|
|
Section 8.1. Comments
|
|
|
|
|
Section 8.2. Font-Lock Mode
|
|
|
|
|
Section 8.3. Writing HTML
|
|
|
|
|
Section 8.4. Writing XML
|
|
|
|
|
Section 8.5. Marking up Text for TEX and LATEX
|
|
|
|
Chapter 9. Computer Language Support
|
|
|
|
|
Section 9.1. Emacs as an IDE
|
|
|
|
|
Section 9.2. Writing Code
|
|
|
|
|
Section 9.3. C and C++ Support
|
|
|
|
|
Section 9.4. Java Support
|
|
|
|
|
Section 9.5. The Java Development Environment for Emacs (JDEE)
|
|
|
|
|
Section 9.6. Perl Support
|
|
|
|
|
Section 9.7. SQL Support
|
|
|
|
|
Section 9.8. The Lisp Modes
|
|
|
|
Chapter 10. Customizing Emacs
|
|
|
|
|
Section 10.1. Using Custom
|
|
|
|
|
Section 10.2. Modifying the .emacs File Directly
|
|
|
|
|
Section 10.3. Modifying Fonts and Colors
|
|
|
|
|
Section 10.4. Customizing Your Key Bindings
|
|
|
|
|
Section 10.5. Setting Emacs Variables
|
|
|
|
|
Section 10.6. Finding Emacs Lisp Packages
|
|
|
|
|
Section 10.7. Starting Modes via Auto-Mode Customization
|
|
|
|
|
Section 10.8. Making Emacs Work the Way You Think It Should
|
|
|
|
Chapter 11. Emacs Lisp Programming
|
|
|
|
|
Section 11.1. Introduction to Lisp
|
|
|
|
|
Section 11.2. Lisp Primitive Functions
|
|
|
|
|
Section 11.3. Useful Built-in Emacs Functions
|
|
|
|
|
Section 11.4. Building an Automatic Template System
|
|
|
|
|
Section 11.5. Programming a Major Mode
|
|
|
|
|
Section 11.6. Customizing Existing Modes
|
|
|
|
|
Section 11.7. Building Your Own Lisp Library
|
|
|
|
Chapter 12. Version Control
|
|
|
|
|
Section 12.1. The Uses of Version Control
|
|
|
|
|
Section 12.2. Version Control Concepts
|
|
|
|
|
Section 12.3. How VC Helps with Basic Operations
|
|
|
|
|
Section 12.4. Editing Comment Buffers
|
|
|
|
|
Section 12.5. VC Command Summary
|
|
|
|
|
Section 12.6. VC Mode Indicators
|
|
|
|
|
Section 12.7. Which Version Control System?
|
|
|
|
|
Section 12.8. Individual VC Commands
|
|
|
|
|
Section 12.9. Customizing VC
|
|
|
|
|
Section 12.10. Extending VC
|
|
|
|
|
Section 12.11. What VC Is Not
|
|
|
|
|
Section 12.12. Using VC Effectively
|
|
|
|
|
Section 12.13. Comparing with Ediff
|
|
|
|
Chapter 13. Platform-Specific Considerations
|
|
|
|
|
Section 13.1. Emacs and Unix
|
|
|
|
|
Section 13.2. Emacs and Mac OS X
|
|
|
|
|
Section 13.3. Emacs and Windows
|
|
|
|
Chapter 14. The Help System
|
|
|
|
|
Section 14.1. Using the Tutorial
|
|
|
|
|
Section 14.2. Help Commands
|
|
|
|
|
Section 14.3. Help with Complex Emacs Commands
|
|
|
|
|
Section 14.4. Navigating Emacs Documentation
|
|
|
|
|
Section 14.5. Completion
|
|
|
|
Appendix A. Emacs Variables
|
|
|
|
Appendix B. Emacs Lisp Packages
|
|
|
|
Appendix C. Bugs and Bug Fixes
|
|
|
|
Appendix D. Online Resources
|
|
|
|
Appendix E. Quick Reference
|
|
|
|
Colophon
|
|
|
|
Index
|