Home > database >  VSCode shortcut to focus and navigate file in source control view
VSCode shortcut to focus and navigate file in source control view

Time:02-04

In VS Code, when the source control view is focused, I want to focus the first file in "staged Changes", navigate and focus between them, is there a keyboard shortcut to do this?

I want the behavior works like "search. action.focusNextSearchResult". but in source view stage section

Here's a screenshot of what I'm talking about: screenshot of source control view with an arrow pointing to first entry

CodePudding user response:

This is pretty easy and fast with regular keyboard navigation.

You can switch to the source control pane with the View: Show Source Control command, or the corresponding ctrl shift g shortcut. Or if it's already the current tab of the sidebar and the sidebar is not focused, focus it with ctrl 0.

Once you have focused on the source control view, just press up or down until you reach it.

If the listing is not focused yet, and something else like the commit message input or commit button is focused instead, just press tab or shift tab until it is.

CodePudding user response:

You can do this directly from anywhere in the scm view, but you will need a macro extension like Multi-Command. And this keybinding:

{
  "key": "alt u",            // whatever keybinding you want
  "command": "extension.multiCommand.execute",
  "args": {
    "sequence": [
      "list.focusFirst",     // focuses the commit message input, as close as you can get
      "list.focusDown",
      "list.focusDown",
      "list.focusDown",
      "list.select"     // add this to also open the scm diff
    ],
  },
  "when": "focusedView == workbench.scm"
}

When you are focused in the scm view you could go down/up a file and focus it with this keybinding:

  {
    "key": "alt down", // whatever keybinding you want
    "command": "extension.multiCommand.execute",
    "args": {
      "sequence": [
        "list.focusDown",    // or "list.focusUp"
        "list.select"
      ],
    },
    "when": "focusedView == workbench.scm"
  }

To open the next item in the scm view and return focus to that scm view, try this keybinding:

{
  "key": "alt down", // whatever keybinding you want
  "command": "extension.multiCommand.execute",
  "args": {
    "interval": 400,     // need a delay
    "sequence": [
      "list.focusDown",
      "list.select",
      "workbench.action.focusSideBar",
    ],
  },
  "when": "focusedView == workbench.scm"
}
  • Related