The authors seem to know Emacs well, and they have done a good job of selecting the features to present to new users.
Authors: Jesper Pederson, Jari Aalto, Charles Curley, Eric Ludlum, Larry Ayers and Jeff Koch
Price: $24.99 US
Reviewer: Ralph Krause
I have been using Linux for about a year now, and in this time, I have used Vim for text editing. I had tried Emacs a few times, but found it difficult to learn. I decided to try learning Emacs again with help from SAMS' Teach Yourself Emacs in 24 Hours.
While I can say I learned enough from the book to use Emacs (I'm using it to write this review), I would hesitate to recommend this book to anyone else. The biggest problem I found was the sheer number of typos it contained. In addition to that, the accompanying CD-ROM is not well-organized, either.
Let me quickly say that the authors seem to know Emacs well, and they have done a good job of selecting the features to present to new users. The examples they give are generally clear and illuminating. They also highlight the differences between Emacs and XEmacs in the examples, so the book is useful no matter which version of Emacs you are using.
If you do purchase this book, the first thing you should do is go to Mr. Pedersen's web site at www.imada.ou.dk/~blackie/emacs and print out the book's errata pages. Unfortunately, even with these, I still couldn't get some of the book's examples to work, such as running the etags command on HTML files.
In addition to the printed errors, I also ran into problems with the accompanying CD. The first was that I couldn't access it on my Linux box unless I was logged in as root. Doing work as root is not a good idea in general, and in some instances, at work for example, it may not even be possible. When I did access the CD, I found that its directory structure left something to be desired.
The CD's root directory contains only two entries: opt and usr. The opt directory contains the Windows and Linux versions of Emacs, while the usr directory contains Emacs Lisp files and add-ons. This layout is a bit confusing, and there are no index or README files to indicate what is where.
For Windows users who don't already have Emacs loaded, the second chapter covers installing and configuring Emacs under Windows. I found the book's suggested directory layout confusing, so I didn't attempt to create it on my Windows 98 system. Instead, I just created an .emacs file in the root directory of my C: drive.
The book implies that the CD will automatically start installing Emacs when inserted in a Windows machine, but it doesn't appear to be set up for this. I ended up installing Emacs using the SETUP.EXE program, and it ran correctly after installation. The CD also contains Zip files if you want to install Emacs manually.
Though the installation instructions are somewhat unclear, the book did provide clear instructions on setting up printing and associating files with Emacs under Windows.
The rest of the book is well-arranged, starting with the basics of Emacs and leading up to its advanced features. I found that each chapter presented enough information to increase a new user's knowledge without drowning them. Examples are given for almost every topic brought up. Each chapter ends with a summary of the material presented followed by a short Q&A section. Finally, a few exercises are given for readers to attempt on their own.
The early chapters cover basic editing, working with buffers and searching. An explanation of the Emacs help and configuration system is in the middle of the book. Next, the special editing modes for C, Java and LaTeX files are discussed. There is a chapter covering the use of Emacs' version-control functions, along with compiling and debugging programs. There are two chapters on Gnus (a news and mail reader that runs under Emacs). Beginning Emacs Lisp, an introduction to key bindings, and how to use add-ons comprise the final chapters of the book.
The book makes several references to add-ons included on the CD, especially the sams-lib.el file which contains a number of specialty functions created by the authors. Some attempt is made to provide brief descriptions and installation instructions for the add-ons, but only a few from the CD are actually covered in the book.
I am amazed at just how powerful Emacs is, and this book does a good job of introducing a new user to the sheer number of features available in it. The authors also did a very good job of choosing the right amount of material to allow someone to use Emacs without overloading them. I wish they had spent a little more time on such things as regular expressions and the Windows installation directions, though.
Unfortunately, the large number of errors contained in the text along with the confusing layout of the accompanying CD almost keep this book from being usable by its target audience: beginners. I would expect that the next release will have corrected these problems, and then it will be an invaluable addition to the beginning Emacs user's bookshelf.