One of the things that bothered me with VSCode-Vim was with how slow it was to use (number)(arrow)
(eg, 42(down)
) to move multiple lines down. In the screencast below, notice how it goes line-by-line rather than skipping ahead instantly.
☝ Figure 1: VSCode scrolls slooowly line-by-line when pressing
42(down)
.
Configure the following in your settings.json and then reload window or restart:
"extensions.experimental.affinity": {
"vscodevim.vim": 1
},
This makes the extension run on its own thread. Note that it's not going to be significantly faster (and probably won't be noticeable in most cases).
See: microsoft/vscode#65876 (comment)
Warning All info below were last updated in 2022. They're outdated as of March 2023.
TIL that VSCode-Vim already accounts for this with hjkl
movements, so 42(down)
can be pressed at 42j
.
☝Figure 2: Using j/k keys (eg,
3j
instead of3(down)
) hops to the target line instantly. I also did a trick to make this work with arrow keys (see below).
To make this work with (up)
and (down)
arrow keys too, I rebound my arrow keys to j/k movements.
/* settings.json */
{
"vim.normalModeKeyBindings": [
// Make "9j 9k" work faster
{ "before": ["Down"], "after": ["j"] },
{ "before": ["Up"], "after": ["k"] },
}