On Text Editors
A web developer’s workflow hinges on their text editor. For me, TextMate is the perfect text editor. I use it both for web development and casual text manipulation. I like that it’s both powerful – with shortcuts, bundles and expandability – and light weight – in that it launches quickly and performs actions fast.
I’ve tried, and have licensed copies for, both Coda and Espresso, and I really like both, but not enough to switch from TextMate. I’ve been thinking about why, and I think it’s because I’ve never been educated on how to actually use them. I’ve read all the marketing copy, watched the developer screencasts, and even tried both in real-world situations. I must be doing something wrong, though, because I still don’t see the appeal over TextMate.
For instance, in TextMate, to “Insert Open/Close Tag” and add a paragraph, I type: ?+<, then tab, then write my paragraph, then tab again (to place the I-beam back outside the tag). Besides the actual paragraph, it takes three keystrokes. In Espresso there’s a similar “Insert Tag” icon in the menu bar, but no equivalent keystroke command, and even that doesn’t allow you to tab out of the tag. I haven’t found command like this in Coda.
So am I missing something?
Update: Indeed, I was missing something. Thanks to Ian Beck, I’ve discovered TEA, and the powerful potential of “sugars” for Espresso. I’ve posted a video demonstration evaluating how Espresso and TEA are used. Very nice.
I’ve tried Espresso and Coda too and found the same thing, while they both have some interesting features over Textmate they both lack that real programmer’s depth that Textmate has. I’m a relatively new Mac user, having programmed for ages using vi and other lesser editors (like VisualStudio), so my measure of real is different than the kids these days, but I do think that these newer editors are focused on a generation of click programmers.
And that said, I think Textmate has become a bit like vi. It’s search features (even inline) lag behind Apple’s latest tools (oh, what I would do for the Safari inline search and yellow box highlight!), and its code completion leaves a lot to be desired (CSSEdit has it beat for what it does). But overall, Textmate is deep and excellent.
It may be too that these newer editors are just immature siblings that will come around given time. Who knows?
§ Bruce · 01 June 2009
Sean – I love love love everything about TextMate. Except it’s lack of “block” level undo’s. During troubleshooting, block level undo’s are a must. Hopefully v2 will offer them. Until then, it’s BBEdit for me.
§ Noah Stokes · 01 June 2009
Sean, I have licensed copies of all three as well. And I agree, as far as editors go, Texmate is the best. Espresso doesn’t feel natural to me and is kinda buggy still. Feels rushed.
As for Coda, I use it to manage my projects (from a coding perspective). I have .php, .html and .htm, .module (for drupal), and .js all set to open in Textmate from Coda. So if I plan to do some serious coding for a while (vs. short updates) I’ll right click and “Edit with Textmate”. The .css files are set to open in CSSEdit and images in their respective apps. Terminal, FTP + sFTP, and SVN work nice in Coda.
What I really enjoy about using Coda is the project view of my files both locally and on the server. That’s probably my favorite part. Easy to manage the entire site and jump out to the other tools I need at a moments notice.
Oh and I use this tip to have all of the files opened from Coda in Textmate, to show in one window with tabs. Works well.
For me none of these editors do everything I want which is why, I guess, I have all three. Still hoping Espresso will mature into a good combo of both.
§ Joshh · 02 June 2009
You’re missing something, and it’s name in both cases is “TEA”.
For Coda, I’m working on a plugin version but the interim solution is my Textmate Emulation Applescripts for Coda. You’ll need to define your shortcuts via the System Preferences yourself, but otherwise it offers the cream of the crop from the Textmate HTML bundle (Insert Open/Close Tag, Wrap Selection in Tag, etc.).
For Espresso, the slight renamed Text Editor Actions for Espresso is bundled with the app. The Insert Open/Close Tag action has been renamed (Actions->HTML->Insert Tag From Word) and it’s shortcut is different: control-, (control-comma). Functionality-wise it’s identical to Textmate except it will look in both directions from the cursor for the word.
However, I recommend upgrading to the latest version of TEA. In it, I reconstituted Insert Tag From Word as Expand Abbreviation (same shortcut) and it uses the zen coding project to make it far more useful. For instance, type this:
div#nav.sidebar
Hit control-, and you get this:
<div id=“nav” class=“sidebar”></div>
There’s a whole bunch of tricks and abbreviations available for zen coding; check out the wiki on the project homepage.
In general, Espresso borrows a lot of functionality from Textmate, so if you like Textmate’s editing features Espresso is the most likely editor to make you happy. It’s still feature incomplete, of course (I have to switch to TM still whenever I want to do a project-wide find and replace), but I’ve pretty much switched to Espresso full time by now. It’s quite easy to port Textmate bundles to Espresso using TEA, as well. For instance, I’ve ported all of the HTML Bundle to Espresso except for the commands that require GUI, and it was mostly just a case of find and replace for variable names.
Slightly off topic, if you haven’t yet tried Espresso with the ExpressionEngine Sugar, you’re missing out. Best EE editing experience I’ve found yet by far.
§ Ian Beck · 02 June 2009
Ian, I’ve been playing with TEA and the HTML Bundle all morning and I’m very impressed. Well done.
Indeed, TEA might be the revelation I needed to understand the power of these new (expandable) IDEs.
§ Sean · 02 June 2009
Glad you’re enjoying it! Let me know if you find any bugs or have any feature requests at the TEA GitHub Issues page. It’s definitely still a young project, but as Espresso’s API improves and as I get more comfortable with Cocoa GUIs I’m hoping to make it significantly easier to extend Espresso, customize shortcuts, add your own actions, etc. (currently you can do most of this stuff, but it requires coding XML, hacking files in the TEA sugar itself, etc.).
§ Ian Beck · 02 June 2009
Cool, I didn’t know about TEA (I’ll give Espresso a try again with it).
§ Bruce · 02 June 2009
I’ve been trying to use Espresso + TEA for the past few days but have found the app to be laggy and sometimes unresponsive. For instance, just moving the I-beam via the arrow keys is (not “feels”) much slower than in TextMate.
§ Sean · 12 June 2009
That’s interesting because I’ve had a similar slowdowns in Coda with relation to the I-beam. Also there have been times when “code-completion” starts to show and then my system completely slows down. I’ve walked away and come back and then things where fine and back to normal. I agree that Textmate definitely feels more responsive. I wonder if there are some memory leaks in these two apps or something along those lines. Thanks for the update.
§ Joshh · 13 June 2009
What about Google Docs ? Call me ignorant, but I’ve found that for regular text editing, it is both fast, reliable and has all the tools I need.
§ Zegarki na reke · 07 July 2009
FWIW I tried Espresso again and am finding it more productive that Textmate. I’m using it mostly for web development, which it does really well (I still use Textmate for viewing diffs and shellscripts). Thanks for the nudge!
§ Bruce · 21 June 2010
I would prefer that the latest version of TEA must be upgraded. I’m actually a big fan of text mate but those block level undo’s must be upgraded because it is very lack of “block” Thanks for the post and comments im reading all your posts and it was helpful give me some more options also.
§ Jordan · 22 October 2010