or learn more

A Text Editor

May 19, 2004

As I type this text in Pico, I can’t help but feel that something isn’t right. That is, something definitely doesn’t feel right about Pico itself. All of my life I’ve lusted after the perfect text editor, yet to this day I remain frustrated. I’ve gone through the motions of course: vi, emacs, vim, notepad, wordpad, abiword, pico, nano, ed, e3, elvis, hotedit, jed, kedit, jedit, joe, bbedit, writer, electric pencil, wordstar, golded, blah blah blah blah blah. At the moment, I seem to have settled on Pico and Vim, but something still does not feel quite right. The source of my itch lies in the fact that while I am a very laid back dude in most respects, I am insuperably anal about the inner workings of my computers and my interaction with them. Couple this mania with the need to write code and data, and I become utterly detestable. My computers have to be positioned a certain way, directory hierarchies must conform to ‘the one true’ way (more on this another day), only certain programs are allowed access, all ports are closed, and only certain color schemes are acceptable. This behavior is sub-optimal. Sadly I am past the point of no return and have to learn to deal with it in some way. At the moment my only relief is in ranting. My ideal text-editor therefore would consist of the following features, and only the following features:

0) Portable. I use many different systems running many different OSes during any given week: SunRays running SunOS, Redhat 7.2-9.0, Solaris, OSX, Windows, NeXTStep, BSD, and Irix. I need my editor to be available on any and all platforms.

1) Plain ASCII. I abhor RTF, and have absolutely no need for something that feels the need to present html as a half-hearted translation.

2) No tabs please. Granted I would like to use the tab key, but I do not want it to insert anything but space. There is nothing more annoying to me than opening beautifully written code and having it appear as an eight-space-per-tab abomination.

3) Scripting. I personally cannot recall the last time that I wrote a script for some kind of automated task or another within a text editor, however this is not due to lack of need. Emacs has perhaps the best scripting available, but that feature is not enough to save face. Emacs is a beast… WTF is a meta-key anyway? Should I really have to track down a Space Cadet Keyboard just to type some text? But I digress…

4) Unlimited file size. I am a bit old fashioned when it comes to debugging code. If I wish to see the state of a running program that I’ve written, then I tend to output a gaggle of status text at chosen intervals within the code, and simply see on which text errors occur. For even reasonably complex systems the files tend to get huge very quickly.

5) Regex. Because I tend to debug as mentioned previously, I would also like a method for performing powerful searches within documents.

6) Automatic versioning. I tend to change my mind often. Likewise, I tend to change my mind back again. Therefore, it would be nice to have an autoversioning program. That is, as I create, revise, and delete new text data, I would like an automatic history of the changes recorded automatically so that I can rollback to previous versions or extract from then as I see fit.

7) Syntax coloring. Nuff said.

8) Column guides. I recently saw an interesting approach where very discrete lines were used to show how columns within a text document aligned. I want that.

9) Lightweight. No bells and whistles. Please, do not take all day to load, and please do not run at a snail’s pace.

I’m sure that I’m missing a few key features, but the above represent the bare minimum. All of the above have existed in some form or another within some editor or another, but never in one place at once… As far as I know. I guess if I want it, then I must write it myself. One day perhaps… One day.

And don’t even get me started on hex editors.

No Comments, Comment or Ping

Reply to “A Text Editor”