vs code内置终端默认启动快捷键是ctrl+(windows/linux)或cmd+(macos),即键盘左上角数字1左侧带波浪线的键;该组合键用于切换终端面板显隐,首次使用需确认输入法未劫持、系统无快捷键冲突且终端未被禁用。

Windows/macOS/Linux 通用快捷键是什么
VSCode 内置终端默认启动快捷键是 Ctrl+`(Windows/Linux)或 Cmd+`(macOS),也就是键盘左上角、数字 1 左侧那个带波浪线和反引号的按键。这个组合键直接聚焦到已打开的终端面板,如果没打开过,会新建一个默认 shell 的终端实例。
注意:不是 Ctrl+Shift+`,也不是 Ctrl+~ —— 键盘布局不同可能导致误按,尤其机械键盘或非美式键盘用户容易按成 Ctrl+² 或 Ctrl+´,结果没反应。
- 首次使用前确认终端未被禁用:
"terminal.integrated.enabled": true(在settings.json中) - 若快捷键失效,大概率是系统级快捷键冲突(比如 macOS 的「显示桌面」也默认用
Cmd+`,需在「系统设置 → 键盘 → 快捷键 → 调度中心」里关掉) - 可以自定义快捷键:打开命令面板(
Ctrl+Shift+P),输入Preferences: Open Keyboard Shortcuts (JSON),添加绑定:
[
{
"key": "ctrl+alt+t",
"command": "workbench.action.terminal.toggleTerminal"
}
]
为什么按了 Ctrl+` 没反应
最常见原因是终端面板被意外关闭后,快捷键仍会尝试聚焦它,但面板不可见 → 看似“没反应”。此时终端其实已启动并隐藏在底部面板区域,只是高度被拖成 0 像素。
- 手动恢复:鼠标移到窗口最底部边缘,当光标变成上下箭头时,向上拖动即可拉出终端
- 检查是否被其他扩展劫持:禁用近期安装的终端类扩展(如
shell-launcher、terminal-tabs),再试原生快捷键 - Windows 用户注意:某些输入法(尤其是中文输入法)激活状态下,
Ctrl+`可能被拦截为「切换中英文标点」,切换到英文输入法再试 - VSCode 启动时若检测到无可用 shell(如 Windows 上删了
PowerShell.exe或路径异常),终端初始化失败,快捷键也会静默失效 —— 查看Help → Toggle Developer Tools → Console是否有Failed to launch terminal报错
如何让终端启动时自动运行特定命令
不需要插件,VSCode 原生支持终端初始化命令,通过 terminal.integrated.profiles.* 和 terminal.integrated.defaultProfile.* 配置即可。
- 打开
settings.json,添加 profile(以 Windows PowerShell 为例):
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"args": ["-NoExit", "-Command", "cd ~; Write-Host '✅ Home loaded' -ForegroundColor Green"]
}
}
- 再设为默认:
"terminal.integrated.defaultProfile.windows": "PowerShell" - Linux/macOS 类似,用
profiles.linux/profiles.osx,args传入 shell 参数(注意-i表示交互模式,-c后跟命令字符串) - ⚠️ 不要用
terminal.integrated.shell.*(已废弃),该配置在 1.79+ 版本中完全失效,强行写入会导致终端无法启动
多终端标签页下快捷键的行为逻辑
Ctrl+`(或你自定义的 toggle 快捷键)只控制终端面板的显隐状态,不切换标签页。想在多个终端实例间快速跳转,得用另一组快捷键:
-
Ctrl+Shift+PageUp/Ctrl+Shift+PageDown:切换终端标签页(Windows/Linux) -
Cmd+Shift+[/Cmd+Shift+]:macOS 上等效操作 -
Ctrl+Shift+T:新建终端标签页(注意不是浏览器里的「重新打开关闭的标签页」) - 终端内部焦点丢失时(比如点了编辑器又想回终端),必须先按一次
Ctrl+`唤出面板,再用方向键或鼠标点选目标标签页 —— 没有单快捷键直达指定编号终端的原生方案
终端标签页数量多了之后,靠快捷键循环切换效率低,建议右键标签页选择「重命名」,用语义化名称(如 dev-server、db-migrate)辅助识别,避免切错环境执行危险命令。











