119

I just started using VSCode and I'm looking for a way of, while having both the code open and the terminal(the one inside VSCode), switch between typing on these parts of the editor with a shortcut. Looked around the web but the best I could find would be to close and open the terminal.

Any ideas how to do this?

1
  • 5
    At current moment there is a default of Ctrl+1(2,3,...) to focus on a pane you want, where number denotes the pane number. So, if you have opened terminal and one pane just use Ctrl+1 to focus to the pane and Ctrl+` to focus on a terminal, no need to close the terminal. Also there is a good shortcut of Ctrl+Q which gives roulette like view of other windows(explorer, source, control, terminal, etc., except panes with code)
    – maks
    Dec 15, 2020 at 16:25

15 Answers 15

110

I found bit hard to press CTRL+`. It also close the terminal when we press CTRL+'

So, I configured mine as following:

{
  "key": "ctrl+j",
  "command": "workbench.action.focusActiveEditorGroup",
  "when": "!terminalFocus"
},
{
  "key": "ctrl+k",
  "command": "workbench.action.terminal.focus",
  "when": "terminalFocus"
}

Step to configure:

  1. Go to: File > Preferences > keyboard shortcuts
  2. Then in the search-bar, search for focus terminal
  3. Select workbench.action.terminal.focus and then CTRL+k or press your custom key and then press enter.
  4. Similarly, in the search-bar search for focus active editor group
  5. Select workbench.action.focusActiveEditorGroup and then press CTRL+j or press your custom key and then press enter.

After the above setup:

  • Press CTRL+k to focus cursor on terminal
  • Press CTRL+j to focus cursor on coding section without closing terminal
10
  • Great answer, I opted for the Intellij/IDEA settings of ctrl + tab + ctrl + t. Thanks for making this easy to follow +1. Oct 24, 2018 at 18:58
  • 5
    the "when" condition should be reversed. It should be "when": "!terminalFocus" for Ctrl-K Dec 13, 2018 at 13:47
  • 1
    Doesn't this kill the two-part keybindings that rely on first pressing ctrl+k? Apr 21, 2020 at 21:43
  • 2
    you can replace !terminalFocus with editorTextFocus
    – Flov
    Jun 17, 2022 at 13:26
  • 1
    @kev, yes, this is possible. Just make sure to use the correct when conditions. (Or actually it even seems to work without, as in this answer). Aug 10, 2022 at 15:20
34

Refer to this Question/Answers Switch focus between editor and integrated terminal in Visual Studio Code on Stackoverflow, I think @Trav L answer might be closed one. But need to config a little bit more.

VS Code v1.26.1 as a base version

  1. Open keyboard shortcut editor from menu File->Preferences->Keyboard Shortcuts (Ctrl+K Ctrl+S)
  2. Click on the link keybindings.json above the screen.
  3. Overwrite your custom keyboard shortcuts on the right side panel, the keybindings.json file will store in your <user dir>\AppData\Roaming\Code\User. With this values you can overloading the key shortcut with using when keyword like code below.

Credit: @wgj user of Stackoverflow

// Toggle between terminal and editor focus
{ "key": "ctrl+`", "command": "workbench.action.terminal.focus"},
{ "key": "ctrl+`", "command": "workbench.action.focusActiveEditorGroup", "when": "terminalFocus"}
  1. Now you can toggle cursor position by press the same key Ctrl+`, VS Code will recognize base by situation where the cursor is.

Special 1

Use Settings Sync extension for saving your custom key binding and others to your secret GIST (Github), for switching between workstation, it's recommended from me. It's quite convenient for me.

Special 2

Some time I need to kill the terminal pane for get the whole code area screen. So I also setting this to keybindings.json. The result is equal to clicking on the X mark of the terminal pane. (Just change to your favorite key if you would like to)

{ "key": "ctrl+k ctrl+`", "command": "workbench.action.terminal.kill" },

1
  • I would advice against workbench.action.terminal.kill since it kills the terminal instead of hiding it, so the next time you show it, you have to wait (it's quick I know) until it loads.
    – sekmo
    Mar 3, 2021 at 20:24
16

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"
}]
7

You do this by setting the keybindings for Focus Terminal and Focus Active Editor Group. These two will allow you to switch the focus between the Editor and the Terminal, without having to just close the terminal.

The other positive is if you perform some action that causes another panel to open such as Output or Problems. Using the keystroke for the editor group will change your focus back to the editor.

I can't say what these are by default because I set this long ago in Code. As you can see from the screenshot below I set them to the same keybinding: ctrl + shift + i.

This makes them act as a toggle switch so it takes the focus back and forth. You can basically just hold down ctrl + shift, then hitting i will move your focus back and forth.

enter image description here

0
5

What I like to do is

  • Focus on terminal

    Ctrl+`

  • Focus back to Editor

    Ctrl + E, Enter

4

Here is how to have the same hotkey to switch back and forth from code to terminal for maximum productivity:

    {
        "key": "f1",
        "command": "workbench.action.focusActiveEditorGroup",
        "when": "terminalFocus"
    },
    {
        "key": "f1",
        "command": "workbench.action.terminal.focusNext",
        "when": "!terminalFocus"
    },
4

If you want Ctrl+` to toggle between terminal and the text editor, then do the following:

  1. Open your keybinding.json file: Ctrl+Shift+P then select Preferences: Open Keyboard Shortcuts (JSON).

  2. Add the following line:

  { "key": "ctrl+`", "command": "workbench.action.terminal.toggleTerminal" },
  1. Save and close keybinding.json file.
