Vi's sense of composability. For example, 'd' is the delete command, but what does it delete? It deletes across a motion. What is a motion? Could be any movement mode supported by the editor, which ranges from simple cursor motions to motions involving words or blocks to forms of searching to raw line number jumps.
So, once you learn a vi command, you can use it with all the motions you already know, and once you learn a motion, you can use it with all the commands you already know.
The other aspect, that is more insidiously useful: vi is almost everywhere, and will easily fit on an embedded system. It's a rare server that doesn't have it, either. This is definitely vi, not vim, when I say this, though.
I've used vim for more than 20 years, but lately I'm finding that now that `prettier` and `black` can just reformat code wholesale, I don't have to care as much about the precise tiny edits that vim is so good at. And when I'm not worried about those things, I start to notice that modern IDEs have much smarter syntax checking and whole-project search than I've ever seen in vim, even with plugins. So I think I'm moving on.
Yep, for me the peak right now is an IDE that has a great VIM plugin. You get the best part of vi (the insane productivity and wrist health increase that is modal editing) with all the best parts of a modern IDE.
I don't feel like I'm missing anything from a VIM-only setup in any way right now
Totally agree about it feeling like playing a game. It’s probably because of the combos and just how fast things can be when you move around! I use neovim but I’m sure the experience we have is the same.
So, once you learn a vi command, you can use it with all the motions you already know, and once you learn a motion, you can use it with all the commands you already know.
The other aspect, that is more insidiously useful: vi is almost everywhere, and will easily fit on an embedded system. It's a rare server that doesn't have it, either. This is definitely vi, not vim, when I say this, though.