One root of my problem with GNU Emacs

June 27, 2012

I have a GNU Emacs problem. It is at least sort of one of the reasons that I don't use GNU Emacs as much as I could.

The origin of my problem is that back what is now two decades ago (in the days of GNU Emacs 18) I was very into GNU Emacs; in fact, you could say that I was immersed in it. Then, slowly and for various reasons, I drifted partly away from GNU Emacs and especially had little contact (at least that I remember) with versions after version 18.

(I have a vague and possibly incorrect memory that many of the systems I used stayed on GNU Emacs 18 for close to a decade for various reasons.)

Those of you with GNU Emacs experience probably understand the problem now. You see, when you are deeply immersed in GNU Emacs, one of the things that happens is that you build up a bunch of personal ELisp code and .emacs customizations; you almost can't not do this. I was no exception and since I was young and enthusiastic, I wound up with quite a pile. All of which was written for GNU Emacs 18.

For those of you who have never used it (which would be almost everyone), let me assure you that GNU Emacs has changed a lot since version 18, including the ELisp environment and the effective GNU Emacs 'API' that your ELisp uses. If I had stayed immersed in progression of GNU Emacs versions over the two decades since version 18, this would be no problem; as an active user, I would have been on top of the waves of changes and progressively forward-ported or modified all of my pile of ELisp to accommodate them.

Instead, I am more like Rip van Winkle. The past two decades of GNU Emacs evolution plus my neglect have left me nursing a (reduced) tottering pile of ELisp code and .emacs hackery, much of which I barely remember any more. My code and customizations are probably doing things the wrong way now and sometimes probably the wrong thing to boot, but I'm too out of touch to know what the right thing is any more. In turn this mess feeds my disengagement from GNU Emacs (and discourages me from trying to fix any of the bits that irritate me about editing various things in GNU Emacs).

I suspect that the right solution to this mess is a rewrite from scratch; throw out my existing, hacked up .emacs and all of my remaining ELisp code, then redo everything that I still need or want. The good part of forgetting much of what I once knew about GNU Emacs programming is that I will have no choice but to look everything up in the current documentation (and thus I will get current information about how to do things right).

The downside of this, and why I shy away from the very idea of it, is that it will make using GNU Emacs painful for a while and require me to spend a bunch of time immersing myself in it again, all in order to return me to more or less where I am today.

(This would be a much easier sale if I was convinced that GNU Emacs was the editor I wanted to use all the time, but I'm not. And just pragmatically I'm always going to use vi a bunch no matter what editor I actually like best.)

PS: this problem would not be improved by using an IDE instead of GNU Emacs. If anything, an IDE would make it worse and GNU Emacs has actually been remarkably stable over those two decades. I'm pretty sure that there's no active, currently maintained IDE where you could basically ignore the past decade of new versions; instead, I'd expect that you'd pretty much have to start all over from scratch if you tried to jump from a decade old version to the current one.

Comments on this page:

From at 2012-06-27 14:32:23:

I absolutely agree with the "throw it all away" idea.

If you want to use emacs for things then you can start from nothing and fix the things which annoy you on the way (which is how you got to the pile of emacs lisp previously, I expect).

If you use vi(m) and don't find yourself wanting then stick with that, or do the same add-fix-customize dance with vim. No-one is going to make you use one over the other (as far as I'm aware), and you can find an approximately equal number of people who will evangelize about either of them.

I find myself in a confusing centre ground, as I use Emacs (23.whatever it is now) with a load of customizations, but using "viper" to give it vi keybindings as I greatly prefer them, and using "tramp" to edit files on remote systems to avoid the startup delay and the need to transport around my config (to where my homedir is different, or to root editing of files, and so on).

Good luck, whatever you choose :)

Written on 27 June 2012.
« A little gotcha with SSH connection sharing
Why I don't like implicit string interpolation »

Page tools: View Source, View Normal, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Wed Jun 27 03:01:06 2012
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.