有人知道在Visual Studio Code中切换编辑器和集成终端的快捷键(Mac和Linux)吗?


当前回答

我的解决方案:

只有一把钥匙 如果还没有终端:打开一个终端并聚焦在它上面 如果焦点在终端上:隐藏面板并切换回编辑器 如果焦点在编辑器上并且有一个终端:取消终端窗格并聚焦在它上

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

其他回答

对于版本:1.26.1 (linux),默认情况下没有设置快捷方式。 设置快捷方式

打开键盘快捷键面板[ctrl + k, ctrl + s] 搜索焦点终端

设置快捷方式

编辑器的焦点已默认设置。

我通过设置>键盘快捷键来做到这一点,然后在它给出一个搜索栏类型的焦点终端的部分中选择该选项。它将要求输入您想要为此操作设置的组合。这样做。至于编辑器焦点,在搜索栏中输入“编辑器焦点”,并输入您想要的键。如果你出色地添加了一个键。可以通过编辑上面评论中提到的Jason来删除它

有点晚了,但我在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"
}

我想要单独的键来打开/关闭终端和在窗口之间来回切换焦点。

虽然VS Code有很多模式切换和导航快捷方式,但没有一个专门用于“从编辑器移动到终端,然后再返回”。但是,您可以通过重载键和使用when子句来组合这两个步骤。


解决方案

您可以通过向键绑定添加适当的设置来实现所需的效果。json文件。以下是必需的步骤:

打开命令面板(Ctrl+Shift+P Windows/Linux或⇧⌘P Mac)。 输入“首选项:打开键盘快捷键(JSON)”并按Enter。 将以下条目添加到键绑定中。json文件:

// Toggle between terminal and editor focus
{
    "key":     "ctrl+`",
    "command": "workbench.action.terminal.focus"
},
{
    "key":     "ctrl+`",
    "command": "workbench.action.focusActiveEditorGroup",
    "when":    "terminalFocus"
}

使用这些快捷键,您可以使用相同的击键在编辑器和集成终端之间集中注意力。


NOTE

这里建议的组合键现在作为默认值内置到VSCode中(从1.72.2开始,可能更早)。在尝试添加它之前,看看ctrl + '是否有效。

NOTE

在现代版本的VS Code(截至2022年)中,默认键盘快捷键(JSON)文件是只读的,所以这就是为什么对于自定义设置,你需要编辑一个单独的专用文件keybindings.json。

更多信息可以在Visual Studio官方文档页面上找到:

Visual Studio Code的键绑定:高级定制

实际上,在VS Code 1.48.1中,有一个toggleTerminal命令;我不知道以前的版本中是否有;)您可以在键绑定中使用它。json文件。

这在Windows上适用,在Linux上也适用。

{
    "key": "ctrl+alt+right",
    "command": "workbench.action.terminal.toggleTerminal",
    "when": "editorTextFocus || terminalFocus"
}