VS Code快捷键:聚焦集成终端

55

更新:此问题已在VS Code的较新版本中修复(已测试1.41.1),使用control + `可以同时用于打开和聚焦终端

如何在终端显示时将焦点聚焦到集成终端?

https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf

有一个快捷方式可以显示集成终端,但如果终端已经打开,则该快捷方式将隐藏终端。如果有一个快捷键可以在编辑器上输入文本的同时将焦点定位到终端,那就太好了。


2
command+'出了什么问题? - Charlie Parker
3
这个问题已经过时,对于更新的版本(我正在测试1.41.1)似乎不再有效。VS Code开发人员已经修复了这个问题。现在,如果面板可见,则“command + \”将会聚焦。 - Gihan
现在在 MacOS 上是使用“ctrl + `” - Petercopter
Ctrl + \ 绑定在 Windows 上似乎不是默认设置。请参见下面我的答案中的更多细节:https://dev59.com/91gQ5IYBdhLWcg3wIQZB#47912353 - Charles Roper
7个回答

63

超级简单的答案

如果终端尚未显示,则我按下Ctrl+J

如果终端已经显示,则我会按两次Ctrl+J

注意:Ctrl在Mac上是Command


更加复杂的答案

打开命令面板,搜索首选项:打开键盘快捷方式以获取当前键盘快捷方式的详细信息。

Open Keyboard Shortcuts

一些人(以及官方快捷方式参考)报告以下内容可以直接使用:

  • Mac: Command + ` 或者
  • Win/Linux: Ctrl + `

(这是一个反引号,不是撇号、单引号或者引号)

就我所知,在默认情况下,自版本1.72.21.73.0-insider起,此快捷键未被默认绑定(至少在Windows上)。

Ctrl+` is not bound by default

可能是因为在Windows上,许多(甚至大部分?)PC键盘上的反引号键是一个OEM键(在我的情况下,是oem_8)。


如果您想手动添加切换终端和编辑器的绑定,请按照以下步骤操作:

  1. 打开键盘快捷方式(命令面板 > 首选项:打开键盘快捷方式

    Open Keyboard Shortcuts

  2. 找到Terminal: Focus Terminal,设置您喜欢的键绑定,并将When值设置为!terminalFocus(右键单击 > 更改When表达式

  3. 找到View: Focus Active Editor Group,设置您喜欢的键绑定(可以相同以便作为切换),并将When值设置为terminalFocus

    keyboard shortcuts


1
我正在寻找的答案是(在Mac上按Cmd+J)。 - u-phoria
使用vscode 1.73.1(或者接近该版本的最新版本),有一个行为变化:Ctrl-J比Ctrl-`更好用。特别是,当您首次启动vscode时,Ctrl-`不会像在旧版本的vscode中那样进行初始焦点切换到终端,因此额外的按键不会隐藏包含它的面板。Ctrl-`仍然在其他所有情况下工作。但是,Ctrl-J在所有情况下都有效,因此双击Ctrl-J可用于在启动时隐藏该面板,以便您可以看到更多的编辑器空间。 - Stephen Warren

52
你需要的是 "Terminal: Focus Terminal" 命令。默认情况下,它没有分配快捷键,但是你可以通过键盘快捷键首选项轻松完成此操作。
你也可以通过按 F1 并输入 Focus Terminal命令面板 中调用它。
请记住,如果没有活动的集成终端窗口,此命令还将创建一个新的集成终端窗口。

enter image description here

要访问键盘快捷方式的偏好设置,请按下F1激活命令面板,然后键入打开键盘快捷方式。 要为命令分配新的快捷方式,请按下在行左侧可见的+符号。 将弹出一个窗口,在其中记录您想要的键。

11
此外,使用Ctrl+```按键组合进行双倍操作也是可以的。当没有终端打开时,它将被打开;如果已经打开了一个终端,则会将焦点放在该终端上。我认为这是大多数用户对默认行为的期望。 - Jacob Stamm
3
根据最新的内部版本,终端焦点热键似乎现在也绑定到Ctrl+```。 - Julian H. Lam

13

@ringo-de-smet

你分享的 keybindings.json 在我的 @code 1.25.1 上没有生效。我只需要稍微修改一下即可:

{
  "key": "cmd+y",
  "command": "workbench.action.terminal.focus",
  "when": "editorFocus"
},
{
  "key": "cmd+y",
  "command": "workbench.action.focusActiveEditorGroup",
  "when": "terminalFocus"
}

我需要使用“oem”代码来制作它,因为它是一个特殊的(非美国)字符。 - Niko Pasanen
不错,但我使用键“cmd/ctrl+`”代替。 - msmaromi

11

我已经将以下内容添加到我的keybindings.json文件中:

{ 
    "key": "ctrl+`",        
    "command": "workbench.action.terminal.focus",
    "when": "editorFocus"
},
{ 
    "key": "ctrl+`",        
    "command": "workbench.action.terminal.focus",
    "when": "explorerViewletFocus"
}

对我而言,这大多数情况都适用:当我的资源管理器拥有焦点或编辑器拥有焦点时,相同的键绑定将聚焦于现有终端而不切换它。

您可以在VSCode KeyBindings文档中找到所有可用的when子句。

这不会与已经全局使用的workbench.action.terminal.toggleTerminal的相同键绑定发生冲突。


8

我猜显示终端的快捷键是CMD+J,它只会显示/隐藏终端面板。如果你想在终端显示时专注于终端,可以使用CTRL+ `


不,它不起作用,cmd+j和ctrl+`都切换终端窗格。 - Gihan

4
尽管被接受的答案是最好的,但有一种方法可以在不修改设置的情况下专注于终端。
如果已经可见,输入CTRL + `两次将首先关闭终端控制台,然后重新打开并聚焦于其中。

1
我最近想要更改这个热键绑定
以下是我在Mac上所做的:
1 打开键盘快捷键编辑器
使用快捷键:cmd + K + cmd + S
或者可视化方式:Code -> Preferences -> Keyboard Shortcuts
2 搜索
查找:切换集成终端
3 编辑
更改为您喜欢的绑定。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接