TextMate 1.0.1 Review
A Checkmate for TextMate?
08 October 2004 Matt Willmore Skip to comments
11 Comments
(
Closed)
At MacZealots.com we love great technology. Whether it's a mature product that just keeps getting better, or an upcoming tool that promises to change the way you think about getting stuff done, we really go for tools that stand out above the rest. Needless to say, we were more than curious when we starting seeing MacroMates' upcoming TextMate text editor mentioned more and more often each day. Usually this much buzz is reserved for new gear from Apple. Upon TextMate's release this Tuesday evening, we were eager to get our hands on it, and MacroMates was eager for us to review it for them.TextMate is the latest text editor on the block that hopes to knock BBEdit off its throne as THE Mac OS text editor. Find out if Macromates initial release lives up to the hype as Matt Willmore tests it out.
From the start, however, we were cautiously optimistic about the possible success of TextMate. With the market for text editors on OS X dominated by BBEdit, and with other apps like SubEthaEdit commanding a devoted cult following, why would anyone want to come into the game so late? Why would anyone, even relatively satisfied by BBEdit or SubEthaEdit be willing to commit the time and resources to learn yet another app? Here's what we determined.
What We Like
To begin to see the potential of TextMate, you don't even need to download the application. Simply go to MacroMates' web site and look at some the features they've highlighted. Project-based file viewing, selecting, and editing from within the app? Excellent. Code folding? Very cool. Automation? Nice touch.
After you download the app and start using it, you can begin to get a solid feel for the program and what you can accomplish with it. We found that under a marred, unhelpful interface, there is a young, powerful application that has the potential to accomplish great things in the Macintosh community.
Bringing More to the Table with Project View
No serious review of any text editor on the Mac can go without a direct comparison to Bare Bone Software's BBEdit — the veteran and granddaddy of all Macintosh text editors. So how could a tiny new app starting from an absolute zero market share, even dare to compete on the same level as that of it's competition? Easy, bring more to the table with better features.
Up until the recent release of BBEdit 8.x, multiple document management was a mess. If you had any more than 2-3 documents open you had to be one highly organized individual to keep track of which files belonged to which project, and even something as powerful as Apple's Exposé didn't make matters much better. So when we learned that TextMate had innovative project viewing features, we wanted to see what it was all about.

