I wish I had reviewed this book when it first came out, over one year ago. Alas, those were busier times and this piece of work deserved more than a short post hastily written between seminars and group meetings. Fortunately, Mickey has unknowingly gifted me a second opportunity, by making it half-off for its 1 year anniversary, and you have until tomorrow to grab the discount.
When it comes to technical reading, it’s rare to find a book that is both packed with content and high in quality. Anyone who’s ever written a long document will tell you how difficult it is to maintain a consistent level of quality throughout the pages. Somewhere around the 100th or so page the complexity spirals out of control and you spend more time organizing the chapters (to avoid repetition or maintain the ideal order) than actually writing anything.
And yet, somehow, Mastering Emacs masterfully delivers on both areas, clearly showing itself as a labor of love, and a whole lotta sweat and hard work. The book’s beautiful cover smoothly gives way to an interior that is consistently easy on the eyes and a pleasure to read. Most importantly, all of this eye-candy is made all the sweeter by the healthy dose of knowledge that lies underneath.
If you’re a relative newcomer to Emacs (and I say "relative newcomer" in the broadest sense), this book will be your initiation into the cult. It starts with an entire chapter on "The Way of Emacs", before it ever mentions keybinds or commands, which is exactly how I’d start a book as well. Once that is done, it goes on to teach you hundreds of pages of Emacs fundamentals.
If I had to be nit-picky, it’s hard to say whether these first few chapters are too long or just about right. When it comes to introducing new concepts, the ideal speed varies largely from reader to reader anyway. I also disagree with recommending starter kits, but that’s about all the criticism I can come up with for a couple hundred of pages.
Given all of the above, it’s very easy to recommend Mastering Emacs to Emacs beginners. They are, after all, the target audience of this book, and they’ll probably still be digesting its lessons 6 months from now.
But what about intermediate to advanced users? Despite not being the target audience, it’s far from a worthless experience for them. The thing to understand is that whenever a guru like Mickey puts down so many thoughts into words, everyone is bound to learn something.
In particular, chapters 4, 5, and 6, contain a large collection of fairly advanced tips. These are actually quite short, to the point that I was frequently left wishing for more (which is not necessarily a bad thing), but they’re usually just enough to get you started with the feature. Any intermediate user is sure to not know many of them, and even advanced users might benefit from a few. For instance, chapter 4 finally convinced me to try Helm, and chapter 6 made me wonder why I never use Emacs to read log files.
Whether or not a few new ideas wrapped in a beautiful package is worth the price being asked is entirely up to you (and, I suppose, up to how the price translates in your currency). All I can say is that I’m happy for this book, and I’m secretly wishing for a second volume.