Subliming

After months of abortive attempts, I’ve taken up Sublime Text 2.

I did that partly to stop people from recommending it to me (seriously people, you were getting on my nerves), and partly because it’s a “better vim than vim” when doing code refactoring — and yes, I’m using the “Vintage” emulation mode. It’s good enough (even does split windows), and I don’t have to switch mental gears when going between local and remote editing.

It wasn’t all roses — I loathe Sublime Text’s default look and feel as well as its overall UI choices (the TextMate alpha works fine and is so much nicer that you nearly weep when you’re using it), but vim emulation and its Quicksilver-like command completion eventually won me over1.

So once I found a decent enough visual theme (a variant of the Pastie theme I use in TextMate and on this site’s code samples) I could mostly ignore minor irritations and just get on with it2.

The only two exceptions are that I utterly loathe the way it handles a) search results and b) git (alas, I’m told I’m using the best git plugin currently available).

Seriously, the user experience in either regard is so bad that it’s almost charmingly gauche, but it sort of makes up for that with multiple cursor support (which I use seldom, but effectively) and its extensibility.

It bears saying that being readily extensible in Python was never a factor — just because it’s my favourite language doesn’t mean I feel like tweaking my editor — but it beats vimscript hands down, dovetails nicely with my penchant for using JSON configuration files for my own stuff, and I concede the point that having an interpreter prompt ready at the tap of a key is quite handy.

But, overall, the main reason I’m currently using it is that text editors (especially programming editors) should just work, and as efficiently as possible at that.

vim is tremendously powerful and I amassed a number of plugins for it over the years (including a native sidebar for the Mac), but Sublime has a slight edge right now — the Command Palette makes it easier to invoke seldom-used commands, and as a result a number of the irritating little “how in blazes do I do that again?” moments have vanished and I can stay in flow longer.

There also seems to be an awful lot of modern plugins for it — whereby “modern” I mean all the latest fads. And being able to rsync my whole environment to Ubuntu and just keep going (with the usual minor niggles regarding keyboard layouts) is a nice plus.

If only it could be as slick as Coda 2 for front-end development, I’d be set.


  1. I was previously using Quicksilver itself to trigger TextMate menus (via the Current Application proxy object), which works fine as long as what you want is actually present on the menu tree. I’ve been using this hidden gem for seven years now, and it’s one of the reasons I’ve stuck with Quicksilver instead of using newer, stupider launchers. 

  2. Like its minimap, which I find ridiculous and switched off right away. Seriously, if you need that kind of frippery to find your way around your own code then you probably shouldn’t be coding anyway.