I held out on vim motions for about a decade, on the grounds that I was already fast enough with arrow keys and that learning a new editor language was a lot of overhead for what looked like a marginal gain. I installed VS Code’s Vim extension as an experiment last month, expecting to uninstall it within a week.
Week one was painful. I forgot how to enter text. I exited insert mode constantly and didn’t know why. I typed dd at the start of a line and watched 30 minutes of work vanish, despite the fact that this is the most discoverable command in the editor.
Week two was less painful but still slower. I started reaching for motions I’d seen in tutorials and getting them right about half the time. I noticed I was no longer reaching for the mouse to highlight a function — vap does it, and I’d internalised that.
Week three something changed. Edits I’d been doing in three or four steps started happening in one composed motion. Change inside the parens. Delete to the next comma. Yank this paragraph. The composability of the verb-noun grammar is the whole point, and I’d been told that a hundred times, but you don’t believe it until you’ve felt it.
The thing I underestimated, more than the keystrokes saved, was the cost of context-switching. Every reach for the mouse is a tiny break in attention. Removing those reaches turns out to be a meaningful focus upgrade. I write longer, more coherent code now. Or at least it feels that way, which might be the same thing.