One thing to note: the author of the linked blog posts uses nvi, which is
not
exactly vi either (but rather, a reimplementation of vi to circumvent
copyright issues originating from ex/vi being based on ed).
It gets very close, but there are some extra features (e.g. multi-window,
multi-undo) and subtle incompatibilities in some cases.[1] Either way,
I suppose its feature set is much closer to that of traditional vi.
> My biggest struggle has been finding good resources to learn the "proper"
way to use it
I would recommend reading through the manpage, I've learned a lot doing that.
Some tips:
* Most line-oriented operations in vim that are missing from vi can be
done using filter commands. e.g. you can emulate vim gww as !!fmt.
* vi has no cib, dib, etc. But it has %, which is usually good enough.
* Visual mode is vim-only, but marks come from vi (which, in general, can be
used for the same purpose).
* If you're using nvi, you have multi-level undo too (try u.....). In
traditional vi, the best you can get is "1 "2 ... for deleted text (and
U for restoring saved lines).
> The only seemingly unsurmountable hurdle I can think of is the inability
(as far as I can tell) to bind control key chords to movement in insert mode.
Yeah, vi is fundamentally a modal editor, if you want key chords you're
probably better off using emacs. (Or *vim, I guess.)
That said, you can define abbreviations, which work in input mode. e.g. I use
an adapted version of the HTML abbreviation file from
https://thomer.com/vi/vi.html#macros. (Most links are dead, unfortunately. But
the HTML abbreviations work.)
[1]: At least in my nvi version (nvi2):
iabcd^[:s/b/^V^M^M
places the cursor on the line with a. Heirloom vi and vim both place it
on the line with cd. Probably an nvi bug.