Wednesday, October 6, 2004

TextMate 1.0

TextMate is hyped as a BBEdit-killer for $39 ($49 starting in November). While it incorporates some undeniably clever ideas, my first reaction is that it feels all wrong. The first paragraph of TextMate’s Web page says:

It’s time to turn envy into pride and end your desire for Windows- and Unix-based editors once and for all. TextMate is The Missing Editor that has puzzled switchers by its absence and kept veterans longing. With a wealth of exclusive features like tabs, foldings, and macros, TextMate is well ahead of other native, graphical editor on OS X—and you don’t have to sell your bones to afford it.

This doesn’t speak to me because I’ve never desired a Windows- or Unix-based editor, though I do think that Emacs has some features worth transplanting to the Mac world. The last clause is clearly a jab at BBEdit, but MacroMates should first worry about competing with the similarly priced SubEthaEdit and TextWrangler.

Some random thoughts, from two minutes of use, in order of discovery:

The end of the TextMate page says:

But in the end it’s all about the touch and feel. We’ve given you a taste of the amazing and frequently exclusively [sic] features of TextMate, but in the end it’s all about the tactile experience. An editor needs to have a good fit. By going with Apple’s Cocoa framework, but avoiding the basic NSTextView that most other Cocoa-editors on OS X uses [sic], we’ve done our outmost [sic] to make TextMate feel good without compromising on the features.

I think this sentiment is exactly right. TextMate doesn’t feel like BBEdit, CodeWarrior, Alpha, QUED/M, or Symantec’s IDE. It also doesn’t feel like ProjectBuilder, Project Builder, Xcode, or third-party NSTextView-based editors such as SubEthaEdit and TeXShop. As a result, I think it feels all wrong, but TextMate wasn’t designed for old Mac hands like me. It was designed for switchers. I would have a hard time switching to another platform if it lacked an editor that felt right, so I can certainly understand MacroMates’ motivation here. I’m rooting for their success in making switchers feel at home on the Mac.

30 Comments

You think Alpha was at all Maclike? Are you sure about that?

You're also missing the same market that John Gruber seems to miss: the Mac people who want a powerful editor, with macros, real syntax editing, folding, et cetra. Maybe you don't want these features, but some of us "old Mac hands" have been waiting forever for this.

Mini TextMate review
Macromates have just released a text editor they're claiming is a bit of a BBEdit killer. I've been using it all morning and here is my list of what I consider its pluses and minuses. Pluses Tips of the Day are always handy. Bookmarks are nic...

Alpha Lover: I didn't say that Alpha was Maclike; I said that TextMate doesn't feel like Alpha or other older Mac editors. I said above that I liked TextMate's syntax editing architecture, and my post on BBEdit 8 lamented that BBEdit's CLMs are underpowered. I'm all for macros and automation, but it's not clear to me what's so great about TextMate's. Its macros seem to be recordable but not editable, and it's not AppleScriptable. As I said above, I'm intrigued by folding, but I'm not sure how I would use it yet. Overall, it's not that I don't want more powerful features in my editor, but rather that I think TextMate skimps on the basics and doesn't yet deliver compelling power features, either (except perhaps the multi-document interface).

TextMate
Michael Tsai, author of the excellent SpamSieve (amongst other things) comments on TextMate - a new text editor for the Mac. You might think that the Mac didn't really need too many additional editors - after all, it has BBEdit and SubEthaEdit along ...

My first thought:
Darth Vader: I find you lack of Apple HIG conformance disturbing.

> Page Up and Page Down move the insertion point—instant disqualification.

I have a non-Mac background and this is one of the things I hate when working a Mac. I assume that Page Up and Page Down keys move the insertion point.

So, what is the Mac way of moving insertion point about one screenful forward or backward? Mouse?

The mac way to move the insertion point is option up arrow/option down arrow.

Jussi: BBEdit and CodeWarrior use Option-Down and Option-Up to move by screenful, and Command-Down and Command-Up move to the bottom or top of the document. Here's what the guidelines say.

I'm currently sitting on the fence because I still think that BBEdit carries a hefty price tag. But TextMate right now isn't there. I agree with Michael that it doesn't feel right. Furthermore, it's slow: opening a 3.1 MB text file takes 30 seconds (compared to 1-2 secs in BBEdit) and replacing a string 200'000 times takes about 2 minutes (compared to 3-4 secs in BBEdit). These might not be your daily operations but it may hint at some flaws in the underlying architecture...

