Some talk some of vi and emacs, and some of skEdit. But the majority of serious Mac text-junkies strongly favour BBEdit as their weapon of choice for HTML, C++, Perl, PHP Python or Ruby editing. As the de facto standard, even among PC users, it’s often held up as a one of the best windowing text editors on any platform. So no pressure, then…
There’s no way that a new product such as TextMate can hope to compete head-on with something as entrenched as BBEdit. MacroMates has tried to spot features that BBEdit doesn’t have or which might be implemented more elegantly.
BBEdit doesn’t fold text, something emacs has done for 15 years plus. TextMate is a folding editor. Forget scrolling up and down or using split windows; a folding editor hides parts of the code in the same way as Word’s outliner – figuring out which bits to hide, based on the code’s structure. TextMate breaks down documents by HTML tag, by function definition, for loop, curly bracket and so forth, and then adds little reveal arrows in the left margin that show or hide the contents at a click. Until used in anger, it’s difficult to grasp just how much easier it makes holding an entire document in your head.
TextMate has also improved on BBEdit’s new document drawer. TextMate can group files together as projects. Within a project window, an OS X drawer shows the hierarchical Finder view of the files. You can add files, rename and rearrange them, and the changes are reflected in the Finder. Selecting a text file opens it in the project window, and adds it as a Safari-like tab at the top, and you can switch between currently open files using the tabs.
For faster editing, TextMate has new twists on macros, glossaries (here called snippets), and external commands. It isn’t AppleScriptable, but you can record and replay editing tasks as macros. You can also define snippets. Type a keyword, press Tab, and previously defined replacement text is inserted. The twist is that this can include include placeholders that you can tab between once inserted: much easier to customize on the fly. Unix hacks can run commands easily, from the text window à la SMILE, or via customizable commands. But this has been used to ship what sometimes feels like an unfinished product: there’s no built-in printing, you need to use a Unix lpr command. Worse, there are no preferences – meaning no chance of tweaking TextMate’s otherwise impressive editing behaviours.
TextMate shows great potential, and provides novel ways of solving old problems. But as you’d expect from a version 1.0.1 TextMate lacks maturity. Code heads: this geekier-than-thou editor is just up your street. Everyone else: keep an eye out for 1.1, if only to see how long it takes include preferences and standard print functionality.