VimFeaturesThatHookedMe

By admin
Over on the

Fediverse
PERSON

there was a little Vim versus Vi discussion, and in response to seeing it I posted something:

I used to be a minimal vi user. Over

the years
DATE

I’ve drifted to being a not so minimal vim user, and I think the vim features that I’m now addicted to are: infinite undo and redo (and a tree view of undo)

unlimited backspacing in insert mode (true vi only lets you backspace so far)

vim windows, which let me have multiple files on screen at once (this used to be vi’s big limit versus

emacs
NORP

)

recently, visual mode, both line and character. (I use other vim things but these matter to me.)

(For example, vim settings for YAML and incrementing and decrementing numbers.)

Back in

2020
DATE

I wrote about realizing that I was now a Vim user, citing

Vim
ORG

‘s powerful undo and Vim windows; the other things I mentioned are new in my awareness since then. Unlimited backspacing in insert mode is

one
CARDINAL

of those Vim features that are so instinctively right that I didn’t realize (or remember) that classical

Vi
PERSON

is rather more restricted that way, much like unlimited undo.

(OpenBSD vi only lets you backspace in insert mode within the current insertion, and my vague memory is that classical

Vi
PERSON

may not have let you back up to previous lines even within a single insertion.)

Vim’s visual mode is more specialized and limited, but for the kind of editing that I do it’s turned out to be quite convenient, enough so that I use it regularly and would miss it if I had to do without it.


OpenBSD
ORG

‘s vi is probably the closest I come

today
DATE

to a pure old fashioned

Vi
PERSON

experience. I can definitely edit files in it without problems (I do every so often), and I often don’t notice any difference from Vim if I’m editing a single file for straightforward changes (where I only need to undo simple mistakes immediately), which is the typical case for what I do on our

OpenBSD
PRODUCT

machines. However, if I only had

Vi
PERSON

and not Vim I probably wouldn’t use vi(m) as much as I do

today
DATE

; I’d be much more likely to reach for other editors for multi-level undo and split screen editing of multiple files (with the ability to move text from

one
CARDINAL

file to the other).

(I’d probably still use vi a lot, because the forces pushing me to it are fairly strong and I was using ‘vim as vi’ well before I started using ‘vim as vim’.)

PS: I know that there are people who like the appeal of the simple (and

BSD
ORG

-pure) original

Vi
PERSON

, but I’m not a Unix purist

these days
DATE

. I’m lazy; unlimited (and sophisticated) undo, backspacing as much as I want, multiple windows, and so on are all quite convenient (with very little effort on my part, and they work in all the many environments I use vim in). I use Vim instead of

Vi
PERSON

for much the same reason that I now have file and command completion in my shell.

(I might feel differently about this if I’d been a heavy

Vi user
ORG

and was very used to its specific quirks, but I only started seriously using vi(m) in the Vim era.)