Thanks for responses. It seems that both in TextEdit and xCode, which are the ones I mainly use for editing, option up arrow/ option down arrow moves the insertion point just by one line :(

Well, maybe I'll learn to use the mouse one day :)

Some more handy shortcuts for text:

Control-A. Moves your insertion point to the beginning of the paragraph. (Mnemonic: A = beginning of the alphabet.)

Control-E. Deposits your insertion point at the end of the paragraph. (Mnemonic: E = End.)

Control-D. Forward delete. (Deletes the letter to the right of the insertion point.)

Control-K. Instantly deletes all text from the insertion point to the right end of the line. (Mnemonic: K = Kills the rest of the line.)

Control-O. Inserts a paragraph break, much like Return, but leaves the insertion point where it was, above the break. This is the ideal trick for breaking a paragraph in half when you've just thought of a better ending for the first part.

Control-T. Moves the insertion point one letter to the right--and along with it, drags whichever letter was to its left. (Mnemonic: T = Transpose letters.)

Option-Delete. Deletes the entire word to the left of the insertion point. When you're typing along in a hurry, and you discover that you've just made a typo, this is the keystroke you want. It's much faster to nuke the previous word and retype it than to fiddle around with the mouse and the insertion point just to fix one letter.

Four additional keystrokes duplicate the functions of the arrow keys. Still, as long as you've got your pinky on that Control key. . . .

Control-B, Control-F. Moves the insertion point one character to the left or right, just like the left and right arrow keys. (Mnemonic: Back, Forward.)

Control-N, Control-P. Moves the insertion point one row down or up, like the down and up arrow keys. (Mnemonic: Next, Previous.)

(copied blatantly from some macdevcenter comments a while ago)

Sticking with BBEdit, thanks
Michael, who is much more knowledgeable of such things than I, has an overview of MacroMates’ newly-released TextMate, which purports to be a BBEdit killer. I downloaded and took a look at TextMate, too, and I was fairly unimpressed. If I weren&#...

Jussi,
Yeah your comment on xCodes (even TextEdit's dammit) apparent lack of "move insertion point up one page" is incredably frustrating. Option-Up Arrow is supposed to do this (like it always did before OSX).
As far as I know there is currently "no way" (tm) to do this (at least in NSTextView). BBEdit gets it right. Even MS Word gets it right.
Stupid. Just stupid.

Startup times are a little longer but it's cross platform Java and works like a champ.

http://www.jEdit.org

£0.00.

Lovely.

Re: keyboard shortcuts.

John -- you could just as well pick the same up from Emacs manual. One more that's been left out:

Control-Y (mnemonic -Yank) -- paste the string that has been previously Control-K killed into the kill-ring^H^H^H^H^H^H^H^H^H clip board. If you do Control-U Control-Y, then cursor will remain at the begining of the yanked fragment, otherwise it goes to the end.

In NSTextViews:

option-page up: moves the cursor a page up
page up: moves the window a page up without moving my cursor

What is the problem Jusi and other have besides they expect the commands to be swapped?

I had a whinge about the Page Up/Down thing and got some advice.

Also, command-delete seems to work for me -- it deletes from the caret to the end, just like BBEdit.

I actually really like TextMate, but that's me.

Raena: I think perhaps you mean Command-Forward-Delete. That works and does what you describe. Command-Delete (Backspace) is supposed to delete from the insertion point to the beginning of the line. I see that it's in the key bindings file, but it doesn't do anything (on my machine). Oddly, Control-Delete is bound to the same selector and works.

In defence of TextMate
So the ATPM head honches, Michael and Chris, have weighed in with their thoughts on the new text editor TextMate. They don't like it; I actually think it's kinda neat...

Ohh, my mistake.

My search for the One True Text Editor goes on.

For it being a 'switcher' tool, I would have thought messing with keymappings and shortcuts would be a nice addition to the hypothetical preferences dialogue.

SMultron and skEdit are both very promising editors as well. Smultron is open-source and skEdit is only $20.

Cameron Eddingsworth

TextMate isnt designed for switchers, its designed for hand coders. I used to use UltraEdit on windows, and VI in a shell. I bought a mac when OSX was released. BBEdit never did it for me, and there was and is nothing like ultraedit for OSX. I tried Jedit years ago, but its just too slow and not elegant at all. TextMate immediately felt like a coders tool, it works right, doenst get in your way; feels small and light, and its frigteningly extensible.

It will take over everything, that is for sure.

You can tell alot about a person from what editor they use. Certainly the people who are taking to TextMate are the serious, experienced coders of high repute, whilst those that do not, are the mac inured.

In other words...

Let the New Religious Wars begin!

Cameron: Aren't all text editors for hand coders? What you're describing is a class of tool, of which there are several. The fact that you used UltraEdit and now feel at home in TextMate seems to support the idea that TextMate is for switchers...

I have just moved to a mac. I have always wanted to check out whats the buzz with TextMate. I have been using TextMate for a while now. But for some reason I always end up using Emacs. But its a pretty good editor. Not as powerful as Emacs though...

It's been a while now, but as I found this in a google search, I thought it worth adding:

Andrei, Cocoa does use a kill ring, and you can even make it bigger than one item with the following command:

defaults write -g NSTextKillRingSize -string 10

or whatever you want other than 10.

Also, one of the most useful commands of all:

defaults write -g NSRepeatCountBinding -string "^u"

makes it so that "Ctrl-u + number + keystroke" will do whatever the selector is for that keystroke number times. So "C-u 8 Ret" will insert 8 blank lines, "C-u 20 upArrow" will move the insertion point up 20 lines, etc.

See:

[...] I’ve been watching TextMate since late 2004. My first reaction was similar to Michael Tsai’s observations around the same time; “not quite right.” [...]

Stay up-to-date by subscribing to the Comments RSS Feed for this post.

Leave a Comment