2
  • best answer. easy and simple. Apr 24, 2021 at 4:00
  • This is good, although it closes (hides?) the terminal when toggling away.
    – Ryan
    Aug 26, 2022 at 17:48
2

To switch between the editor and terminal in VS Code (Mac), you can use the following keyboard shortcuts:

Ctrl + ~: To go to the terminal

Ctrl + 1: To go back to the editor

Ctrl + up: To select the editor when the terminal is focused

Ctrl+Shift+P: to open the command palette and search for Focus

1
  • ...and command+b to toggle the left side panel containing Explorer, Extensions, etc.
    – 7stud
    Feb 16 at 17:20
1

Toggle Integrated Terminal

Ctrl + `

This will turns on/off terminal viewport while switches your cursor back and forth between editor and terminal.

1
  • 1
    OP specifically stated: "the best I could find would be to close and open the terminal."
    – user94184
    Jan 14, 2018 at 6:47
0

I see you already got some options, but I wanted to add the method I use.

Press CTRL + SHIFT + p
Write 'view terminal'
Command palette should now show: View: Toggle Integrated Terminal
Press ENTER

Now you can use CTRL + SHIFT + p followed by ENTER to toggle between terminal and the text editor as long as that command is the last used in the command palette.

This option will hide the terminal when you go back to the editor.

An alternative that only shifts focus and keeps terminal visible is here:

View: Focus First Editor Group
Terminal: Focus Terminal

Also found in the command palette.

I know they are not direct shortcuts, but I find the command palette easy to work with, since I have the commands I often use a few clicks away by using the down arrow.

3
  • What is Ctrl+Shift+P supposed to do? Does nothing for me with default keybindings.
    – bugybunny
    Oct 9, 2018 at 9:33
  • Command Palette# VS Code is equally accessible from the keyboard. The most important key combination to know is Ctrl+Shift+P, which brings up the Command Palette. From here, you have access to all of the functionality of VS Code, including keyboard shortcuts for the most common operations.
    – anders
    Oct 10, 2018 at 12:50
  • Oh, I wasn‘t in VSCode but in Visual Studio Professional which is something different. Nvm
    – bugybunny
    Oct 10, 2018 at 13:39
0

There is no default shortcut for switching between terminal and editor in VScode. But you can add USER shortcut in the Settings > Keyboard Shortcuts.

Note:- I have placed "Altr + Ctrl + ," for Editor Focus and "Altr + Ctrl + ." for Terminal Focus as shortcuts, as they are not used by any other tasks and are easy to reach.

In Keyboard Shortcuts, type Focus Active Editor Group and DOUBLE CLICK the option and create your own shortcut and press ENTER.

In Keyboard Shortcuts, type Terminal: focus terminal action and find the option exactly we have written above i.e. "Terminal: focus terminal action" and create your own shortcut and press ENTER

There are many similar options related to terminal focus like previous terminal, next terminal etc but they already have shortcuts, so it would be easy to find it.

Well, i have provided the method for windows, And i am not sure about IOS and LINUX, But I think it will work.

0

answer rolling for April 2021

to focus to your differents panel of VSCode you have to edit your "workbench" commands :

  1. CTRL + K +CTRL +S otherwise Files > Preferences > Keyboard Shortcut

    look for this command

    workbench.action.terminal.focus

    and then add your prefered keybinding for this command vscode zoom on commands

  2. to focus to your code you have to set the following command

    workbench.action.focusActiveEditorGroup

  3. to focus into the file explorer of vscode you have to set the following command

    workbench.files.focusFilesExplorer

and no more need to search to the mouse or to quit your keyboard for the touchpad

That's all folks ! Hope you will spend less energy on your touchpad ... !

0

In case that somebody wants to switch between the editor window above and the panel below, regardless of whether the Terminal, the Debug Console, the Output window or the Problem window is opened right now, you can use this code:

{ 
    "key": "ctrl+.", 
    "command": "workbench.action.focusPanel"
},
{ 
    "key": "ctrl+.", 
    "command": "workbench.action.focusActiveEditorGroup", 
    "when": "panelFocus"
}

It took me a bit of trying out until I found that strangely it is focusPanel in the command, but panelFocus in the when-condition.

Note that in my example, I am using "ctrl+.", not "ctrl.+`".

0

Very convenient way to switch between editor and terminal with maximize the window by the default shortcut Ctrl+`

  {
    // disable default rule
    "key": "ctrl+`",
    "command": "-workbench.action.terminal.toggleTerminal",
  },
  {
    // If active, maximize the terminal. If maximized, toggle and focus to the editor.
    "key": "ctrl+`",
    "command": "runCommands",
    "args": {
      "commands": [
        "workbench.action.toggleMaximizedPanel",
        //"workbench.action.focusActiveEditorGroup",
      ]
    },
    "when": "terminalIsOpen && terminalFocus && !toggleMaximizedPanel"
  },
  {
    // Open the terminal
    "key": "ctrl+`",
    "command": "workbench.action.terminal.toggleTerminal",
    "when": "!terminalIsOpen"
  },
  {
    // Hide the terminal, if editor is active
    "key": "ctrl+`",
    "command": "workbench.action.togglePanel",
    "when": "terminalIsOpen && !terminalFocus"
  },
0

In version 1.86.2 on linux (i dont know whether it is matter) The default keybinding for toggle between the editor, the terminal, and the side bar is F6 and Shift+F6 for reverse toggle.

In more details in the keybinding.json file:

{
  "key": "f6",
  "command": "workbench.action.focusNextPart"
}

{
  "key": "shift+f6",
  "command": "workbench.action.focusPreviousPart"
}
1
  • Which file is this?
    – Dominique
    Feb 21 at 13:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .