andrew.hedges.name / blog

skEdit, The (Mostly) Perfect Text Editor

September 20, 2006, 9:20 am · Filed under: New Mexico, Web Development

I’m crazy about skEdit. I use it every day in my work here at Clearwired. It replaced for me BBEdit, which I had been a paid user of for several versions. (I still keep BBEdit 8.0 around, but I only use it for finding diffs between documents.) I like skEdit so much that I gave it an unsolicited plug in a recent podcast segment.

skEdit has some great features including the following:

Granted, my needs are relatively modest. I spend most of my time coding in HTML, CSS, JavaScript and Python. Making the claim that X, Y or Z is the perfect text editor is—to be brutally honest—a flagrant attempt to drive traffic to the site. Let the flame wars begin!

I do love skEdit, but one thing drives me bananas. (I have some other nits to pick, but this is the biggie.)

Double-click on a word in skEdit and drag it somewhere. If the word had a space immediately preceding it, skEdit also erases that space. This is called Smart Insert and Delete and you’ll find it in most word processing applications on the Mac. In the context of a word processor, this feature makes sense and works pretty well.

This “smart” behavior (a feature of Cocoa’s NSTextView) has no business being enabled in a text editor. When you’re coding and you want to cut a piece of text, you don’t want the editor also deleting whitespace. Not cool. Whitespace is often as important as non-whitespace to a programmer (this is especially true if, like me, you code in Python where indentation matters).

What really doesn’t make sense to me is, according to the release notes for version 3.6.1, while smart cutting is enabled (at least in most cases), smart pasting is not. I mean, if you’re going to be clever, why only go halfway?

I wrote Sean Kelly, the developer of skEdit, and asked him, “Any chance you can change this in the next version (or at least make it a preference)?” So far, no response. To give Sean the benefit of the doubt, maybe this is a really tough thing to work around if your app is Cocoa-based.

The next biggest issue for me is that you can only have one remote connection open at a time. It’s great to be able to connect to a remote server using SFTP (or FTP or WebDAV) and edit files directly, but why is it so hard to have multiple concurrent connections open? This isn’t a huge deal, but once in a while it rears its ugly head.

The rest of the Clearwired crew uses TextMate (well, except Kevin, he’s still deciding between skEdit and TextMate). They seem to like it a lot, but most of them also don’t mind spending a little time in vi now and again. (I’m a pico kind of guy, myself.) As Daniel says, “It’s just a text editor.” My perspective is, when you spend 8 (10? 12?) hours a day in it, it had better not make a nuisance of itself. Then again, Daniel also knows a guy who uses Emacs to AIM. To each his own…

Update (2006-09-21 16:33): After posting this, I (finally!) got an email from Sean Kelly, developer of skEdit. He says he will be addressing my concerns about smart cut and paste in the next release. Thanks, Sean!

This entry was first published on The Loop, the blog of my former employer, Clearwired Web Services.