Earlier this evening, I wanted to dust off some JavaScript code I’d written a little while ago. The editor I’d used while writing it initially was TextMate, which I’d liked okay but not enough to convince me that it was worth spending fifty bucks on once the trial period expired. So I opened up the code in Emacs, and started reading around in it.
And then I started making changes, at which point I hit the tab key, and Emacs indented the line by four spaces. The problem is, the file used two spaces for tabs. But I’ve done this enough times, surely I can quickly figure out how to configure this? Let’s see: C-h tab-width looks promising, but it has the value 8, so surely it isn’t relevant. The first answer while googling mentions c-basic-offset, which sounds just dubious enough (that c- prefix) to be right; but its value, rather than being a number, is “set-from-style”.
At this point, I have a few options. I can set c-basic-offset to a number, to see if that works, and then figure out the appropriate mode hook to do that for me. I can figure out what set-from-style means, to do it right. I can do more googling, to find a better answer.
But, I think, the best answer is: realize that I have better things to do with my life than to put up with that sort of user interface crap. (Or with the absolute joke that is Emacs’s “Preferences” menu item.)
(Another charming instance of Emacs’s user interface: on a lark, I thought I might as well go through the motions of looking through menus, though I’d be shocked if anything relevant was found there. And, of course, I didn’t find anything relevant; but what I did discover was that one of the menu options was “Read Mail (with RMAIL).” How many people in the entire freaking world are using RMAIL? Is there even one such person? I read my e-mail in Emacs for a very long time, but even I moved off of RMAIL more than a decade before I gave up on reading e-mail in Emacs.)
So, I guess, that’s the reason why I’ll buy TextMate: because I want an editor that doesn’t have an actively hostile UI (and no, don’t suggest vi, its UI is at least as hostile), that can be used for programming, and that isn’t as super-bloated as IntelliJ or NetBeans or Eclipse or whatever. (Admittedly, I haven’t used NetBeans and Eclipse much, so maybe I’m mischaracterizing them. But I doubt it.) $50 still seems like a ridiculous price to pay for it, and I’m worried by its apparently stalled development, but it has enough supporters that maybe it has virtues that I’m missing? If anybody has other editor suggestions, though, I’m all ears.
Post Revisions:
This post has not been revised since publication.
I use TextWrangler, which is free. It has pretty much everything I need, including context highlighting based on language, and it rarely gets in my way by remapping key functions (such as turning TAB into SPACE-SPACE). Of course, I only write code about 20% of my time. I have other tools I used for blog posts and long-form writing, but TextWrangler is where I do pretty much everything else.
12/1/2010 @ 11:18 am
Thanks for the suggestion, I’ll definitely give that a look.
12/1/2010 @ 12:02 pm
OMG! You are really getting old!
12/13/2010 @ 11:53 am
Discoverability has always been Emacs’s weakest point. The C/C++ indentation machinery is designed to allow people to easily switch between pre-packaged styles (with C-c .), but not so much to encourage tweaks to existing styles.
It’s a consequence, I think, of allowing people to add features without treating customization as part of the UI.
12/22/2010 @ 3:16 pm