One of the best features of TextMate is its rich support for managing and editing multiple files. Akin to BBEdit's document drawer, or OmniWeb's tabbed documents, is TextMate's “Project” Center. What do we mean by this? Often times when you're working on multiple text files, you'll find yourself continually switching back and forth between documents in the same application. Relying on Exposé or BBEdit's document drawer is less than optimal as you're still having to use a lot of mouse movement or key strokes to alternate between the open documents.
TextMate aims to change this behavior forever with the inclusion of “draggable” tabs. This is a welcome improvement in workflow management from what we've seen to date from any other program, but it does come with its weaknesses, as we'll explain.
After looking through the MacroMates web site, tabbed document management was one of the biggest features we were looking forward to using. With tabbed browsing being all the rage in web browsers, our jaws were dropped in awe of why anybody hadn't brought that metaphor to text editing. The problem we faced wasn't with how the tabbed implementation works in TextMate (once you figured it out) but rather how to get it to work at all. One would think you'd open up a new document and the tab bar would already be open, ready and visible with a single tab — or if it wasn't it would be just a click away in either the View menu or the application's preferences. Therein lies the problem: neither of those behaviors for enabling the tab bar work as they should.
If you don't have a project already open, the tab bar isn't visible. Trying to enable it in the View menu won't get you anywhere either. Just opening multiple files in TextMate won't enable the tab bar either, nor will trying to create a new file in an open window. For as far as we can tell getting to the tab bar is only possible if you've created a project. If that's not a frustrating enough way of abondoning the expectations of a user, we're not sure what is.
One tabbed document frustation that seemed to annoy us more than amuse was TextMate's adoption of yet another different keystroke command for switching between open or tabbed documents. In Safari, you can easily switch between open tabs by using the keystroke command+shift+arrow. To change tabs in TextMate rather, it's command-option-arrow. We wouldn't have been so frustrated with TextMate's choice of keystrokes had they followed any other significant app's leadership, but finding out that BBEdit uses a keystroke sequence of its own (command+option+]), we're now presented with three differing ways of switching between doucments in a common developer's workflow. (In the end, this isn't so much exclusively a TextMate problem as a general disagreement between developers on what the best key combinations are.)
If finding out your favorite keyboard sequence isn't supported isn't frustrating enough, (even by a Preferences menu supporting Custom Key Sequences, á la BBEdit or Dreamweaver) try accidentally opening up a non-text file in TextMate. When using the project center view with many folder uncollapsed, we found it a breeze to double click on a file and have it automatically open in a new tab, but what happens if you accidentally click on say an image file instead of a text file? You guessed it — TextMate opens it up as well, resulting in a binary mess of alphaabet soup, no less horrible than some sites' 1999 style of HTML tag soup markup.
However, even with all of the nuisances and odd behaviors of the tabbed document interface, when we finally figured out how to get the tab bar enabled and working as expected from the screenshot on MacroMates web site, our hopes of its usefulness and purpose were realized. The ability to quickly switch between open documents by simply clicking on a tab directly at the top of the application couldn't have been smoother. Compare that to BBEdit's obtuse fold-out documents “drawer” and you'll quickly see that TextMate's tabs provide more of a slick working environment than that of the dull, lackluster drawer implementation in BBEdit.
Harnessing UNIX for Text
As geeky as it looks, there can be some powerful results achieved when you add a nice dose of UNIX into your workflow. In this case, TextMate allows us to do some pretty cool things with UNIX and our text. First, TextMate has inline support for shell scripts. Type them right into the document and hit control-R to pass the command right to UNIX, and receive your output back. Also, TextMate allows you to "filter" the contents of the file you're working on to a UNIX command - say, lpr or grep. This option alone has powerful opportunities, and single-handedly ties together an OS X editor with UNIX tools. This can dramatically increase productivity, and general coolness among buddies and coworkers.
Regular Expressions
Both intimidating by sight and powerful by use, regular expressions have been around as long as time - just not in text editors. As logical as it sounds in theory to include support for regular expressions in a text editor, it's rare that you see an application that does. It's a refreshing change to see a new app like TextMate support regular expressions out of the box. We were also impressed by the robustness of the support, and now wish that our favorite coming into this review - SubEthaEdit - had such a feature. Until it does, TextMate is definitely the app for the job.
Snippets
Snippets are yet another cool feature that excited us about TextMate. As web developers, it can quickly get old to type each default attribute of an img tag. With snippets, this isn't a problem anymore. In addition to "template" tags, snippets are also good for storing larger blocks of text, ranging in size from a signature, to entire press release templates that are usually copied and pasted from previous releases, a tedious and sloppy process at best. A default set of key command shortcuts would be helpful so they don't all have to be set by hand, but the ability to set key commands in the first place is greatly appreciated.
Macro Support
For anyone who has used Microsoft Word, AppleScript Studio or any similar program, you know the power of macros. Often seen as nothing more than a "security risk" macros can in fact be extremely useful for repetitive or elongated tasks. 20 steps can easily become a menu item, and a key command shortcut can also be assigned. One minor thing I found about the macro support window was that the design of the window was so dramatically different from that of the snippet window. Even though the options for macros are far fewer, a common interface for each tool would be helpful. Again, the ability to assign key commands is noted and appreciated.
Code Block Folding
How many times have you been working on a document, debugging code, or writing a complex function, and wished you could just hide everything else but what you were working on? With code block “folding” in TextMate, you can hide the blocks of code you don't want to see.
It may sound complicated, but it's actually very simple. With foldings you can collapse method definitions in your class files, tables in your data, and divs in your markup. That way you only get the detailed view of the active segment while the rest is still available at a glance. [screenshot]
The code block hiding/collapsing “widgets” automatically appear to the left of your code in what TextMate calls the “gutter” of your document. To hide a chunk of code, just click on the widget; to get it back, just click on it again. Brilliant! All you have to do is decide what to keep visible and what to hide.
The idea is absolutely fantastic, but the implementation still leaves something to be desired. Not all tags, functions, and code can be collasped in this 1.0 release, only the ones in which TextMate has built-in support for. We found ourselves wanting to have the ability to hide almost anything, but the functinality just isn't mature enough. Maybe through a plug-in module, or *.plist add-on, code folding can be extended to other languages.
Our experience with this feature was wildly positive. In fact, switching to use any other text editor now found us searching for those little widgets to hide code portions. This is soon going to be a “must-have” feature in any text editor on any platform.
More Goodies
- The inclusion of a clipboard history is a great feature that we wish more apps would take advantage of. The concept has been around for some time, but it still hasn't gained wide-stream acceptance. For TextMate to have this feature means that the application is much more generous with corrections, which will entice users to continue to use the program.
- Another simple, yet extremely beneficial feature is syntax highlighting. Using this, developers get a great visual cue system making it much easier to look at, troubleshoot, and write code. Again, we wish more applications would support this, but we're glad TextMate does. Our only complaint is that more languages aren't supported (see below).
- A nice touch that the developers have included is to retain memory regarding an open project when the application was quit. When TextMate is opened the next time, the project is automatically loaded, and individual documents that were being edited are reset to their position before the app was closed. Very cool.
- All too often, the right-click/control-click menu is neglected or ignored, missing out on a valuable tool to make it easier for users. MacroMates thoughtfully included a range of commands in the control-click menu, even with spelling suggestions.
- Sometimes what is most exciting about a program isn't what it has, but what is planned in the future. MacroMates have already planned live remote editing via SFTP, as well as CVS/Subversion integration. I also expect to see a large number of changes based on user feedback and additional cool tricks the developers come up with.
- Column typing is a feature that really blew me away. It works by allowing the user to edit multiple vertically-aligned lines at once [screenshot], greatly simplifying tasks that would involve editing dozens of stacked lines that all started the same, but ultimately varied. This process has just gone from hours to seconds.
- Yet another cool feature that is subtle, yet powerful, is project-wide text searching. Imagine editing a web site project where you had to change an image path - for 400 images over 37 documents. While doing find/replace on 37 documents is better than individually looking for them, doing it once is really a superb feature. This will be a feature that nobody will notice, until they use it, and then they won't be able to forget it.
What Could Be Better
Because of the high attention to detail that we have seen lately out of programs written for OS X, the standard for interface design and features has become very high. Consequently, many programs that hit the market with sub-par interfaces have a much harder time succeeding than those with a polished interface. This doesn't matter nearly as much for in-and-out apps like Transmit or System Preferences, but TextMate is the type of app a developer would have open the majority of the day, every day. A web developer no doubt would face a similar schedule. In reality, these people (us included) spend more time staring at the screen than we do at anything else during the day. Shouldn't a superior, pleasing, intuitive interface be demanded of such applications? We at MacZealots.com say yes.
InterfaceWith that said, TextMate's interface is simply not up to par with the rest of the application. The best analogy we could come up with is this: TextMate looks like it has a backend designed by experienced über-hackers who really know their stuff, and a GUI designed by high school students who had TextMate as their first lesson in Interface Builder. In retrospect, we still believe that to be the case. For a program like TextMate that users have an extreme amount of interaction and face time with, the interface is lacking at best. As standards evolve and are more readily adopted, it's important for new applications like TextMate to follow suit and adopt Apple's Human Interface Guidelines (HIG) when designing their interface. In addition to not following interface standards, the developers at MacroMates have created their own GUI elements that only serve to throw off any user who's had 15 minutes of experience interacting with OS X. For an application to have any shot at acceptance and market share gain in industry, it must use and take advantage of these standards, doing nothing short of extending the entire OS X experience to a superior text editor.
GreetingsTo start, launching the application triggers two “greetings”: one displaying a daily tip, and the other reminding the user that TextMate is in fact shareware, and that paid registration is appreciated. We tend to associate a daily tip with a Microsoft Windows application. If you need to offer tips about an application, doesn't the application need work to make it more usable by the novice user? We were also frustrated by the lack of an actual close button on the tip window (not just the usual red “x“ widget, but a real 'close' button). When anyone with an hour of OS X experience sees a dialog window like that, they will subconsciously look for a pulsating blue "Close" button. The button's omission is minor, however, so I ventured forward.
One Naked AppWith the two introductory windows out of the way, a simple, blank document greets you [screenshot]; however, it was strangely absent of any icons, toolbars, or line numbers — just a simple, blank white window. How can a powerful app like what TextMate is promising to be start with something so ... uninviting? Where were the toolbars? Where were the tabs we had seen on their web site? We headed to TextMate's preferences to fix that right up.
Not Our PreferenceUnfortunately, a central place to alter preferences was also missing from the application. What gives? Well, according to MacroMates' web site, they had this to say:
“We consider [the omission of a preferences dialog] a feature and a testament to the simplicity inherent in the application. All the choices made in [a document's] View and Behaviors are sticky, though. So enabling Tab Emulation will make TextMate remember across all files and projects.”
Interested in testing this “stickiness” out, we created a new document, and set its syntax highlighting to CSS, a language we use daily. We then closed the document and application, relaunched, and checked to see if CSS was retained as my highlighting choice. It was not. Each time we create a new document, we have to either save the document with the appropriate file extension or manually select what type of highlighting we want from the View menu. This is a situation that we think warrants a preference, or at least a code check if it is indeed meant to stick.
On My TabOnce we got the toolbar up and running, we found it useful and attractive. Tabs in Textmate took a large step from the 1.0 release, as is apparent from redrawn, more functional tabs [screenshot]. The ability to drag the tabs at will is very handy, and we found ourselves using tabs constantly in 1.0.1. This is a prime example of how MacroMates listens to the users, and responds accordingly.
Toolbar-LessAnother example of MacroMates' lack of attention to interface detail is the outright omission of a toolbar. Again, this is an element that is all but universal among similar applications. In our experience, a toolbar is essential for writing tools (applications like BBEdit and the Microsoft Office suite have proven this several times over), and TextMate would certainly benefit from one. MacroMates could even disable the toolbar by default — however, the important thing is that it's available to the user.
Additional Issues
- Just like the oddly missing preferences in TextMate 1.0 (and 1.0.1), the ability to print anything out seems to be missing. This may have some connection to the developers not using NSTextView, but at any rate, the paperless office isn't quite here yet, and we still print stuff off daily. Piping the text through
lprdoes not count as an acceptable substitute. :) - TextMate does have help support files, which is great, considering that so many shipping products don't bother with it. It can be a valuable tool to both novice and veteran users. The problem with TextMate's help files is that they left out the novice entirely. The contents of the help files are restricted to advanced, otherwise undocumented features and tricks. Want to know if there's a built-in web preview, or where the prefs are? No luck finding it there.
- Thanks to the advanced graphics of OS X and Aqua, we've seen some absolutely stunning application icons. TextMate's unfortunately is not one of those icons. Besides a general confusion as to what the icon's about, it's too busy unless you're looking at a fairly large version of it. You should be able to look at a small icon and know exactly what it's for. The only reason we can pick out TextMate is because it's the one with the icon that sticks out like a sore thumb.
- For some odd reason, TextMate doesn't support variable-spaced fonts. Technically you can select such a font, but the results are just ugly. To me, this looks like a tie-in with the absence of NSTextView. Multiple problems because of this omission lead us to think - why is this custom text function so great?
Conclusion
For users hoping to have found the Holy Grail of text editors for OS X, your ultimate desire still remains to be realized. While TextMate is a look into the future direction of text editing in OS X (or on any platform for that matter), it still leaves itself open for necessary improvement. The ideas that TextMate encompass are a dramatic leap from what the traditional text editors have been in the past, but the application itself shouldn't depart so much from the traditionanl user's expectations that it turns interested people away. As first-time users of TextMate and after playing with it for a mere 48 hours, we left feeling confused why this editor (and MacroMates) has shown to disobey so many of the common fundamentals that many of the great editors before it have adopted.
If MacroMates is hoping to entice users into altering their current working environment, then they must first improve upon the bare essentials of creating a familiar workflow, even if it breaks the thinking their current tool provides. By catering to the most basic user expectations, but by allowing the ultimate customization and feature set, they can gain both new and mature users, and plant the roots necessary to build a solid user base for years to come.
And for the bold BBEdit vs. TextMate vs. SubEthaEdit comparisons, we liken it to the recent refueling of the browser wars: we've only just begun to see the beginning.
We see a lot of potential in TextMate; in fact, enough to merit the buzz it created before its release. TextMate has powerful tools that can change the face of app-based editing, and possibly postpone the seemingly imminent transition from application-based editing to web-based, feature-lacking interfaces. The key task for TextMate, however, is to combine this powerful toolset with a familiar, intuitive, graphically appealing (and useful) interface and interaction set that will make it extremely easy to persuade new and existing users of text editors to choose TextMate as their main editor.
Elsewhere Around the Web
Technically, we could write and debate about TextMate forever. These are just a few of the elements of TextMate that we believe merit improvement. To read more, here are some other quality observations of TextMate:
- Jon Hicks
- Michael Tsai
- Toxic Software
- NSLog();
- The Tao of Mac
- Rage Against the Mac
- but she's a girl...
- 43 Folders
- Justin French
- Bear Bits
- Inspirational Technology
- ianp.org
- Justin Williams
- Loud Thinking (TextMate developer)
Matt Willmore is a founding partner of MacZealots.com. Matt is also a Resident Assistant at Owen Hall and does Mac support at ECN, and is active in PUMUG. He can be reached at .



