In Search of The Perfect Editor

I’ve been searching for the perfect editor ever since I started programming. I’ve found many along the way which have worked to get the job done, but I’ve never really found “The One True Editor.”

Yes, I have used Emacs, and no, it is not it. There are many things I enjoy about Emacs, but there are many things I dislike, and recently Emacs got to the point for me where the bad outweighed the good. I could write a whole post on why I’ve forsaken Emacs, but I’m not going to.

I’ve found a couple of editors which meet my minimum requirements of being small, simple, and easily extendable. They also have some cool features built in, which always helps.

Minimum Profit

Minimum Profit is “A text editor for programmers” which comes with some pretty good default settings and features.

You can do everything from the keyboard, which is a must for me. Even more importantly, you can remap keys to anything you’d like, and even add custom functionality through a built-in scripting language.

Most of the editor itself is written in this scripting language, so there’s a ready source of examples for how to do things. It also makes it really easy to modify the editor to your liking. You can pull out entire pieces of the editor and replace them with your own.

I’ve already written scripts to change the behavior of most of the common editing keys. From what I’ve seen on the mailing lists, the creator is also quite open to taking contributions to the project, so I may even suggest some of my new behavior to be added into the project defaults.

Minimum Profit wasn’t my only candidate for preferred text editor, but it’s winning out at the moment, partly due to the fact that it doesn’t have too many dependencies (only Cursesw and/or GTK+, that’s it!). I couldn’t get the main dependency for my second choice to even compile on my home machine, so that stopped me from being able to fiddle with it in my free time and kind of sealed the deal for MP.

It doesn’t have all of the features in my list below, but it has the most important ones of being ultimately configurable and not forcing me to use the mouse.

Scribes

Scribes shows a lot of promise. It’s written in Python, which automatically puts it higher in my list, and it has a plugin system for extending it. Most importantly, it can be used completely from the keyboard.

Unfortunately, it also has a downside: It has too many dependencies.

That’s not too long of a list, or so it seems at first. Until you realize that this basically means you need to have most of GNOME installed to run this editor. I don’t want to install GNOME, I don’t use GNOME, I don’t use full desktop environments, I just use a window manager (more on that below).

More unfortunately, my current distro of choice, [Gobo][], doesn’t come with GNOME support by default. Sure, there are GNOME packages, but they aren’t very well supported and don’t have the proper dependency lists, which requires me to figure out what all of their real dependencies are, and with GNOME, you have to be sure to get compatible versions of everything, which isn’t always clear.

In short, it’s a huge pain in the ass and makes me not want to even try this editor, which is sad, since it has some really nice features like bookmarks and snippets. It doesn’t have everything I want, but it has a plugin interface and I bet I could have added the necessary features without too much trouble.

The moral of the story here is that I shouldn’t have to install an entire desktop environment just to run a text editor. It’s ridiculous.

The perfect Editor

Right now, I’ve got an idea in my head about what features the perfect editor would have.

The perfect editor would have the following attributes:

What else?

Now, the features listed above are things I always like to have when I’m programming, but I’m almost positive that I’m missing a few of the essential features of the perfect editor.

Why am I missing them? Because they haven’t been created yet, or I’ve not heard of them, at least.

That’s one of the problems with software. Maybe one of the reasons that some software keeps sucking despite massive improvements is that there’s a better, more intuitive way to do it, but nobody has discovered it yet.

I’m going to stick with Minimum Profit for the time being, adding all of the features that I feel it needs the most, and a few new ones for experimentation. Who knows? Maybe I’ll stumble upon the way to make the perfect editor.

blog comments powered by Disqus