VS Code Key Binding for quick switch between terminal screens?
From Microsofts Documentation there is a tip:
Tip: If you use multiple terminals extensively, you can add key bindings for the focusNext, focusPrevious and kill commands outlined in the Key Bindings section to allow navigation between them using only the keyboard.
From here:
Other terminal commands are available and can be bound to your preferred keyboard shortcuts. They are: workbench.action.terminal.focus: Focus the terminal. This is like toggle but focuses the terminal instead of hiding it, if it is visible.
workbench.action.terminal.focusNext: Focuses the next terminal instance.
workbench.action.terminal.focusPrevious: Focuses the previous terminal instance.
workbench.action.terminal.kill: Remove the current terminal instance.
workbench.action.terminal.runSelectedText: Run the selected text in the terminal instance.
Just assign these shortcuts to your preferred keybindings and you are good to go.
That might not be a solution for jumping directly to a terminal (e.g. like vims gt2) but it certainly is a start.
Edit: Just toyed around and found that you can also focus on a specific terminal. Just add any of these commands to your keybindings.json
and you are good to go!
// - workbench.action.terminal.focusAtIndex1
// - workbench.action.terminal.focusAtIndex2
// - workbench.action.terminal.focusAtIndex3
// - workbench.action.terminal.focusAtIndex4
// - workbench.action.terminal.focusAtIndex5
// - workbench.action.terminal.focusAtIndex6
// - workbench.action.terminal.focusAtIndex7
// - workbench.action.terminal.focusAtIndex8
// - workbench.action.terminal.focusAtIndex9
e.g.
{ "key": "yourkeybinding", "command": "workbench.action.terminal.focusAtIndex1"}
If you want something that might feel a bit more fluid than using arbitrary key bindings, you can get Ctrl+Tab and Ctrl+Shift+Tab working for both editor switching and terminal switching.
Open your keybindings file with ctrl+shift+p
search for Open Keyboard Shortcuts (JSON)
. Then add..
{
"key": "ctrl+tab",
"command": "workbench.action.openNextRecentlyUsedEditorInGroup",
"when": "editorFocus"
},
{ "key": "shift+ctrl+tab",
"command": "workbench.action.openPreviousRecentlyUsedEditorInGroup",
"when": "editorFocus"
},
{
"key": "ctrl+tab",
"command": "workbench.action.terminal.focusNext",
"when": "terminalFocus"
},
{
"key": "ctrl+shift+tab",
"command": "workbench.action.terminal.focusPrevious",
"when": "terminalFocus"
}