There's a false choice at the front of every Vim conversation: abandon your editor, live in a terminal, spend a weekend on config files.
You don't have to do any of that. Install a Vim extension in VS Code and you have modal editing this afternoon, with your debugger, your extensions and your team's settings exactly where they were.
That's the right first move for almost everyone. But be clear about what you're getting, because the honest split matters.
What you get, and it's most of it
The extension gives you the actual language: normal and insert modes, hjkl, operators, motions, text objects, counts, dot, visual mode, marks, macros, registers, search with n.
That list is the whole reason to learn Vim. ciw, di(, d2w, . — the grammar works, and the muscle memory you build is real muscle memory that transfers anywhere.
So the honest headline: you can get 90% of Vim's daily value without opening a .vimrc or reading a single word about plugin managers.
What you don't
Three things are genuinely different, and you should know them going in.
Ex commands are patchy. :s and :g work in the common cases. Reach for anything exotic and you'll find edges. If your muscle memory is built on heavy :g use, you'll notice.
Config isn't .vimrc. Your keybindings live in VS Code's JSON settings, in the extension's own dialect. It's fine — arguably nicer — but it means a config you write here doesn't drop into a real .vim on a server.
Sometimes it fights the host. VS Code has its own ideas about multi-cursor, its own chords, and its own text-editing model underneath. Most days you won't notice. Occasionally you'll hit a seam where a command behaves almost right, which is more disorienting than plainly not working.
None of these matter on day one. All of them are the reason people eventually try the real thing.
The setup that matters
One setting is worth more than the rest combined: key repeat.
On macOS, holding j prints one j and then a character-accent menu, which makes hjkl navigation feel broken. That's not the extension — it's a system default. Turn on fast key repeat for VS Code and it becomes a different experience.
Beyond that: leave the arrow keys alone if you want, but see the note in why hjkl — the escape hatch is exactly what stops the habit forming.
Don't install anything else on day one. The instinct to collect plugins is the same instinct that makes people memorize cheat sheets, and it has the same result.
When to graduate
You'll know. It usually starts as an irritation: you're on a server over SSH and your hands try ciw in nano. You want your editing to be the same in every terminal you touch, not just the one machine with your extension installed.
That's the actual reason to move to real Vim or Neovim — not speed, not purism. Ubiquity. It's on every box you'll ever SSH into, and after a while the fact that your editor doesn't travel starts to feel like a limp.
But that's month six. It's a bad month one, because you'd be learning modal editing and a new environment and a config language simultaneously, and most people quit at the intersection.
The order that works
Learn the grammar where you already are. Get ciw, di(, dot and the motions into your hands with your normal tools around you and your normal work getting done.
Then, if you want the terminal, you're learning one new thing instead of three.
Start with the grammar — it's in your browser, nothing to install, and it's the part that transfers no matter which editor you end up in.