Reputation: 12892
Does anyone know the keyboard shortcut (Mac and Linux) to switch the focus between editor and integrated terminal in Visual Studio Code?
Upvotes: 1208
Views: 389742
Reputation: 59
You can use
CTRL + `
- to switch from active editor to terminal and
CTRL + 1
- to switch back to editor
Upvotes: 0
Reputation: 335
Working Settings:
Open the Command Palette (Ctrl+Shift+P Windows/Linux or ⇧ ⌘ P Mac).
Type "Preferences: Open Keyboard Shortcuts (JSON)" and press Enter.
Add the following entries to the keybindings.json
file:
[
{ "key": "alt+right", "command": "workbench.action.terminal.focus"},
{ "key": "alt+left", "command": "workbench.action.focusActiveEditorGroup", "when": "terminalFocus"}
]
workbench.action.terminal.focus
: To switch from editor to terminal.
workbench.action.focusActiveEditorGroup
: To switch from terminal to editor.
Upvotes: 8
Reputation: 59
As of 2023 (VS code 1.83.1), toggling back and forth has been made easy.
Use "Crtl+'" to toggle to the terminal. Pressing "Crtl+'" again will close the terminal window going back to the editor. The terminal will not restart when toggling it again.
You can toggle back and forth without closing the terminal window, however: Press "Crtl+'" to go to the terminal. Press "Crtl+1" to go to the editor.
Upvotes: 3
Reputation: 429
If you're in the terminal Ctrl+' (single quote) hides the terminal and jumps back to the code editor. Hit Ctrl+' again to open the terminal which automatically gets the focus.
Upvotes: 2
Reputation: 20154
While there are a lot of modal toggles and navigation shortcuts for VS Code, there isn't one specifically for "move from editor to terminal, and back again". However you can compose the two steps by overloading the key
and using the when
clause.
You can achieve the desired effect by adding the appropriate settings to the keybindings.json
file. Here are the required steps:
Open the Command Palette (Ctrl+Shift+P Windows/Linux or ⇧ ⌘ P Mac).
Type "Preferences: Open Keyboard Shortcuts (JSON)" and press Enter.
Add the following entries to the keybindings.json
file:
// Toggle between terminal and editor focus
{
"key": "ctrl+`",
"command": "workbench.action.terminal.focus"
},
{
"key": "ctrl+`",
"command": "workbench.action.focusActiveEditorGroup",
"when": "terminalFocus"
}
With these shortcuts you can focus between the editor and the Integrated Terminal using the same keystroke.
The key combination suggested here is now built into VSCode as a default (as of 1.72.2, maybe earlier) . See if ctrl + ` works before attempting to add it.
In modern versions of VS Code (as of 2022) the Default Keyboard Shortcuts (JSON) file is read-only, so that is why for the custom settings you need to edit a separate dedicated file keybindings.json
.
More info can be found on the official Visual Studio documentation page:
Upvotes: 1988
Reputation: 8065
ctrl+` : To Focus on Integrated Terminal
ctrl+1 : To Focus on Editor (If editor-2 command would be ctrl+2)
More Info : https://medium.com/p/21969576c09c
Upvotes: 682
Reputation: 1164
What's working for my 1.56 VS Code is:
Ctrl + ~ to focus on terminal window from editor
Ctrl + 9 to focus back on editor from terminal
Upvotes: 8
Reputation: 10167
With the key bindings in your keybindings.json
:
CTRL+j
and CTRL+k
shift focus between editors in an editor group and terminal windows in the terimalCTRL+h
and CTRL+l
shift focus between editor groups including the terminal(These key bindings should feel particularly natural to vim users. Others may wish to change exchange h/j/k/l
for left/down/up/right
)
// In an editor group, ctrl+j and ctrl+k jump between editor windows
{ "key": "ctrl+j", "command": "workbench.action.nextEditorInGroup" },
{ "key": "ctrl+k", "command": "workbench.action.previousEditorInGroup" },
// In the terminal, ctrl+j and ctrl+k jump between terminal windows
{
"key": "ctrl+j",
"command": "workbench.action.terminal.focusNext",
"when": "terminalFocus && terminalHasBeenCreated && !terminalEditorFocus || terminalFocus && terminalProcessSupported && !terminalEditorFocus"
},
{
"key": "ctrl+k",
"command": "workbench.action.terminal.focusPrevious",
"when": "terminalFocus && terminalHasBeenCreated && !terminalEditorFocus || terminalFocus && terminalProcessSupported && !terminalEditorFocus"
},
// In the work area, ctrl+j and ctrl+k jump between editor groups
{ "key": "ctrl+h", "command": "workbench.action.focusPreviousGroup" },
{ "key": "ctrl+l", "command": "workbench.action.focusNextGroup" },
// in the first editor group terminal, jump "back" to the terminal (if there is a terminal open)
{
"key": "ctrl+h",
"when": " terminalHasBeenCreated && terminalIsOpen && activeEditorGroupIndex == 1",
"command": "workbench.action.terminal.focus"
},
// in the last editor group terminal, jump "forward" to the terminal (if there is a terminal open)
{
"key": "ctrl+l",
"when": "terminalHasBeenCreated && terminalIsOpen && activeEditorGroupLast",
"command": "workbench.action.terminal.focus"
},
// in the terminal, jump "back" to the last editor group
{
"key": "ctrl+h",
"command": "workbench.action.focusLastEditorGroup",
"when": "terminalFocus"
},
// in the terminal, jump "forward" to the last first group
{
"key": "ctrl+l",
"command": "workbench.action.focusFirstEditorGroup",
"when": "terminalFocus"
},
Upvotes: 3
Reputation: 2237
Ctrl+J works; but also shows/hides the console.
cmd+J for mac
Upvotes: 222
Reputation: 338
The shortuct changes based on the keyboard layout (QWERTY/QWERTZ/AZERTA etc.)
To find out your shortuct press Ctrl+Shift+P and go to Preferences: Keyboard Shortcuts.
From there search for View:Toggle Terminal
Upvotes: 0
Reputation: 9377
My solution:
{
"key": "ctrl+shift+alt+cmd+t",
"command": "workbench.action.terminal.new",
"when": "!terminalIsOpen"
},
{
"key": "ctrl+shift+alt+cmd+t",
"command": "terminal.focus",
"when": "terminalIsOpen && !terminalFocus"
},
{
"key": "ctrl+shift+alt+cmd+t",
"command": "workbench.action.closePanel",
"when": "terminalIsOpen && terminalFocus"
}
Upvotes: 3
Reputation: 37797
Another option is to use F6
and shift+F6
.
F6
does "Focus Next Part", which will move focus from the editor to Panel below (Terminal, Output, Debug Console, etc).
shift+F6
does "Focus Previous Part", which will move focus from Terminal panel back to editor.
The advantage of this over ctrl + `
is that:
It does not hide the Terminal/Panel (if that's what you prefer. If you prefer to hide/unhide the Terminal, then just use ctrl + `
).
This will work with any of the Panels (Terminal, Output, Debug Console, etc).
Upvotes: 30
Reputation: 5140
For ctrl+` combination to switch between, I tried all of listed answers, but no luck. For those who has similar issue like mine, try the following shortcut within keybindings.json
: Tested on VSCode 1.59+
[
{
"key": "ctrl+oem_8","command": "workbench.action.terminal.focus", "when": "!terminalFocus"
},
{
"key": "ctrl+oem_8","command": "workbench.action.focusActiveEditorGroup", "when": "terminalFocus"
}
]
Upvotes: 5
Reputation: 490
Hey my steps to make this work were:
ctrl + shift+ p
and look for preferences: keyboard shortcuts
or you can use ctrl k + ctrl s
to open it directly
Look in the search box for Terminal: Focus Terminal
, I set up for myself alt + T alt + T
but you can select the combination that you want
Look in the search box for View: Focus Active Editor Group
, set up for myself alt + E alt + E
but again you can select the combination that you want
That's it, I hope this help
Upvotes: 14
Reputation: 208
Here is a way to add your own keybinding for switching focus.
Ctrl+Shift+P
and search for keyboard shortcuts and hit this (Preferences: Open Keyboard shortcuts).Alt+Shift+T
to go to the terminal.Ctrl+tab
Tested on Windows 10 machine with VSCode(1.52.1)
Upvotes: 11
Reputation: 485
Actually, in VS Code 1.48.1, there is a toggleTerminal
command; I don't know if it was available in previous versions ;) You can utilize it in the keybindings.json
file.
This worked for me on Windows, and should also works on Linux.
{
"key": "ctrl+alt+right",
"command": "workbench.action.terminal.toggleTerminal",
"when": "editorTextFocus || terminalFocus"
}
Upvotes: 4
Reputation: 1444
Generally, VS Code uses ctrl+j
to open Terminal, so I created a keybinding to switch with ctrl+k
combination, like below at keybindings.json
:
[
{
"key": "ctrl+k",
"command": "workbench.action.terminal.focus"
},
{
"key": "ctrl+k",
"command": "workbench.action.focusActiveEditorGroup",
"when": "terminalFocus"
}
]
Upvotes: 11
Reputation: 1037
It's not exactly what is asked, but I found it very useful and related.
If someone wants to change from one terminal to another terminal also open in the integrate terminal panel of Visual Studio, you can search for:
Terminal: Focus Next Terminal
Or add the following key shortcut and do it faster with keyboard combination.
{
"key": "alt+cmd+right",
"command": "workbench.action.terminal.focusNext",
"when": "terminalFocus"
},
{
"key": "alt+cmd+left",
"command": "workbench.action.terminal.focusPrevious",
"when": "terminalFocus"
},
Upvotes: 6
Reputation: 6463
The default keybinding to toggle the integrated terminal is "Ctrl+`" according to VS Code keyboard shortcuts documentation page. If you don't like that shortcut you can change it in your keybindings file by adding something similar to:
{ "key": "ctrl+l", "command": "workbench.action.terminal.toggleTerminal" }
There does not seem to be a default keybinding for simply focusing the bottom panel. So, if you do not want to toggle the bottom panel, you will need to add something similar to the following to your keybindings file:
{ "key": "ctrl+t", "command": "workbench.action.focusPanel" }
Upvotes: 14
Reputation: 291
I configured mine as following since I found ctrl+` is a bit hard to press.
{
"key": "ctrl+k",
"command": "workbench.action.focusActiveEditorGroup",
"when": "terminalFocus"
},
{
"key": "ctrl+j",
"command": "workbench.action.terminal.focus",
"when": "!terminalFocus"
}
I also configured the following to move between editor group.
{
"key": "ctrl+h",
"command": "workbench.action.focusPreviousGroup",
"when": "!terminalFocus"
},
{
"key": "ctrl+l",
"command": "workbench.action.focusNextGroup",
"when": "!terminalFocus"
}
By the way, I configured Caps Lock to ctrl on Mac from the System Preferences => keyboard =>Modifier Keys
.
Upvotes: 26
Reputation: 2233
A little late to the game but I configured mine as the following in the keybindings.json
:
{
"key": "ctrl+`",
"command": "workbench.action.terminal.focus",
"when": "editorTextFocus"
},
{
"key": "ctrl+`",
"command": "workbench.action.focusActiveEditorGroup",
"when": "terminalFocus"
},
{
"key": "alt+`",
"command": "workbench.action.terminal.toggleTerminal"
}
I wanted separate keys for opening/closing terminal and switching focus back and forth between the windows.
Upvotes: 84
Reputation: 515
control + '~' will work for toggling between the two. and '`' is just above the tab button. This shortcut only works in mac.
Upvotes: 0
Reputation: 2598
Here is my approach, which provides a consistent way of navigating between active terminals as well as jumping between the terminal and editor panes without closing the terminal view. You can try adding this to your keybindings.json
directly but I would recommend you go through the keybinding UI (cmd+K cmd+S
on a Mac) so you can review/manage conflicts etc.
With this I can use ctrl+x <arrow direction>
to navigate to any visible editor or terminal. Once the cursor is in the terminal section you can use ctrl+x ctrl+up
or ctrl+x ctrl+down
to cycle through the active terminals.
cmd-J
is still used to hide/show the terminal pane.
{
"key": "ctrl+x right",
"command": "workbench.action.terminal.focusNextPane",
"when": "terminalFocus"
},
{
"key": "ctrl+x left",
"command": "workbench.action.terminal.focusPreviousPane",
"when": "terminalFocus"
},
{
"key": "ctrl+x ctrl+down",
"command": "workbench.action.terminal.focusNext",
"when": "terminalFocus"
},
{
"key": "ctrl+x ctrl+up",
"command": "workbench.action.terminal.focusPrevious",
"when": "terminalFocus"
},
{
"key": "ctrl+x up",
"command": "workbench.action.navigateUp"
},
{
"key": "ctrl+x down",
"command": "workbench.action.navigateDown"
},
{
"key": "ctrl+x left",
"command": "workbench.action.navigateLeft",
"when": "!terminalFocus"
},
{
"key": "ctrl+x right",
"command": "workbench.action.navigateRight",
"when": "!terminalFocus"
},
Upvotes: 3
Reputation: 474
SIMPLE WINDOWS SOLUTION FOR ANY KEYBOARD LAYOUT (may work for other OS but not tested)
I use a Finnish keyboard so none of the above worked but this should work for all keyboards.
Upvotes: 7
Reputation: 331
The answer by Shubham Jain is the best option now using the inbuilt keyboard shortcuts.
to Ctrl + ;
to Ctrl + L
This way you can have move focus between terminal and editor, and toggle terminal all in close proximity.
Upvotes: 8
Reputation: 996
As of version : 1.26.1 (linux), the shortcut is not set by default. To set the shortcut
For editor focus is already set by default.
Upvotes: 37
Reputation: 77
I did this by going to setting>Keyboard Shortcuts then in the section where it give a search bar type focus terminal and select the option. It will ask to type the combination which you want to set for this action. DO it. As for editor focus type" editor focus" in the search bar and type your desired key. IF you excellently add a key . it can be removed by going to edit jason as mentioned in above comments
Upvotes: 0
Reputation: 311
Try using ctrl+` to toggles the visibility of the terminal and as a result toggle the focus.
Upvotes: 14