VS Code: Skipping current selection when using cmd/ctrl+d
Posted: 12/10/2022
Categories:
vs code
One of my favorite features in VS Code is being able to select the next occurrence of the selected word by pressing cmd+d
(ctrl+d
for Windows). This then allows me to quickly modify each instance of that word.
The Problem
For a long time though I frequently encountered the same problem: it would select an instance of the word that I didn't wish to alter. Often this is because the word would feature in a different variable or function.
ANNOTATED IMAGE
The Solution
You can deselect the selected word by using cmd + k
(ctrl + k
).
Demonstration
ANIMATED GIF GOES HERE
Bare with, this one isn't easy to demonstrate in a blog post.
For the sake of this contrived demo, let us ignore the fact F2 functionality exists to rename a variable...
Assume we have the following code:
const initialize = () => {
const config = getConfig();
applyConfig(config);
};
Our goal is to rename the config
variable.
Failed Attempt
On our first attempt we perform the following. It doesn't go well:
ANIMATED GIF
Successful Attempt
We undo our changes and make another attempt, this time using cmd + k
:
ANIMATED GIF
ORIGINAL ATTEMPT
We select the first instance of config
and press cmd + d
with the aim of also selecting the config
being passed into applyConfig()
.
Rather than that config
being selected, the "Config" in getConfig
is selected.
We can bypass that by pressing cmd + k
.
One issue we encounter here is the visual state of VS Code doesn't change at this point. It's not clear that it's been bypassed.
We press cmd + d
again. This time the "Config" inside applyConfig
is selected.
Again, press cmd + k
to bypass it.
For the final time, we press cmd + d
, which selects the "config" being passed into applyConfig
. We are after this one.
You are now in a position where you can type and only replace the two instances of "config".