Upgrading to TextMate 2, and then tweaking the environment

A couple of days ago I installed the MacOS update, Maverick. In doing that, it was recommended to me that I also upgrade my TextMate install to the 2.0 version.

TextMate is the text editor that I use when writing code on a Mac (on the rare occassion I’m on a windows machine, I use context – and on unix, I use nano).

Anyway, TextMate has a ton of great little features, but really I turn almost everything off and rely on a few simple things:

1. Ability to launch textmate, with my project source loaded, from the Terminal app.

2. Syntax highlighting (ie. colors for reserved words)

3. Show invisibles (ie. ability to see line breaks and tabs)

4. PyFlakes on save (ie. basic python warnings about potential code errors)

Of course the move to version 2.0 broke all of these things…so it took me a little while to get it all figured out and find my flow again. Here’s a quick breakdown of how I’m addressing each:

Launch from terminal

To get this back, you’ve just got to turn it back on (it’s off by default because they moved it’s location). There are more details about it at http://blog.macromates.com/2011/mate-and-rmate, but the basic deal is that you go to ‘Preferences’, then 'Terminal’, and click install.

The one little glitch that I found with this upgrade is that I’m in the habit of using the * character to launch, and this no longer launches the folder (and subfolders) as a project. Instead it launches each sub folder as it’s own project (annoying).

So the new, and more accurate, way to get what I want is to use the dot (.) character. This launches things the way I’m used to (and want). So I’ve got to learn the new habit of:

mate .

instead of:

mate *

Syntax Highlighting

It’s been a really long time since I’ve had to tweak or set up TextMate, so it actually took me a few minutes to figure this bit out. It turns out, this stuff is all controlled by themes.

Themes themselves are in the 'view’ menu (I prefer the Mac Classic one because it feels the most vanilla to me)…and if you want to tweak the theme, you can do that under the 'Bundles’ menu, then 'edit bundles’…find 'Themes’, then 'Themes’ under that as well…and finally you should be able to find the theme you picked and edit the details to your liking.

Show invisibles

You can find this toggle under the 'view’ menu. I usually toggle off the 'soft wrap’ from this menu as well (though when I’m writing a blog post, like now, I turn it back on).


If you write Python code, I can’t recommend getting this installed enough. When it’s installed, it will warn you about many potential sytnax or code errors when you save your code (it tells you thinks about improper formatting, unused libraries you have imported, classes and libraries that you are referencing but have not imported, variables you assign but don’t use, potential typos, and so much more).

There are a couple different versions of PyFlakes floating around the internet, but the one I prefer is the one offered up by Jehiah at https://github.com/jehiah/pyflakes.tmbundle

The problem is, the instructions available on his repo were for TextMate 1…so it took me a while to poke around and figure out how to get it properly installed (turns out the folder organization for bundles changed a bit in this upgrade as well).

Essentially, you have to change his instructions from pointing to:

~/Library/Application\ Support/TextMate/Bundles

to pointing to:

~/Library/Application\ Support/Avian/Pristine\ Copy/Bundles

…once you do that, and restart TextMate, you should be all good!

I submitted a pull request, with this small install instructions update, to Jehiah as well…so hopefully he’ll accept and merge that before long (until then, hopefully this post saves you some time).

And with that, I was *mostly* back to my usual flow.

The only other tweak that I haven’t entirely figured out yet is how to get the system to stop auto matching quotes and brackets (it’s not a horrible feature, but I prefer to turn it off)…I think it’s either a theme or a TextMate bundle thing, but I have not taken enough time to dig it out yet (if I do, I’ll let you all know).

This post has received 42 loves.


This is the personal blog of Kevin Marshall (a.k.a Falicon) where he often digs into side projects he's working on for digdownlabs.com and other random thoughts he's got on his mind.

Kevin has a day job as CTO of Veritonic and is spending nights & weekends hacking on Share Game Tape. You can also check out some of his open source code on GitHub or connect with him on Twitter @falicon or via email at kevin at falicon.com.

If you have comments, thoughts, or want to respond to something you see here I would encourage you to respond via a post on your own blog (and then let me know about the link via one of the routes mentioned above).