TextMate vs SubEthaEdit
The widely-anticipated new text editor for Mac OS X, TextMate has now been launched.
I’ve been using SubEthaEdit as my main editor for some months now, and so it’s hard to distinguish what’s a genuine point of comparison from what’s simply a case of having to unlearn old habits. But there are a few small features in SubEthaEdit that I know I’d sorely miss if I were to switch to TextMate wholesale.
The ability to tint the background colour for text that I’ve changed. It’s so useful to know what I’ve touched in a file when looking for bugs, particularly when edits in a single session are dotted around a variety of different subroutines.
The ability to alter multiple lines at once by selecting them with the option key. Let’s say you have a bunch of
<li>tags in an HTML file, and you want to give alternate ones a separateclass. In SubEthaEdit, you’d just click on alternate lines holding down the option key, then place the caret after an<liand start typing. The change you make to the line with the caret will be reflected on all the other lines you’d highlighted. It’s a complete timesaver, and something I was so chuffed to find having come from StrongEd on the Acorn.SubEthaEdit creates a function popup at the top of the window that you can use to jump to a given block. In Perl, this is a list of named subroutines. It’s great to open a file and be able to jump straight to the subroutine you’re looking for.
That’s not to say that there isn’t some great stuff evident in TextMate right from half an hour’s playing with it. In particular:
Being able to “fold” blocks down to their opening definition to get them out of the way. This seemed a little buggy when I tried it in one of my Perl modules, but that might simply be because there isn’t a Perl mode (or “bundle”) yet.
Columnar selections.
Being able to conduct a regexp-based search-and-replace across a number of files at once.
Macros and snippets.
Auto-completion of brackets and so forth.
Similarly, there are niggles with each.
SubEthaEdit’s Perl syntax highlighting gets awfully confused by apostrophes within a line of text, often resulting in the rest of the file getting coloured as a string until it finds another one. Unfortunately, it’s sometimes handy to have genuine single-quote-delimited strings coloured, such as
$hash{'text editor'}.TextMate’s function to shift a line left or right works from the point that the selection starts, rather than acting on the whole line. So, if you’re trying to indent an entire block, you have to make sure you select the block right from the very beginning of the first line, or you might introduce a gap in the middle of some code.
TextMate has no preferences panel. None. Having said that, I’ve just noticed that the application remembers any changes you make to the display font for the next time you launch the program, which is considerable mitigation.
Of course, TextMate has only just been released, so it’s hardly fair to criticise it too strongly it on the basis of a couple of irritants that may well get fixed. I’m certainly looking forward to seeing any Perl bundle that gets released, as without this, I really can’t form a comprehensive judgement for my own needs.
But, ultimately, although TextMate has delivered on its hype impressively, I suspect that the things I like most about SubEthaEdit may become deal-breakers for me.