Book Review: Learning GNU Emacs 3rd Edition
O'Reilly always take care that current publications are of contemporary interest and fill a well perceived gap in the current information market. Thus the release of a much updated third edition of a classic work which last saw revision over ten years ago, and was first published nearly seventeen years ago is something of a momentous occasion, perhaps signaling a new lease of life for this popular and incredibly versatile text-based environment.
![]()
GNU Emacs, one of a large family of Emacs implementations, is quite difficult to pin down, offering a totally integrated and readily configurable environment for all manner of common coding, text-processing and computing tasks. GNU Emacs can be coaxed into performing obscure functionalities, such as iterating over Conway's game of life, or offering up a decent game of pong, but the most common and increasingly popular use is as coding IDE (Integrated Development Environment) with decent shell and file access in reserve. Integration means that GNU Emacs users very rarely leave that environment, and hardy coders go so far as to wittily maintain that Emacs is their operating system, with Linux solely as device driver.
Though not approaching such levels of Emacs evangelism, Learning GNU Emacs, with a hefty emphasis on integration, can certainly assist new users in seeing the GNU Emacs light. New chapters and expanded material push the integration boat right out, with excellent material covering platform specific considerations and integration with version control systems such as Subversion and CVS. Other changes over the previous edition may not be quite so popular amongst hardcore Emacs users, with a greater emphasis placed on Java development under the JDEE, and more focus placed on the GUI elements of Emacs under X. Indeed, perhaps the only major problem with this edition is the overuse of rather dull GUI screenshots.
Given the sheer flexibility of GNU Emacs, new users may be put off by the sheer amount of new material, concepts and keystrokes they have to master, but the authors of this excellent, not to say essential, guide rightfully maintain that mastering any editor basically involves learning finger habits and Emacs is no different. A gradual approach to the learning curve is suggested, and clear guidance is given as to which chapters suit certain types of user. A handy well produced reference card for common keystrokes is included, which should ease matters for totally new users.
Learning GNU Emacs is anything if not thorough, though thankfully this superb edition focuses on the core of Emacs, choosing to leave out both the rather deprecated use of Emacs to access the net, and amusements. And though the authors modestly argue that advanced Lisp programming, used to customise and expand Emacs, is also not covered in this volume, the coding chapter here is certainly sufficiently advanced for most new users, with an excellent example-driven tutorial walking through the building of an automatic template system proving far more useful than any number of dry syntactical rundowns.
Learning GNU Emacs covers all the core bases for the absolute beginners with clear keystroke notation, decent examples where necessary and good pointers to sources of help, documentation or further configuration samples. Concepts such as modes, buffers, frames and macros are well covered, and customisation duly recieves good attention. More task-based chapters deal with use of Emacs as IDE or as markup tool for TEX or XML. Learning GNU Emacs is at all times intelligent and well written, offering concise, quality information which should prove essential and invigorating reading for those seeking to master this versatile tool.
![]()
Authors: Debra Cameron et al.
Publisher: O'Reilly
ISBN: 0596006489
Review by Martin Howse