Reader Comments (11)
DISCLAIMER: The views expressed below are those of their authors and not necessarily endorsed or supported by MacZealots.com. In all cases, the comments provided here are offered as a courtesy and will be moderated. Any content deemed off-topic or offensive will be removed without notice. Posting a comment here boils down to two things: 1.) Think before you type 2.) Respect the thoughts of others. See our commenting guidelines and/or privacy policy for more information.
#1) On October 8, 2004 8:29 AM
“The inclusion of a clipboard history is a great feature that I wish more apps would take advantage of. The concept has been around for some time, but it still hasn’t gained wide-stream acceptance.”
It may not be “wide-stream”, but has been in BBEdit for years.
#2) On October 8, 2004 12:00 PM
Eric: By “wide-stream”, I am referring to the software industry. Certainly, BBEdit is a major player in text editing on the Mac, and it’s undo history is great, but I would like to see this feature implemented on a wider scale across all software applications and platforms. Thank you for pointing out the obscurity.
#3) On October 10, 2004 10:06 AM
Thanks for this thorough review, you have some good insights I haven’t seen anywhere else about TM.
But—how do I put this—your writing is kind of poor. You make grammar and vocabulary mistakes that sometimes result in a sentence saying almost the opposite of what you mean. Like “Now, not every application needs a toolbar, but TextMate is not one of those apps….” Double negatives are very confusing to read. Just write, “but TextMate does.” Also, don’t switch between “we” and “you” to mean “the people who wrote this.”
As MacZealots grows, there’s going to be a lot of important content here, so you should work on this if you want to take it seriously. You should try to find someone who can edit these pieces, especially long ones like this review.
#4) On October 11, 2004 10:54 AM
Good overall review and I agree with most of your comments. TextMate is really a very rough diamond right now, and we can only hope that as it is polished further it will improve even more.
The developers have started out from a good point in the backend capabilities of the app, but lack massively in the visual aesthetics of the app. Most likely they are recent OS X converts that haven’t yet understood the value we Mac users place on good GUI’s and consistency.
TextMate given enough development ought to steal much of BBEdit’s limelight soon unless BareBones start working hard in improving BBEdit.
Another REALLY GOOD app that you should look at is skEdit - www.skti.org
#5) On October 11, 2004 5:55 PM
It’s not that the “visual aesthetics” of TextMate are lacking (although that icon is painfully bad). There’s nothing wrong with a minimal look. There’s nothing wrong—in theory—with the kind of UI decisions like not including a Prefs panel. It’s just that if you make these kinds of bold commitments to being different, you have to pull it off in an absolutely brilliant way, which TM hasn’t quite done.
BTW, some of the features mentioned above in the “Goodies” section are amazing, like the collumn-selection thing. But others, like project-wide find/replace, are available in every other text editor I know (Dreamweaver, SkEdit, BBEdit). Seems like those are baseline features. I imagine that BBEdit will get code-folding pretty soon.
Aslo, you write above: “TextMate has powerful tools that can change the face of app-based editing, and slow the gradual shift to web-based file management.”
What does this mean? What is the “gradual shift to web-based file management?”
#6) On October 13, 2004 8:21 AM
I find the Command+Option+left/right arrow shortcut perfectly acceptable for switching between tabs. The main culprit is surely Safari, whose Command+Shift+left/right arrow overrides the default “select from here to beginning of line” shortcut available to all Cocoa text fields (including the one I’m typing in now). This means that whenever I go to select from the cursor to the beginning of the line in a textarea (using the keyboard, of course), Safari switches tabs instead of making the expected text selection. This, to me, is a bigger UI failing than not copying other Apps’ non-standard shortcuts.
Oh, and the icon does suck :-)
#7) On October 28, 2004 9:21 PM
An addendum of sorts to Joe Blogs’ mention of skEdit…
skEdit has a project management feature as well — “Site View” — that I can’t imagine working without and, IMO, a friendlier interface… No code-folding, however.
#8) On November 1, 2004 10:40 AM
By “gradual shift to web-based file management”, I’m referring to increasing trends I’m seeing where everything is web-based, instead of via applications like TextMate. Granted, it will still take a long time for this to happen, but we’re seeing it more and more often.
#9) On November 26, 2004 12:06 AM
TextMate has some useful features but I find it woefully underpowered for web develoment work. Code folding is certainly a notable innovation. The site drawer and tabbed viewing of files is by far the coolest thing this app has going � and they are very handy features but not nearly enough to offset its lack of standard features:
� No line number column!
� No split bar!
� No “launch this file with this web browser”
� Javascript syntax coloring is a little buggy
� Inline Javascript doesn’t get any syntax coloring if it is properly commented out.
� No preferences dialog??
� No toolbar for handy stuff like jumping to various functions/divs quickly.
Another thing I like about it is that .js files have a white on black text whereas html files are black on white.
I really like the file management features in TextMate, and the ability to view multiple files as tabs is a godsend. I really hope they continue development on this app to make it more competitive with some of the other text editors out there.
PS: thank you for allowing feedback in your articles � something I like about MacZealots is that the feedback tends to be just as useful as the articles (how utopian). Now I’m going to give skEdit a whirl …
#10) On January 4, 2005 2:42 PM
Addendum:
Note that Version 1.0.2 has been posted since this article was originally written.
Version 1.0.2 contains some significant improvements, after a few tryout days I bought it and registered it and is has become my default text editor. I definitely prefer TextMate over sKedit or BBedit now that the app has matured a bit more.
#11) On October 30, 2005 11:01 PM
this is a try:
is it works?
i love cats