VSCode 本身无“一键打开指定工作区”的内置快捷键,因工作区以独立进程窗口运行;可靠方式是使用系统级快捷键绑定 code /path/to/x.code-workspace 命令,或通过命令面板执行 workbench.action.openRecent 快速访问最近工作区。

VSCode 本身不提供“一键打开指定工作区”的内置快捷键,因为工作区是进程级隔离的——每个 .code-workspace 文件启动的是一个独立窗口进程,不是标签页或会话。所以你不能像 Ctrl+Tab 切编辑器那样绑定一个命令来“切换到 A 工作区”。但你可以绕过这个限制,用系统级或 VSCode 命令面板 + 自定义命令的方式实现「快速打开」。
用命令面板 + 自定义任务快速触发工作区打开
VSCode 允许你把常用命令封装成可搜索、可快捷键绑定的“自定义命令”,哪怕它底层调用的是外部命令。
- 打开命令面板:
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS) - 输入并运行:
Tasks: Configure Task→ 选择“创建 tasks.json 文件” → 选“Others”模板 - 在生成的
.vscode/tasks.json(建议放在用户级,即~/.vscode/tasks.json)中添加一个 shell 任务:
{
"version": "2.0.0",
"tasks": [
{
"label": "open-my-backend-workspace",
"type": "shell",
"command": "code /path/to/backend.code-workspace",
"group": "build",
"presentation": {
"echo": true,
"reveal": "never",
"focus": false,
"panel": "shared",
"showReuseMessage": true,
"clear": false
}
}
]
}
- 保存后,再按
Ctrl+Shift+P,输入Tasks: Run Task→ 选open-my-backend-workspace就能直接启动 - 后续可为该任务绑定快捷键:进
keybindings.json(Ctrl+K Ctrl+S→ 右上角“打开键盘快捷方式(JSON)”),加一条:
[{
"key": "ctrl+alt+b",
"command": "workbench.action.terminal.runActiveFile",
"args": {
"task": "open-my-backend-workspace"
},
"when": "terminalFocus"
}]
⚠️ 注意:workbench.action.terminal.runActiveFile 不是正确命令 ID;实际应使用 workbench.action.terminal.sendSequence 或更稳妥的方式是直接绑定到 workbench.action.terminal.runSelectedTask ——但该命令不支持传参。所以更可靠的做法是:不用任务,改用“自定义命令扩展”或走下一步。
用设置中的 workbench.commandPalette.history 实现“秒开”最近工作区
Ctrl+R 默认是 Quick Open,但它背后维护着一个访问历史(workbench.commandPalette.history),而 VSCode 的“最近打开的工作区”其实就存在这里。虽然没有 UI 按钮,但你可以通过命令面板快速唤出。
- 按
Ctrl+Shift+P→ 输入workbench.action.openRecent→ 回车 - 列表第一项通常是最近打开的
.code-workspace,上下键选中后回车即可 - 如果你只固定开 2–3 个工作区,可以把它们设为“固定项”:在命令面板里搜
Preferences: Open Settings (JSON),添加:
"workbench.startupEditor": "none", "workbench.recentlyUsedWorkspaces": [ "/Users/you/projects/frontend.code-workspace", "/Users/you/projects/backend.code-workspace" ]
⚠️ 这个配置项(workbench.recentlyUsedWorkspaces)**VSCode 官方未公开文档**,且在 1.89+ 版本中已被移除。真实有效的方式是靠系统级快捷键或脚本启动。
真正稳定的做法:用系统快捷键绑定 code 命令
VSCode 的 code CLI 命令才是打开工作区的唯一权威入口。所有“快速打开”都该基于它构建,而不是依赖 VSCode 内部状态。
- 确保已安装 CLI:VSCode 菜单栏 →
Shell Command: Install 'code' command in PATH - Windows:用 PowerShell 创建快捷方式,目标为:
"C:\Users\you\AppData\Local\Programs\Microsoft VS Code\Code.exe" "D:\projects\my-app.code-workspace" - macOS:终端执行:
alias vsb='code ~/projects/backend.code-workspace',加到~/.zshrc,然后source ~/.zshrc,之后终端输vss就启动 - 为这些快捷方式分配全局快捷键(如 Windows 的 AutoHotkey、macOS 的 Keyboard Maestro 或系统自带“快捷键 → 应用程序快捷键”)
这是目前唯一不依赖 VSCode 进程状态、不随版本更新失效、且能跨用户/多实例工作的方案。别指望 Ctrl+Shift+P 里搜出“Open My Workspace”——它不会出现,因为 VSCode 不认为工作区是“命令”,而是“启动参数”。
为什么不能直接给工作区配快捷键?关键点在这里
VSCode 的快捷键系统只响应命令(command 字符串),而“打开某个 .code-workspace”不是一个注册过的命令,它是启动时的 argv 参数。你无法在 keybindings.json 中写 "command": "code /path/to/x.code-workspace" ——那只是字符串,不是可执行命令 ID。
- 所有试图在
keybindings.json里用shellCommand.execute或类似扩展实现的方案,都依赖第三方插件,且在 VSCode 1.88+ 后因安全策略被限制 -
workbench.action.files.openFileFolder只能打开文件夹,不支持.code-workspace文件(它会被当普通 JSON 打开) - 即使你双击
.code-workspace文件,系统也是调用code --file-uri file:///...,不是 VSCode 内部命令
所以,别在 VSCode 设置里死磕“绑定工作区快捷键”。该交给操作系统的,就交给操作系统;该用 CLI 的,就用 CLI。这才是稳定、可复现、不被版本升级打断的做法。


















