My current editor usage (as of mid 2023)

May 28, 2023

I use three (Unix) editors on a regular basis, and there's a story or two in that and how my editor usage has shifted over time. For me, the big shift has been that vim has become my default editor, the editor I normally use unless there's some special circumstance. One way to put it is that vim has become my editing path of least resistance. This shift isn't something that I would have predicted years ago (back then I definitely didn't particularly like vim), but looking back from today it feels almost inevitable.

Many years ago I wrote Why vi has become my sysadmin's editor, where I talked about how I used vi a lot as a sysadmin because it was always there (at the time it really was more or less vi, not vim, cf). Why vim has become my default editor is kind of an extension of that. Because I was using vi(m) all of the time for sysadmin things, learning new vim tricks (like windows or multi-file changes) had a high payoff since I could use them everywhere, any time I was using vim (and they pulled me into being a vim user, not a vi user). As I improved my vim skills and used it more and more, vim usage became more and more reflexive and vim was generally sufficient for the regular editing I wanted to do and usually the easiest thing to use. Then of course I also learned new vim tricks as part of regular editing, improving my sysadmin vim usage as well, all in a virtuous cycle of steadily increasing usage.

My vim setup is almost completely stock, because I work in too many different environments to try to keep a vim configuration in sync across them. If I customized my own vim environment very much, I would lose the virtuous cycle of going back and forth between my vim environment and the various other standard setups where I'm using vim because it's there and it works. I do customize my vim environment slightly, but it's mostly to turn off irritations.

My second most frequently used editor is my patched version of an X11 version of Rob Pike's sam editor. Sam is the editor that my exmh environment invokes when I use it to reply to email, and I still read and reply to much of my email in exmh. In theory it wouldn't be too hard to make exmh use vim instead (in an xterm); in practice, I like sam and I like still using it here. However, when I write or reply to email from the command line with NMH commands, I edit that email in vim. I sometimes use sam for other editing, but not very often, and sometimes I'm sad about this shift. I like sam; I just wish I liked it enough to stubbornly stick with it against the vim juggernaut.

My third most frequently used editor is GNU Emacs. GNU Emacs is what I use if I'm doing something that benefits from a superintelligent editor, and Magit is extremely compelling all by itself, especially with Magit's excellent support for selective commits. Apart from Magit, my major use for GNU Emacs is working with Go or Python, where I've gone through the effort to set up intelligent LSP-based support for them (Go version, Python version), as well as various additional tweaks and hacks (for example). If I had cause to do significant editing of C code, I'd probably also do it in GNU Emacs because I have an existing C auto-indentation setup that I like (I preserved it after blowing up my ancient Emacs setup). I still consider GNU Emacs to be my editor of choice for serious code editing (more or less regardless of the language), for various reasons, but I don't do very much programming these days. If I had to read and trace my way through Rust code, I might try doing it in GNU Emacs just because I have the Rust LSP server installed and I know how to jump around in lsp-mode.

(Today I mostly use GNU Emacs over X, because all of this LSP intelligence really wants graphics and various other things in order to look nice. GNU Emacs in a black and white xterm terminal window is a shadow of itself, at least in my configuration.)

My use of GNU Emacs stems from history. I used to use GNU Emacs a lot, so I built up a great deal of familiarity with editing in it and customizing it (my vim familiarity is much more recent). I use GNU Emacs enough to keep that familiarity alive, so it keeps being a decent editing environment for me. The same is true of my sam usage; there was a time when I used sam much more than I do now and I still retain a lot of the knowledge from then.

I'm sentimentally fond of sam, even if I don't use it broadly; it still feels right when I edit messages in it. I'm not sure I'm fond of either vim or GNU Emacs (any more than I am of most software), but vim has come to feel completely natural and GNU Emacs is an old friend even if I don't see it all that often. I feel no urge to try to make vim replace GNU Emacs by adding plugins, for various reasons including how I feel about doing that with vim (also).

(This expands on a Fediverse post, which was sparked by Jaana Dogan's mention of Acme, which linked to Russ Cox'x video tour of Acme.)

Written on 28 May 2023.
« How I set up a server for testing new Grafana versions and other things
System administration's long slow march to configuration automation »

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

Last modified: Sun May 28 22:26:12 2023
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.