Text 1 Jun Yet Another Textmate/Emacs Rant

Yes, Textmate Again

I’ve written several times now about Textmate and how I wish I could use it (in fact, I think my third post here was about that). Well, I’ve decided to once again do a little rant about Textmate, Emacs, and my inner conflicts. Onwards and downwards…

So, Why?

So, why am I putting myself through this? Good question, I’m trying to figure that out myself. I think part of it may be that I particularly enjoy learning new bits of software. More importantly though, I feel that it’s important to avoid complacency — while I may be very effective with Emacs at this point, I don’t want to just stick with it and assume that there isn’t anything better, just because it’s what I’m comfortable with. Complacency, standing still, is death.

But I Thought You Hated It?

Yeah, I thought I hated it too, but I think I just failed to really give it a fair shake. After all, I’ve spent years and uncounted hours tweaking and customizing my Emacs to perfection; it seems unfair to only give Textmate ten minutes before giving up on it. I’ve found, for instance, that it is possible to override some of the keybindings that were bothering me with macros — e.g., I realized I can use a macro to bind ⌃J to newline, which takes care of one of my ingrained muscle-memory habits (the other big one is that I want ⌃H to be backspace, but that’s bound to “Help” for basically everything, which means I’d need to set it everywhere (at least I think that’s how it works)).

But Still, Why?

So why do I keep coming back to Textmate in particular? Is it seriously just because it’s so shiny and gorgeous-looking? Well…that may be part of it; I spend most of my time in my text editor, and if I’m going to be staring at something all day, I’d like it to look good. There is more than that to it though, I think. For one, Textmate has much, much better support for intermingled modes — e.g., properly font-locking HTML with CSS and Javascript inside, or template languages that are mostly HTML but with Python or Ruby code inside. Not only can Textmate properly fontify it (and yes, I know Emacs has things like mmm-mode and mumamo, but I’ve never been able to make them work satisfactorily), but Textmate’s bundles can act contextually, based the structure of the code you’re editing. For example, using the Markdown bundle, ↩ in a header will close the header, while in a list it’ll add another bullet. This is something that I don’t really think Emacs could do without a substantial amount of work, if ever (although I hear rumours that the Elisp engine may be replaced with Guile Scheme, which would be insanely sexy and may open up opportunities).

I guess it boils to two things: Firstly, that I fear stagnation more than pretty much anything else. Secondly, I want to see what the advantages are for an editor that, while perhaps not as mature, has less historical baggage (Elisp’s dynamic scoping, I’m looking at you). I’ve managed to write this whole entry in Textmate, and I’m feeling okay about it. I’m not sure that I could ever fully switch — magit and dired are two irreplaceable things that immediately spring to mind — but I could see myself using Textmate for certain types of things in the future. And hey, maybe Textmate 2 will add point-and-mark style region selections and split buffers and then I’ll be happy as a clam.


Design crafted by Prashanth Kamalakanthan. Powered by Tumblr.