Home > Back-end >  Using ctrl arrow to jump between punctuation in VSCode?
Using ctrl arrow to jump between punctuation in VSCode?

Time:02-11

VSCode has a handy keybinding to jump by identifier using ctrl arrow. However, I would like to change the behaviour of this slightly.

For example, my code looks like this: (| stands for the cursor)

|bar(foo.baz)

ctrl right:

bar(|foo.baz)

I would like VSCode to treat the parentheses and other punctuation such as . as identifiers when I press ctrl arrow so that each one has its own "stop". In my previous example I would like this to happen after repeated ctrl right presses:

|bar(foo.baz)
bar|(foo.baz)
bar(|foo.baz)
bar(foo|.baz)
bar(foo.|baz)
bar(foo.baz|)
bar(foo.baz)|

This is what actually happens:

|bar(foo.baz)
bar(|foo.baz)
bar(foo.|baz)
bar(foo.baz)|

I've discovered that the Stack Exchange text editor has the behaviour I want, so you can try navigating some code in the Answer box using ctrl arrow yourself to see what I mean.

Is there a setting or even extension that does this? I've tried googling but this problem is quite hard to describe in a short query.

CodePudding user response:

You can use the extension Select By

Define the following keybinding:

  {
    "key": "ctrl right",  // or any other key combo
    "when": "editorTextFocus",
    "command": "moveby.regex",
    "args": {
      "regex": "(\\w |.)",
      "properties": ["next", "end"]
    }
  }

You can tweak the regex if you want different behavior.

CodePudding user response:

I found a solution:

Binding to cursorWordPartLeft and cursorWordPartRight in keybindings.

  • Related