Editors on Mac OS X

Introduction

I'm fussy when it comes to editors, I can never seem to find the perfect one. This, then, is a review of the various editors out there, as I search for a new one.

The choices

Criteria

Method

The test was simple - try editing this very page in each of the editors. Memory consumption was guestimated using OS X's Activity Monitor, looking at the value for "Real Memory" usage.

If I mark a particular criteria as '?' it means the product was so tediously unfriendly I never investigated it; I'm sure some editor sycophant will let me know.

The Editor Rundown

Nano

LicenseFLOSS
PriceFree
Edit areaTerminal
FontsDefault terminal font
Split screenNo
Syntax highlightingNo
Text foldingNo
Code completionNo
XML checkNo
IDE featuresNo
Footprint6.7mb
SCMNo
OS X integrationNo

I use the fink nano package.

Yeah, you're right, I'm not seriously proposing to use nano for anything more than very casual quick edits. It's nice and friendly but not built for full-time editing.

Interesting to note that it only uses 6.7mb with the two test files loaded. Probably because it does nothing fancy or useful.

Vim

LicenseFLOSS
PriceFree
Edit areaTerminal
FontsBroken terminal font
Split screenYes
Syntax highlightingYes
Text folding?
Code completion?
XML check?
IDE features?
Footprint23.92mb
SCMNo
OS X integrationBarely

Ah, vim ... most useful of tools, it can be depended on to be on any unix-like machine anywhere, a handy fall-back if all else fails. That's exactly the problem though: it's useful to know but only as a fall-back. It lacks all the advantages of a modern GUI interface.

So, out of the box it has a nice small font, decent syntax hightlighting and integration with OS X for opening files. No Apple-S saving here though, and we have the mode-driven GUI: 'i' to insert, escape, then :w to write. Not exactly friendly.

We can split windows, and memory consumption is low ... probably because not much is going on. There's some unfortunate display corruption going on though - I don't think the default font is too happy.

Memory consumption: approx 23.92mb

Emacs

LicenseFLOSS
PriceFree
Edit areaWindowed
FontsBuilt-in font
Split screenYes
Syntax highlightingYes
Text folding?
Code completion?
XML checkYes
IDE features?
Footprint16.54mb
SCM?
OS X integrationBarely

I used Emacs for OS X 10.3 Panther 29/05/2004 build.

First impressions of Emacs is that it isn't too horrific. I used an Emacs derivative years ago on the Amiga, which is why I have split-screen addiction. At least the OS X version has some icons, looks presentable out of the box, and is reasonably usable straight away.

Another plus is that it's obviously capable of XML/SGML validation etc., I can see it checking tags when I open/close them.

Downside #1: fonts. The only available font sucks, which means I probably need to dig through the fine manual to find out how to add more, or make it support OS X native fonts if possible.

Downside #2: not proper Aqua GUI.

Split screen works well, but only horizontal splits AFAICT. I can probably achieve vertical splits by opening new windows. That's not so bad - the window furniture is fairly minimal, so no great overhead.

Downside #3: Keyboard shortcuts are cumbersome. Unixy CTRL-A for start-of-line and CTRL-E for end-of line work fine, but Apple-S for save doesn't... I need to do CTRL-X CTRL-S. Not good.

I guess I could live with this editor if I invested the time in using it. Memory consumption is low, and it's fast. It handles large text files easily (eg 70k+ lines), where programs like subethaedit think for ages.

Here's a killer: no integration with native OS X clipboard. Next editor, please! Ok, so CTRL-Y is paste from current clipboard ... I didn't realise because the menu option was greyed out. Unintuitive. Next editor!

Memory consumption: 16.54mb

TextWrangler

LicenseProprietary
PriceFree
Edit areaWindowed
FontsMac fonts
Split screenOnly with one file in view, only one split
Syntax highlightingYes
Text foldingNo
Code completionNo
XML checkNo
IDE featuresNo
Footprint40.59mb
SCMNo
OS X integrationGood

I got this from The Barebones Textwrangler page.

This was my great chance to get much of the features of BBEdit for none of the price. It didn't work - it screwed up by overwriting some stuff, and I can't trust it any more.

It looks good, has a great font, once you get the hang of the documents drawer and drag-n-drop placement of files in it, you can be really productive. But if I can't trust it, none of that matters.

Memory consumption: 40.59mb

JEdit

LicenseFLOSS
PriceFree
Edit areaWindowed
FontsMac fonts
Split screenComprehensive
Syntax highlightingYes
Text foldingYes
Code completionYes
XML checkYes
IDE featuresSome
Footprint61.85mb
SCMSome
OS X integrationBad

I used the Mac OS X distribution of JEdit from the main JEdit web site.

Here's the thing: I've used JEdit probably more than all the other editors combined. I like it, but at some point I got fed up with the lack of speed, and the memory consumption.

It's definitely a powerful editor. It does syntax highlighting, tag completion, split screens whatever way you want.

The Mac OS version of the interface is just horrible. Things like the file window look totally out of proportion and just plain wrong. The Metal interface is more acceptable, but really doesn't look at home on the Mac. Using it seems to give a bit of a speed boost though.

