Synopses & Reviews
Yes, it is possible to be all things to all people, if you're talking about the Emacs editor. As a user, you can make any kind of customization you want, from choosing the keystrokes that invoke your favorite commands to creating a whole new work environment that looks like nothing ever developed before. It's all in Emacs Lisp -- and in this short but fast-paced book.GNU Emacs is more than an editor; it's a programming environment, a communications package, and many other things. To provide such a broad range of functions, it offers a full version of the Lisp programming language -- something much more powerful than the little macro languages provided in other editors (including older versions of Emacs). GNU Emacs is a framework in which you can create whole new kinds of editors or just alter aspects of the many functions it already provides.In this book, Bob Glickstein delves deep into the features that permit far-reaching Emacs customizations. He teaches you the Lisp language and discusses Emacs topics (such as syntax tables and macro templates) in easy-to-digest portions. Examples progress in complexity from simple customizations to extensive major modes.You will learn how to write interactive commands, use hooks and advice, perform error recovery, manipulate windows, buffers, and keymaps, exploit and alter Emacs's main loop, and more. Each topic is explored through realistic examples and a series of successive refinements that illustrate not only the Emacs Lisp language, but the development process as well, making learning pleasant and natural.
Synopsis
This book introduces Emacs Lisp and tells you how to make the editor do whatever you want, whether it's altering the way text scrolls or inventing a whole new "major mode". Topics progress from simple to complex, from lists, symbols, and keyboard commands to syntax tables, macro templates, and error recovery.
Synopsis
Yes, it is possible to be all things to all people, if you're talkingabout the Emacs editor.As a user, you can make any kind of customizationyou want, from choosing the keystrokes that invoke your favorite commandsto creating a whole new work environment that looks like nothing everdeveloped before.GNU Emacs offers a full version of the Lisp programming language, allowingyou to create whole new editors or just alter aspects of the many functionsit already provides.In this book, Bob Glickstein delves deep into the features that permit far-reaching Emacs customizations.He teaches you the Lisp language and discusses Emacs topics (such as syntax tables and macro templates) ineasy-to-digest portions.The realistic examples, each successively refineda number of times, illustrate not only Emacs Lisp, but the developmentprocess as well.
About the Author
Bob Glickstein's dog, Alex, says Bob is generous with treats and takes her to the park a lot. Alex remembers the time in the mid- to late 1980s when Bob was first exposed to Lisp at Carnegie Mellon University and created the Lisp-like filtering language FLAMES for the Andrew Message System. She is dimly aware of the way in which Bob's familiarity with Lisp helped him to overcome his initial dislike of Emacs, with the result that he is now an ardent Emacs advocate. Nowadays, she enjoys playing on the beaches and mountains of Northern California while Bob devises new ways to use Emacs for writing email software at Zanshin, Inc.
Table of Contents
Preface; What Is Emacs?; Conventions Used in This Book; Organization of This Book; Obtaining the Example Programs; Acknowledgments; Chapter 1: Customizing Emacs; 1.1 Backspace and Delete; 1.2 Lisp; 1.3 Keys and Strings; 1.4 To What Is C-h Bound?; 1.5 To What Should C-h Be Bound?; 1.6 Evaluating Lisp Expressions; 1.7 Apropos; Chapter 2: Simple New Commands; 2.1 Traversing Windows; 2.2 Line-at-a-Time Scrolling; 2.3 Other Cursor and Text Motion Commands; 2.4 Clobbering Symbolic Links; 2.5 Advised Buffer Switching; 2.6 Addendum: Raw Prefix Argument; Chapter 3: Cooperating Commands; 3.1 The Symptom; 3.2 A Cure; 3.3 Generalizing the Solution; Chapter 4: Searching and Modifying Buffers; 4.1 Inserting the Current Time; 4.2 Writestamps; 4.3 Modifystamps; Chapter 5: Lisp Files; 5.1 Creating a Lisp File; 5.2 Loading the File; 5.3 Compiling the File; 5.4 eval-after-load; 5.5 Local Variables Lists; 5.6 Addendum: Security Consideration; Chapter 6: Lists; 6.1 The Simple View of Lists; 6.2 List Details; 6.3 Recursive List Functions; 6.4 Iterative List Functions; 6.5 Other Useful List Functions; 6.6 Destructive List Operations; 6.7 Circular Lists?!; Chapter 7: Minor Mode; 7.1 Paragraph Filling; 7.2 Modes; 7.3 Defining a Minor Mode; 7.4 Mode Meat; Chapter 8: Evaluation and Error Recovery; 8.1 limited-save-excursion; 8.2 eval; 8.3 Macro Functions; 8.4 Backquote and Unquote; 8.5 Return Value; 8.6 Failing Gracefully; 8.7 Point Marker; Chapter 9: A Major Mode; 9.1 My Quips File; 9.2 Major Mode Skeleton; 9.3 Changing the Definition of a Paragraph; 9.4 Quip Commands; 9.5 Keymaps; 9.6 Narrowing; 9.7 Derived Modes; Chapter 10: A Comprehensive Example; 10.1 New York Times Rules; 10.2 Data Representation; 10.3 User Interface; 10.4 Setting Up the Mode; 10.5 Tracking Unauthorized Changes; 10.6 Parsing the Buffer; 10.7 Word Finder; 10.8 Last Word; Conclusion; Lisp Quick Reference; Basics; Data Types; Control Structures; Code Objects; Debugging and Profiling; Evaluation; The Debugger; Edebug; The Profiler; Sharing Your Code; Preparing Source Files; Documentation; Copyright; Posting; Obtaining and Building Emacs; Availability of Packages; Unpacking, Building, and Installing Emacs; Colophon;