E-Scribe : a programmer’s blog

About Me

PBX I'm Paul Bissex. I build web applications using open source software, especially Django. Started my career doing graphic design for newspapers and magazines in the '90s. Then wrote tech commentary and reviews for Wired, Salon, Chicago Tribune, and others you never heard of. Then I built operations software at a photography school. Then I helped big media serve 40 million pages a day. Then I worked on a translation services API doing millions of dollars of business. Now I'm building the core platform of a global startup accelerator. Feel free to email me.

Book

I co-wrote "Python Web Development with Django". It was the first book to cover the long-awaited Django 1.0. Published by Addison-Wesley and still in print!

Colophon

Built using Django, served with gunicorn and nginx. The database is SQLite. Hosted on a FreeBSD VPS at Johncompanies.com. Comment-spam protection by Akismet.

Pile o'Tags

Stuff I Use

bitbucket, Django, Emacs, FreeBSD, Git, jQuery, LaunchBar, Markdown, Mercurial, OS X, Python, Review Board, S3, SQLite, Sublime Text, Ubuntu Linux

Spam Report

At least 236509 pieces of comment spam killed since 2008, mostly via Akismet.

TextMate: Bundles of goodness

Warning: this is a long post about... a text editor.

screen shot I'm very late to the TextMate party. Like many other people, I heard the buzz when it came out last fall, checked it out, and went away interested but unimpressed.

At the time I knew that BBEdit's long stint as my primary text editor was coming to a close. For its replacement I wanted an app that felt cleaner; was Cocoa, not Carbon; didn't have a dozen years of accumulated cruft in the menus; and didn't have language-specific features that felt tacked-on. For shell tasks I continued to use and enjoy Emacs, but I was pining for a great native editor on the desktop.

Ironically, for almost a year after that I primarily relied on TextWrangler; it really is quite a good little free editor, but after a while I couldn't ignore its shortcomings and I was still resolved not to go back to BBEdit. I tried all of the other appealing Cocoa options (SubEthaEdit, Smultron, skEdit, Xcode) with no lasting joy.

A couple weeks ago I decided to take another look at TextMate; within a few days I bought it, and I'm fairly sure I'm in for the long haul.

There are lots of swell things about TextMate, but the killer feature is the "bundles" system for handling different languages and types of text. Many people misunderstand this to be just about syntax coloring; far from it. A language bundle can contain templates, "snippets" (mini-templates with smart placeholders that you can tab through), commands (real commands, i.e. shell integration), macros, and more.

If you're a coder who always writes Java or always writes HTML, you might not think TextMate is the best. But if you're like me, it's a godsend. Last week I used TextMate to edit Python, PHP, HTML, Django templates, Markdown, plist files, and plain text. (I'm writing this post in TextMate, naturally, and using the built-in Markdown preview.)

TextMate is an app that invites hacking, in the best sense of the term. There are dozens of bundles, including boutique stuff like Haskell, Matlab, and R -- mostly due to user involvement.

The bundles organize features in a discoverable way. As I work with TextMate I have the same experience over and over: it occurs to me to want something (an HTML tidying command, or an email quoting macro), I look for it, and I find it. This discoverability is where TextMate's real power comes from; the huge number of language-specific features could completely destroy the application if they were organized poorly.

(I haven't felt the need for documentation very often while using TextMate, which is lucky for me. It can be difficult to quickly find information about its advanced features. There's the built-in help, the wiki, the book, and the blog, not to mention the mailing list. They're all helpful, but the information is too scattered. Some consolidation would be good!)

Finally, I see that TextMate's "snippets" system has now been ported/cloned to both vim and emacs. Wow. I think that might be one of the signs of the text editing apocalypse.

Friday, November 11th, 2005
+
6 comments

Comment from Quentin , later that day

One thing I love about TextWrangler is its ability to browse, open and save on remote machines via FTP/SFTP.

Almost all my editing of plain text files is for stuff running on web servers elsewhere, and TextWrangler makes this really easy. TextMate looks nice and will, I think, integrate to some degree with various FTP programs. But it's hard to beat TW's convenience for this... you just press shift when the file's not on your machine - shift-cmd-O, shift-cmd-S etc. It even remembers remote files in your Recent Files list... really handy if you need to keep tweaking that one particular web page.

Tricky decisions...

Comment from Paul , later that day

It's funny -- integrated FTP seems to be one of those "there are only two kinds of people" things. You can find arguments about it in the TextMate wiki. I'm happier using the "Edit with" feature in my FTP client (Cyberduck, at the moment) -- in fact, I didn't even know TextWrangler had built-in FTP because I never went looking for it. I think this is partly related to my antipathy for file dialogs. I'm much happier browsing a Finder-style list that persists in its own window.

Comment from Nathan , later that day

I agree that the bundles are really where the power is. They turned me as well.

TextMate works really well with Transmit, if you need ftp. I do not like ftp integrated into my text editor.

If you really wanted to, just use the Finder to connect to an ftp server and open the folder in TextMate as a project.

Comment from Quentin Stafford-Fraser , 1 day later

Yes, I can appreciate all the arguments for FTP not being a function provided by an editor. It's just that any theoretical objections I might have vanish, when it's done as well as it is in TextWrangler!

And, actually, it's SFTP that really counts, and the Finder doesn't support that. But I'll have a play with the Transmit integration and see if I can get used to it!

Comment from Paul , 1 day later

FWIW, the Finder is useless for this in any case -- not only does it lack SFTP, but its FTP is read-only!

Comment from Alan Cole , 20 weeks later

I have to say that FTP and SFTP built into my Text Editor is essential for me. I've been using Pagespinner for years now for most of my editing and have got used to pressing shift+S to save locally to disk followed by shift+Command+S to upload the file to the relevant web-server... No need to open a second FTp app as PageSpinner does it for me, no need to delve deeply into various directories on in the finder and on the remote server to get things in the right place, PageSpinner does it all for me.

I would however LOVE to swap over and start using TextMate as some of its features look amazing, but I save so much time by having FTP built into my editor that I just can't take the plunge until TextMate has a similar function.... I so wish it did.

Al.

Comments are closed for this post. But I welcome questions/comments via email or Twitter.