Can't Quit BBEdit

BBEdit — it doesn’t suck, but it sure isn’t leading in features. I’ve spent a bunch of time with different editors, even reading a book on VIM once. I wrote about my experimentation with different editors recently, and most of what I said stands, except for that my experience with Nova is significantly better since moving from Python to Ruby for scripting[1].

I’ve experimented with Visual Studio Code, which despite my reservations about Electron apps, is obviously the frontrunner for editors with lots of features that are reasonably easy to use and configure[2].

I also spent time with TextMate 2. I know people who still swear by it, but while it’s still being developed, it doesn’t feel like something I want to invest in starting to use now. Maybe if I were already an expert, I’d ignore the UI bugs that don’t get fixed or the fact that most of the bundles are a decade old, but I’m not, so I don’t think I will (unless I change my mind).

So, here I am, typing in BBEdit. There’s other options. Why has app form the nineties that mostly still looks like an app from the nineties stuck with me?

What’s Good?

It never crashes

Being in the middle of writing code, hitting go, and having the app you’re using freeze up and crash really sucks. I can’t remember BBEdit ever crashing on me.

It’s fast

BBEdit loads fast so I can get to putting text into a window quickly. A lot of times I’m just pasting something to a temporary location, and I don’t think there’s a better option than BBEdit for that.

Regular expression support

All the serious editors have regex support. For some reason, BBEdit’s just feels the easiest to me. Pattern Playgrounds are pretty functional. The interface for saving a library of regex sucks, but that’s not such a big deal for my use.

Per language settings

I really enjoy being able to have a per-language color schemes and indentation levels. BBEdit does this better than anything I know.

What’s Missing?

Intelligent completion

Ctags are supported and work okay, but they aren’t context aware. I do really like that BBEdit’s completion will let me tab between placeholders. Xcode does this, but most of the other editors seem to stop at putting the name of what you’re doing in and stopping there.

Syntax awareness

Here’s a couple of examples that drive me nuts in BBEdit: If I’m writing a list in Markdown, and type an asterisk *, write something, and hit enter, BBEdit does nothing. It should insert another asterisk so I can continue the list, but, it doesn’t. Other editors have had this forever now.

If I write something like def my_method in Ruby and then hit return, BBEdit should be smart enough to know that the next line should be indented by two spaces. It’s not just a Ruby thing, I tried this with C and Python as well and BBEdit just doesn’t have this feature.


Whatever you call these, I want a way to easily add a new list of completions, or a theme, or language support to BBEdit without downloading a file I found somewhere and moving it to a subdirectory of BBEdit’s Application Support folder.

Multi-cursor support

All the other GUI apps have this now — even TextMate — and you know what? I like it. Column selection when you hold down option is not the same thing and the prefix/postfix lines window is a crutch at best.

A nod to visual appeal

Just a little one, please. Can we get an icon update for Big Sur while we’re at it? I don’t ask for much.

Still Using BBEdit

So here I am: using BBEdit. I keep trying other things, and I keep coming back. At this point I’m probably going to stop worrying about what editor I’m using so much and get back to work[3].

Subscribe to RSS feed

  1. So much relies on the quality of the extensions you’re using in Nova. I stand by that they need more first-party language server extensions.  ↩

  2. The promise of Nova to me is Visual Studio Code with a Mac UI. It comes really close. Configuring build tasks in Nova is way easier and better.  ↩

  3. That’s a lie. I will definitely continue worrying about what editor I’m using.  ↩

Collin Donnell @collin