[[!tag programming]]

One of the first ambitious programs I wrote when I first started programming was a full screen editor. I was using a Luxor ABC-802 microcomputer (an office version of the more well-known ABC-80), and it's built-in BASIC. The BASIC itself was pretty nice, but the editor was abysmal. It was line-based, and very poor even for a line-based one.

When I moved to a PC, I started using editors made by others. Likewise, at university, when I started using first VAX/VMS and then various flavors of UNIX. I went through at least QEdit, Micro-Emacs, ed, GNU Emacs, and vi, in roughly that order. That journey took about eight years. Then in 1992 I started writing my own editors again. I wrote two for text terminals: Lasu's Own Version of Emacs (or LOVE), and Better Editor (or BED).

Then Linux got far enough to support X, and I wanted a GUI editor. I used at least Xedit, although only very briefly, and aXe, until I decided that they were all bad. So I wrote my own, again. I called it the Simple editor for X (or SeX). I deny any intentional naming scheme.

I was happy with SeX for about ten years. It was quite simple, not particularly powerful, but what it did, it did well. Then in 2003 I wanted to switch to Unicode, and that would have meant very heavy changes to SeX. So I abandonded it.

For a brief while I went back to vi, in its vim incarnation, but vim did not feel right: I cannot say exactly what happens, but sometimes when I'm using vim, and typing commands very fast, vim does something utterly surprising, and sometimes I only notice it several seconds later. It might be something as small as the cursor being in a different place after a command than in the vi I first used, but it's there. Vim is a very nice editor, but my fingers want the vi they first met.

Then, during Xmas, I played with PyGTK and hacked up a very rough editor, which I called sex.py. I've used it since, with some improvements. But now I've grown tired of maintaining it: I never finished sex.py, in the sense that it is polished. I would be embarrassed to show it to anyone else, even though it has worked well for me these past five years.

I'd like to use an editor where other people do the heavy lifting of development. I wouldn't mind using a mainstream editor, so that there's plugins and extensions and whatnot.

After looking around, there's a pretty short list:

  • vim, if I can get my fingers to adapt to it. I'm not sure anything based on modal editing works well as a GUI, but we'll see.
  • Emacs, if I can get my fingers to keep track of when to use its keyboard language and when to use GNOME's. Emacs will also need quite a bit of customizing, I'm sure, but I guess its Lisp can't be that hard to learn.
  • Gedit, if I can hack it to fix a few things (indentation size de-coupled from tab width, inserting tabs into text, smart paragraph re-formatting), which seems reasonably low-effort.

I've been switching between these editors the past few days. None of them feels like an extension of my brain, yet, or particularly friendly. I have no idea what I will choose.

Any suggestions would be welcome.

Edit: Old discussion page.