About six months ago I switched to using TextMate, a text editor with a clean and well designed interface that hides a great deal of power, replacing both BBEdit and vim. I felt like a baby duck that had been ripped away from its mother, but I was determined to switch to a single editor. I have since become familiar with the power of TextMate and it's extensions. Getting a copy of "TextMate - Power Editing for the Mac" (TPEftM) made me feel like I'd gone from baby duck to Leo DiCaprio, dating a supermodel.
TextMate, like many Mac applications, seems like a simple, easy to use application but underneath the hood it has four types of additions to customize the editing experience - snippets, macros, commands and language grammars - and a method of tying them together into a mode called a bundle. Grammars control syntax colouring, indentation, text folding among other features. TextMate also seems to have been designed from day one to integrate well with Mac OS X and its Unix underpinnings. First, it includes a great command line tool, "mate", that has a couple of neat tricks like automatically creating a project when passed a list of files or a directory name, and a GUI that can easily run shell commands and scripts. TextMate can't give me a list of unique lines in a file but it is trivially easy to pass a selection to 'uniq' and have the results replace the selection, for example.
I don't want to spend half this review describing TextMate, suffice to say that it is an incredibly powerful and conformable editor. The extended features are all well covered by TPEftM.
Taken as a whole this book is a marvelous second volume to the TextMate manual. Though the first section summarizes information covered in the TextMate manual the rest of the book takes a huge leap forward and gives you details on how to get the best from one of the finest text editors it has been my pleasure to use. If you want a well written manual for the advanced and malleable parts of TextMate then this book is pretty good, the details it is missing, such as the plugin API, are covered by the manual and where the manual is thin on detail this book fleshes it out nicely.
It's broken up into three sections, "Editing" which contains three chapters (and the introduction) covering the basics of creating projects and files, moving around, selecting text and find and replace (a nice little regular expresson engine), "Automations" which contains five chapters covering the built in bundles and how to write your own snippets, macros and commands and "Languages" which covers the development of language grammars, preferences and themes.
This is a useful book. It's not a classic, it won't revolutionize your thinking about anything, nor will you learn new coding techniques. It will, however, reward any effort you make towards working through it with a much improved editing experience.
TPEftM is also a hard book, reading it can be almost a chore with the need to digest and try out some fairly complicated topics. TPEftM isn't a great learning aide, it's more a technical manual than a textbook. I wish I could blame the writing but the book is well written and edited, it just has a technical style. At times I thought a lighter touch in the writing would have been good to allay some of the density. It also seems light on examples, while the discussion of each topic is well constructed and understandable a little more attention to the number, length and content of examples would have improved the book's usability.
It is best to give TPEftM a quick read and then use it as a guide to doing some customizing of your TextMate environment. The chapter that I remember well is the one on snippets since I've used the book to guide me in writing several. In fact my first foray into 'programming' TextMate was to alter some snippets in the built-in automation.
The O'Reilly page for the book just contains a book description and some marketing information. For more useful information you can go to the Pragmatic Programmer's page for the book which has a link to download the code, an errata list, a table of contents and links to two excerpts from the book. You can also buy the PDF version or both the PDF and paper versions on the Pragmatic site.
In conclusion this is a great book if you are currently toying with using TextMate as your Mac OS X editor. It is a good book and second manual if you are already a heavy TextMate user and want to know how to get the best out of the programmability of TextMate. So all TextMate users should consider this book a must buy. This is one hunk of extra documentation for TextMate, at only 182 pages it isn't a large book but it is full of information. For your money you'll have an immediately useful book that will take you months to digest.