Here is one of my little peculiarities: for all that I use it a lot, I don't really like vi . I use two or three editors on a routine basis (and at least one more every so often), and out of all of those, vi is my least favorite. But it is also the editor that I use the most, because over time it has become what I'll call my sysadmin editor.

Why I have drifted into using vi all the time is a roll call of its virtues as a sysadmin editor. First, it is ubiquitous; if I am on some random, un-customized system, I know that I can type vi and get something usable. Second, vi works in minimal environments, in that it doesn't need X, and will thus work fine over basic ssh connections and on the console (either normal or serial). Finally, vi starts fast.

You are probably laughing at the last advantage, but it matters a lot in a sysadmin's editor because of two factors: sysadmins make lots of little edits to separate files, and we do this on a bunch of different machines and accounts. An editing environment that takes ten seconds to initialize is appreciably less useful than an one that starts in under a second, because those ten seconds can be an appreciable portion of the time I'm going to spend in this editing session.

This usage profile is basically completely opposite that of most people, who edit the same things for a long time in a single, well developed and customized environment. Which is why, for me, vi is a great sysadmin editor but not my favorite editor; in any environment besides sysadmin editing, its relative weaknesses start showing up more and more.

(Despite this, because I've used vi so much for quick sysadmin editing jobs I've wound up drifting into it more and more for casual but more extended editing. It's usable enough (and I know it well enough) for such editing, and it's often just enough of a pain to fire up a better editing environment that I don't bother. Thus I wind up doing things like dashing off quick email messages or even writing WanderingThoughts entries with it.)

Sidebar: Why sysadmins don't just leave a big editor running

The usual big editor retort to the slow start problem is 'just start the editor once', but that doesn't work for sysadmins because we edit files in lots of different contexts. An editor for every context is an unfeasibly large number of them, and that assumes I am willing to leave editors running as root just in case I need them again, which I'm not (like most sysadmins, I get out of privileged contexts as fast as possible). Some editors try to let you access files on other systems with other logins, but this is infeasible for sysadmins for various reasons (including that I am not going to trust any editor with our root password).