Giving up on giving up TextMate

Oh, I talked a big game, but when the chips were down, when it was nut-cutting time, when the rubber met the road, in the dark night of the soul, I chickened out.

Like @ClarkGoble (http://xrl.us/bk2nar), I’m giving up TextMate for BBEdit 10 for a while to see how it goes.

After I finish this report.

2:42 PM Wed Jul 20, 2011

That one report turned into two reports, then three. Then there were a couple of longish blog posts that I didn’t want to do in an unfamiliar editor (or, more accurately, an editor I had lost familiarity with). The embarrassing fact is that three weeks after I wrote that tweet, I’m still using TextMate.

Yes, I downloaded the trial version of BBEdit, all right, and I started tweaking some settings and looking for ways to replace some of what I do in TextMate. I delighted in the ability to split a window and was positively giddy when folded a Markdown document at the headings. But then…

BBEdit doesn’t call its syntax highlighting syntax highlighting. In the Preferences, it goes by the name Text Colors.

BBEdit Text Colors preferences

This is truth in advertising, because, as I best I can tell, BBEDit doesn’t allow bold or italic styling. A small thing, maybe, but to me having key words in bold is more important than having them colored.

And frankly, the syntax coloring routines are pretty easy to fool. It’s not uncommon for any editor—and I’ve used heavyweights like Emacs and vi—to miscolor a section of text because it’s identified it incorrectly, but those errors are supposed to be rare. Maybe I just happen to be hitting BBEdit’s soft spots, but its coloring errors have been anything but rare. Here’s what this very document looks like when I open it in BBEdit:

BBEdit coloring errors

Something in the embedded HTML of the tweet knocked BBEdit off its pins, and the rest of the document is in red. How am I supposed to write in that environment?

BBEdit doesn’t allow column selection (the kind you do with the Option key held down) when you have Soft Wrap turned on. I always have Soft Wrap turned on and I use column selection and multi-line insertions almost every day. BBEdit forces me to switch Soft Wrap off and on repeatedly as I go about my normal editing chores.

The biggest problem, I think, is that BBEdit doesn’t include the concept of scope. Merlin Mann talked about the importance of scopes a few weeks ago in the “Food Court of Functionality” episode of Back to Work, and the more I’ve thought about it, the more I’ve come to realize that it’s TextMate’s killer feature.

TextMate understands that files of prose and files of source code have very different needs, and it uses scopes to adjust its behavior to the type of file you’re working on. More important, it recognizes that sometimes your file will have different sections and will need different scopes for each section. A Markdown document, for example, can include HTML, and that HTML can include CSS and JavaScript—TextMate uses multiple scopes and nested scopes to account for this and give you the appropriate highlighting and commands. BBEdit has nothing like this, and it feels like I’m writing in a straightjacket.

Update 8/11/11
Wrong.

As someone from Bare Bones helpfully points out in the comments, BBEdit does have something like this, and it affects how clippings and syntax coloring works. It doesn’t seem to give the user as much control as TextMate’s scoping system does, but it’s definitely there. My apologies for the mistake.

I suspect I was led astray by the mistaken syntax coloring I’ve been running into, an example of which is shown above. In the comment, Bare Bones acknowledges that the coloring is wrong. I’ll be sending the source to them so they can figure out what’s causing it.

I want to point out that this is another example of Bare Bones doing right by its customers, even lapsed customers like me. BBEdit may never feel right to me—you can’t write software that pleases every potential user—but I’ll always appreciate the respect they have for Mac users.

Fortunately for those of you considering switching from TextMate to BBEdit, Clark Goble is made of sterner stuff than I, and he’s keeping to his pledge to give BBEdit a fair trial. His first significant report on how he’s doing was posted today, and he’ll be adding more posts over the next week or two. Like me, he’s feeling a bit lost without scopes, but he’s wondering if BBEdit’s far superior AppleScript support will make up for it. He also seems to be much less bothered by the syntax highlighting problems than I am. But don’t just read my summary; read what he has to say in full.

Despite the title of the post, I haven’t entirely given up on the idea of switching from TextMate to BBEdit, but I’m much less optimistic about the possibility than I was a few weeks ago. On the positive side, I’m finding that TextMate still works fine for me in OS X Lion, so there’s no desperate need for me to find a new editor.


14 Responses to “Giving up on giving up TextMate”

  1. Kevin Lipe says:

    I did exactly the same thing. Switched to BBEdit 10 for about a week, and never got any of it set up to feel like home the way TextMate does after using it for so long. I sincerely hope that, at the very least, TextMate in its current state keeps working for a long time. One thing I’ve made use of recently is this plugin which adds Lion full-screen mode.

    Whether or not TextMate 2 ever comes out, I hope like hell TextMate 1 keeps working, because I don’t want to have to learn Vim.

  2. Clark says:

    I don’t edit much HTML in either TM or BBEdit though so that could be the issue. I have in the past but since I switched from a home grown Python script to run my blog to WordPress and switched to MarsEdit for composition I just don’t encounter HTML as much. Likewise my corporate site is largely done in Drupal and I don’t hit the PHP or HTML there anymore much.

    I do think that had BBEdit a better community of plugins and the like that the decision would be much easier. I’m still not decided. I was close to giving up on BBEdit until I started playing with Applescript….

  3. Lri says:

    My BBEdit 10 experience was pretty much opening it, pressing ⌘, being completely freaked out by the icons and those window resizing animations and then uninstalling it.

    I think Chocolat is finally going to be the replacement for TextMate though. It can import TextMate bundles, but stores them in a custom S-expression-like format which makes them easier to edit manually. The UI has a lot of similarities with TextMate, but it feels more modern and there’s (going to be) support for all Lion stuff. It has split windows and is planned to have features like code completion and live preview for Markdown.

  4. Seth says:

    I think the only viable options are Emacs or Vim. After the whole TextMate debacle I’m not willing to use an editor that could be abandoned by the developer or an editor without the functionality I need. Seriously, no column selection in BBEdit?

    For someone who does a lot of customization and tweaking with Python, LaTeX, Awk, AppleScript postscript, etc., I’m kind of surprised you haven’t opted for MacVim. This is a great link from Coyote Tracks summaring the state of text editors for Mac.

    I switched from TextMate to MacVim earlier this spring and it was the best thing I’ve ever done. If you are dissatisfied with BBEdit I really encourage you to drink the magic Cool-Aid and give Vim a serious try. I’ve been chronicling my switch from TextMate to MacVim here and here.

  5. vze26m98 says:

    I tried the BBEdit switch when version 9 came out. I had written TextMate bundles to handle the Forth and J languages, and BBEdit was, as drang says, not in the same league with respect to syntax highlighting facility.

    I switched to MacVim for awhile last spring and liked it much better. What finally killed it for me was the ugly way it treats softwrapped text- you just didn’t want to look at it scroll for very long. My LaTeX documents were not fun to work on. Really liked Vim’s cursor control, though!

  6. Seth says:

    @vze26m98 - if soft wrapping is the only thing holding you back from switching to MacVim, try the :set wrap command.

  7. Dr. Drang says:

    I’ve tried Vim several times, Seth, and described why I don’t think it’s ever going to be right for me here. Perhaps the MacVim people have made a system that make Vim’s modal nature less intrusive, but I’m dubious.

  8. Clark says:

    BTW - how did you do that awesome copy of a Tweet into your blog?

  9. Clark says:

    Vi is my editor of choice at the terminal but somehow when I’m trying to do editing of more than config files it bugs the hell out of me. MacVim tries to make it more Mac-like but fundamentally I honestly can’t understand why anyone uses it beyond muscle memory brought over from Linux.

    Emacs I confess I don’t get either. I don’t mind configuring my editor a bit but I don’t want to spend my life more or less rewriting the editor. That’s my #1 complaint with BBEdit. Unlike TM it just doesn’t come with all the language stuff you’d want. So you’ll be spending a long time configuring it to get it where you want rather than just modifying a few things and adding a handful of custom snippets.

    Chocolat looks interesting, but then Sublime Text 2 did also. A lot depends upon the UI. Of course Chocolat is already a step ahead of ST2 by having actual preferences rather than a largely undocumented text file you edit. (Although I did love ST2’s speed - wow)

    What I’ve found, much like Drang, is that a lot of the subtle things about TM you don’t think about end up being what makes it so great. Honestly if the Lion bugs and split pane were fixed then there’d be no question of sticking with TM.

  10. Dr. Drang says:

    Clark, the inline tweet is done through Blackbird Pie, first implemented in JavaScript by Robin Sloan, then translated to Python by Jeff Miller, and finally tweaked a bit by me. I described it in this post and have it available as a GitHub repository.

  11. BBEdit says:

    Hi there,

    Thanks for sharing your thoughts.

    I can tell you that your Markdown document is not coloring as expected. BBEdit should be coloring embedded HTML and CSS in Markdown documents. If you would send us a sample file that’s not working, we’d like to look into it. support@barebones.com is our direct email address.

    I’d also like to clarify BBEdit’s capabilities in the realm of what you’re calling scope. You said, “A Markdown document, for example, can include HTML, and that HTML can include CSS and JavaScript—TextMate uses multiple scopes and nested scopes to account for this and give you the appropriate highlighting and commands. BBEdit has nothing like this, and it feels like I’m writing in a straightjacket.”

    The video here demonstrates that BBEdit does, in fact, do precisely what you’re describing. The Clippings and coloring will switch to be relevant to the type of code within your document.

    http://bit.ly/qA7VHY

    If you ever have questions or feature requests about BBEdit and what you think it should be doing, we love to have conversations with our users — support@barebones.com would like to hear from you. Also, the BBEdit Talk list at http://groups.google.com/group/bbedit is a helpful user-to-user resource.

    I hope this is helpful. Thanks again.

  12. vze26m98 says:

    @Seth- I had no problem setting the wrap in MacVim, but it was the resulting screen redraw that really turned me off.

    Unlike some folks here, I really liked command mode and the cursor control it gave you.

    Go figure…

  13. Watts says:

    I tried several editors to “get away” from TextMate and kept blipping back to TM for various reasons, but finally ended up sticking with BBEdit. There are still things I miss about TextMate, but at this point there are things about BBEdit I’d miss if I tried to go back to TM — the Unix worksheet document, the tightly-integrated Ctags support, the multi-file search result window that lets you edit directly in it. While AppleScript makes me want to poke my eyes out a lot, I’m grudgingly admitting it’s pretty powerful, and there’s stuff you can do with it that’s hard to do just with shell scripts alone. (And, oh yes, BBEdit an [expletive deleted] pane split bar.)

    I think the biggest problem BBEdit has had historically is that, for all its longevity, there hasn’t been the same kind of community involvement that TextMate has had — no central repository for tips and tricks and, from what I can tell, very little sense of, “I did this neat thing, maybe someone else would like to do it, too.” I think it’s fascinating how many of the editors more openly vying to be TextMate 2 — Sublime Text, Chocolat, Vico, arguably even Espresso and Coda — go out of their way to be “partially compatible” with TM bundles. BBEdit 10’s “Package” system, though, finally brings a very bundle-esque way to handle extensions, and I’m hoping it takes off.

  14. Christina Warren says:

    I bought BBEdit 10 from the Mac App Store, in large part, to be honest, to support the development team. It’s a good app. I have no doubt that in an alternate universe, it could be an app I use daily and rely on. For now, however, like you, I’ve returned to TextMate.

    I agree with Watts - I think the new Package system in BBEdit is really fascinating. If that could take off with developers the way that Bundles took off for TextMate, that could change things.

    As it stands, I do 95% of my writing in TextMate using Brett Terpstra’s awesome Blogsmith Blogging Bundle (with a series of Mashable customizations I commissioned him to make for me) and I also use TM as my default editor in terminal when playing with web stuff.

    Still, I like where BBEdit is going. TextMate just keeps beckoning me back.