Ctrl+(Windows/Linux)或Cmd+(macOS)仅聚焦终端而非切换,若终端未创建则静默失败,独立窗口时失效;再按一次返回上一编辑器组但不精准。

Ctrl+` 不是切换,是“聚焦终端”
按一次 Ctrl+`(Windows/Linux)或 Cmd+`(macOS)只会把焦点移到终端——如果终端还没创建,它静默失败;如果终端被拖成独立窗口,它彻底失效。再按一次,VSCode 尝试回到“上一个编辑器组”,但不保证是你刚写的那个文件标签,也不处理多组场景下的目标定位。
常见错误现象:Ctrl+` 按了没反应,大概率是:键盘在中文输入法下按不出反引号、系统级软件劫持(如 Win+G 游戏栏、Alfred、Chrome 的 Cmd+`)、或者焦点卡在搜索框/命令面板/Git 提交框里。
- 先手动执行
Terminal: Create New Terminal一次,确保终端已初始化 - Mac 用户需在「系统设置 > 键盘 > 快捷键」中禁用 macOS 原生的
Cmd+`(同一应用内窗口切换) - 别依赖
Ctrl+Tab回编辑器——它会跳到终端、大纲、问题面板等任意可聚焦区域
真正可靠的双向切换:绑定两个命令
VSCode 没有原生“编辑器 ⇄ 终端”对称切换命令,但 workbench.action.terminal.focusAtIndex1 和 workbench.action.focusActiveEditorGroup 这一对能稳定实现:前者强制聚焦第一个终端(无论是否最小化),后者强制聚焦当前编辑器组(不管焦点在哪)。
实操建议:
- 打开快捷键设置:
Ctrl+K Ctrl+S - 搜
focus terminal,将workbench.action.terminal.focusAtIndex1绑定到顺手组合,比如Ctrl+J - 搜
focus editor,将workbench.action.focusActiveEditorGroup绑定到Ctrl+K(避免用Ctrl+1,它同时作用于左侧活动栏) - 别用
workbench.action.terminal.toggleTerminal:它只控制显隐,不转移焦点
多个终端时怎么精准跳转
开了 3 个以上终端后,Ctrl+` 或循环切换容易误操作。更可控的是编号聚焦:Ctrl+Shift+0 到 Ctrl+Shift+9(Windows/Linux)或 Cmd+Shift+0 到 Cmd+Shift+9(macOS)直接聚焦第 0–9 个终端面板。
注意:
- 编号从 0 开始,且不随关闭重排:关掉 #2 后,#3 还是 #3
- 这是针对「终端面板」(split 出的窗格),不是顶部的标签页(tab)
- 超过 10 个终端?可在
keybindings.json中加自定义命令:terminal.focusAtIndex+{"index": 11}(对应第 12 个)
分屏终端之间切换要先聚焦终端面板
如果你用了 Ctrl+\ 拆分终端,Ctrl+PageUp/Ctrl+PageDown 只在「终端面板已获得焦点」的前提下生效。很多人按了没反应,其实是焦点还停在代码编辑区或 Git 面板上。
正确流程:
- 先按你自定义的终端聚焦键(如
Ctrl+J),让光标进入终端面板 - 再用
Ctrl+PageUp在多个垂直/水平分割的终端之间跳转 - Mac 用户对应键是
Cmd+Shift+[/Cmd+Shift+],不是Cmd+PageUp
终端被最小化(Hide Terminal)后,Ctrl+` 会重新显示并聚焦最后一个活动终端,而不是按顺序跳转——这个细节容易被忽略,尤其在远程开发(WSL/SSH)中,几十毫秒延迟也属于正常响应,不是卡死。


