Memory consumption with the two test files is 61.35mb ... see what I mean? To be fair, there's a whole JRE chugging away in the background, but it's still more than any of the other editors. There's a huge overhead if you've got a dozen files open. But maybe that's the cost of productivity?

The other problem I've had with JEdit is spotty unicode support (ironic for a Java editor, you'd think it would get that right ...). If you're using the Mac OS X Look and Feel, by default it extends that to loading and saving in MacRoman format. Ouch.

BBEdit

LicenseProprietary
Price$199
Edit areaWindowed
FontsMac fonts
Split screenOnly with one file in view, only one split
Syntax highlightingYes
Text foldingYes
Code completion?
XML checkMinimal
IDE featuresSome
Footprint46.85mb
SCMSome
OS X integrationGood

I used the BBEdit demo from BareBones.

This editor is the stuff of legend. I can remember being told about it years and years ago, and most long-time Mac addicts seem to use it. Trouble is, I think they are the only ones that can afford to. I assume some time in the distant past this editor was priced reasonably, and everyone just upgrades since then.

I do actually really like this editor as it has all of the benefits of TextWrangler and has never misbehaved.

It only has half-hearted XML support though: you can configure a menu/keyboard shortcut to close tags, but that's your lot.

You can't split a single window, but I think the idea is you have multiple windows open and arrange them as you see fit. In earlier versions (and in TextWrangler), arranging didn't work too well with the documents drawer, but it seems just fine in the current BBEdit.

It's one hell of a text editor ... but that's pretty much where it stops. Most other editors these days have support for predictive text (eg Java classnames), full XML support, etc. Perhaps I'm missing something in the BBEdit offering?

Memory consumption: 46.85mb

Eclipse IDE

LicenseFree-ish?
PriceFree
Edit areaWindowed
FontsSome Mac fonts
Split screenPartial
Syntax highlightingYes
Text foldingYes
Code completionYes
XML checkGood
IDE featuresExcellent
Footprint81.63mb
SCMExcellent
OS X integrationGood

I used the Mac build of Eclipse 3.0.1 for this test.

You know, I just don't think I write enough Java to make Eclipse worthwile for me.

To make things a bit more balanced, I installed the XMLBuddy plugin which gives me some reasonably nice tag completion and highlighting - actually, VERY nice tag completion - better than any other editor, out of the box.

Eclipse's integration with SCM solutions is pretty good, and I've worked with it before. It's great for editing Java. But it's one hell of an overblown editor ...

Memory consumption: 81.63mb

TextMate

LicenseProprietary
Price€29
Edit areaWindowed and tabbed
FontsMac fonts
Split screenOnly through multiple windows
Syntax highlightingYes
Text foldingYes
Code completionYes
XML check?
IDE features?
Footprint40.56mb
SCM?
OS X integrationGood

I used version 1.1b5 of TextMate.

This is the pinup poster child of the editing revolution, or something. It got a whole load of recognition when it appeared in That Video, and has been going from strength to strength ever since. Strange, then, that I only have serial number 1053... mind you, £28k for writing an editor is pretty good going!

I'm curious to see how TextMate fits in the price/performance curve. It has a lot of the good things about BBEdit, and could potentially steal a large part of Barebones' market.

I like that TextMate looks pretty darn good straight out of the box. Very very Mac, more so than BBEdit even. I've already found a "close tag" keyboard shortcut, which rocks. And ooh! It just completed my "quotes" for me! Nice!

The project interface combined with the tabbed interface I think works well. Tabs are one of the things I liked in JEdit.

Here's a downside though: it doesn't like my 'rather large' test file (70k lines, 4mb). None of the other editors struggled to load it, but in TextMate there's a definite pizza wheel when it opens it. Once the file is open, things are speedy enough though.

Another minor niggle is that the next/previous tab keyboard shortcuts collide with DesktopManager. As DesktopManager was out long before TextMate, I think TextMate should defer to it and pick different shortcuts ...

A major niggle: looks like TextMate is misbehaving with the encoding :-(

Memory consumption is 40.56mb ... though worryingly, it progressively grew as I scrolled up and down several times in the open windows.I get the feeling there's some leaking going on there.

SubEthaEdit

LicenseProprietary
Price$35
Edit areaWindowed
FontsMac fonts
Split screenNo
Syntax highlightingYes
Text folding?
Code completionNo
XML checkNo
IDE featuresNo
Footprint30.98mb
SCMNo
OS X integrationGood

I used version 2.1.1 of SubEthaEdit.

The best thing about SubEthaEdit is the collaborative editing you can do in it. It's a fairly sweet editor, but it's also fairly minimal. It looks ok and is a good example of a properly Mac editor, I guess. It sucks at large files though - expect pizza wheels if you're editing one.

It does behave well with different file encodings, and allows you to switch between encodings and convert your file along the way. It doesn't handle it nearly as well as BBEdit though, which is the king of encodings.

Memory consumption: 30.98mb, but it seems to aggessively free up memory - scrolling through a large file memory usage goes up, stop and it drops quickly.