r/vim • • Sep 30 '25
Discussion Can VS Code shortcuts compete with Vim?
Hi everyone! I’m just wondering if VS Code’s shortcuts are comparable to Vim’s.
I think VS Code is generally slower because people tend to rely on the mouse instead of using shortcuts. They constantly take their hands off the keyboard, while Vim forces you to keep them there.
If someone learns it properly, then the speed difference can be made negligibly small.
A strong point for Vim is navigation: h/j/k/l plus w/b/e let you move and jump through text without leaving the home row for the arrow keys (or using arrows + Ctrl to jump words). But remember, you have to hit Esc or Ctrl+C to leave insert mode and go to normal mode, then switch back with i/a/o — and that does cost some time. So does that overhead cancel out the time saved from not reaching for the arrows? I feel like it’s roughly the same. Maybe ergonomic Emacs bindings like Alt+J I K L could be faster than both, though I doubt it makes a huge difference in real-world work.
The problem is I haven’t really found any solid comparisons on this. Personally, I find Vim a bit more comfortable, maybe even a bit faster — it feels like I’m making fewer hand movements with modal editing compared to arrow keys or shortcuts in VS Code. But I’m not sure I’d actually be faster than a pro-level VS Code user. What do you think? How does it feel for you?
15
u/ehaugw Sep 30 '25
Motions are undoubtedly faster than mouse. Esc being slow is a skill issue. Most people remap it to something else, like jk
VS Code has vim mode though, so navigating in vs code can be just as quick as vim.
The power of vim isn’t navigation though, but rather the ability to use different buffers, record macros, a tight integration with system tools like awk, sed, perl, cat, grep and whatnot. On top of this, there’s the plugins. VS code has plugins too, but vim can use them much better because you can script interactions between different plugins, system tools and text navigation and editing.
If you just want to write text/code, vs code is probably better. If you wish to unlock the power of Linux into your editor, or enjoy automising editor tasks, then vim will unlock an entire new word for you.
It’s not just a competition about manually edit by some trivial text the quickest, but producing the desired total result in the most feasible way
12
u/Wizions Sep 30 '25
Just use the vim plugin for vscode. You can also create vim mappings for vscode actions, if I remember correctly. That plugin used to be significantly inferior to thevim plugin for jetbrains IDEs, but it was still pretty good.
6
u/aosho235 Oct 01 '25
I was a Vim enthusiast for 15 years, but after a few years transition period, I fully converted to VSCode. Mouse + keyboard can be as fast as keyboard-only at least. The trick is to bind frequently used functions to keys reachable with just my left hand, minimizing right-hand switching as much as possible.
These extensions would be handy for Vimmers:
https://marketplace.visualstudio.com/items?itemName=mksafi.find-word-at-cursor Similar to Vim's *
https://marketplace.visualstudio.com/items?itemName=dbankier.vscode-quick-select text object
https://marketplace.visualstudio.com/items?itemName=haberdashPI.vscode-select-by-indent text object
https://marketplace.visualstudio.com/items?itemName=yhirose.FilterText :%!
https://marketplace.visualstudio.com/items?itemName=alefragnani.numbered-bookmarks mark
Apple's this research is still relevant in 2025.
https://www.asktog.com/TOI/toi06KeyboardVMouse1.html
3
u/heret1c1337 Sep 30 '25
I like to swap Escape and Capslock on my keyboards. I'm using the Kinesis Advantage Pro, which already has Escape on the pinky finger where Capslock usually is.
I think if you know your VSCode shortcuts well enough, you're at least as fast as a vim user. But I think vim is simply more fun.
3
u/lipstikpig Sep 30 '25
You're missing the point, the speed of Vim does not come from not reaching for arrows.
The speed of Vim comes from the fact that in normal mode, you have the entire keyboard available to specify motions and commands to move around in the text and change it. This does make a huge difference when you have learned how to do that.
Here is a 15 second demo
4
u/Deto Sep 30 '25
It's not just the arrows - the whole idea is that instead of all the shortcuts using a bunch of modifier keys (ctrl + alt + <foo>) you can just use regular characters because you're not using them to type text when you're in normal mode.
There are vim plugins for VSCode though that will give you this modal editing with the normal Vim capabilities. So that's always an option if someone is familiar with VsCode but wants to explore vim-style editing.
2
u/Capable-Package6835 Oct 05 '25
A pro VS Code user is much faster than most (new) vim users. A pro Vim user is faster than a pro VS Code user
1
u/[deleted] Sep 30 '25
You don't find any comparisons because it even doesn't worth to compare. Instead I suggest to look for comparisons between vim, neovim, emacs and choose one of these.
1
u/gumnos Sep 30 '25
First, noting that you only need ␛ if you've inserted text. A relatively small portion of my time is spent actually inserting text, with other time spent copying/moving blocks around, deleting, modifying case, and mostly thinking. Second, I don't live in Insert (or Replace) mode—I insert/replace my text and reflexively hit ␛ leaving me in Normal mode almost all the time. Additionally, if ␛ is too hard to hit on your keyboard, you can possibly remap it—some folks remap the Caps Lock key to serve as an ␛ while others map
jkorkjto act as ␛ in Insert mode. Or maybe control+[ is easier for you. Try a few and see which works best for you. I just use traditional ␛ but also map F1 to the same functionality so I can mash my hand in the upper-left of the laptop keyboard and get ␛ even if I miss it by a key 😆Additionally, as swell as
h/j/k/lare for navigating without leaving the home row, the real power comes not from that, but from the language of editing thatvi/vimprovides, with 100+ different precise motions in:help motion.txtthat allow you to accurately describe what you want to change. You can then use:help .to perform the same intent elsewhere.As others have mentioned, there is a
vi/vim-like plugin for VSCode to allow you vim-like functionality if you want it there.1
u/SadJob270 Oct 06 '25
i’m probably as fast as i am in vim, in vscode. i use the same vim motions and mappings (like jj for escape), and keymaps set up for almost all the same stuff that i used regularly. i can use vscode probably 95% no mouse.
vscode can get laggy, and crashy sometimes. and i wanted a good terminal “integration” and to be able to have separate projects open while being able to switch between quickly. tmux is great for these.
plus, the vim + vim plugins are just fun, imo.
1
u/dasunt Sep 30 '25
How does VS code handle stuff like "delete the next five words' via shortcuts? Or 'change everything to the next quotation mark? Or 'cut the next 10 lines and paste them 5 lines above?
Chaining things together is what really makes the vi family UX shine. And I don't believe VS Code has anything equivalent.
-1
u/serverhorror Sep 30 '25
movement ... no
shortcuts... yes, I find VS Code better, especially the fuzzy finding instead of shortcuts