什么是 VS Code 工作区?
Visual Studio Code 的工作区是在 VS Code 窗口(实例)中打开的一个或多个文件夹的集合。在大多数情况下,您将只有一个文件夹作为工作区打开。但是,根据您的开发工作流程,您可以使用一种高级配置——多根工作区——包含多个文件夹。
工作区概念使 VS Code 能够
- 配置仅适用于特定文件夹或文件夹而不适用于其他文件夹的设置。
- 保留仅在该工作区上下文中有效的任务和调试器启动配置。
- 存储和恢复与该工作区相关的 UI 状态(例如,已打开的文件)。
- 选择性地为该工作区启用或禁用扩展。
您可能会在 VS Code 文档、问题和社区讨论中看到“文件夹”和“工作区”这两个术语互换使用。将工作区视为项目的根目录,它具有额外的 VS Code 知识和功能。
注意: 也可以不带工作区打开 VS Code。例如,当您通过选择平台上的文件菜单中的文件打开新的 VS Code 窗口时,您将不在工作区中。在此模式下,VS Code 的某些功能会受到限制,但您仍然可以打开文本文件并编辑它们。
如何打开 VS Code "工作区"?
您可以通过使用文件 > 打开文件夹...菜单,然后选择一个文件夹来打开工作区。
或者,如果您从终端启动 VS Code,可以将文件夹的路径作为第一个参数传递给 code 命令进行打开。例如,使用以下命令打开当前文件夹(.)并用 VS Code 打开:
code .
单文件夹工作区
除了用 VS Code 打开文件夹之外,您不需要做任何事情就可以使一个文件夹成为 VS Code 工作区。一旦您打开了一个文件夹,VS Code 就会自动跟踪配置,例如您打开的文件或编辑器布局。当您在 VS Code 中重新打开该文件夹时,编辑器将保持您上次离开时的状态。
您还可以添加其他特定于文件夹的配置,例如工作区特定设置(与全局用户设置相对)、任务定义和调试启动文件(请参阅下文的工作区设置部分)。

在 VS Code 中打开的单文件夹工作区
多根工作区
多根工作区是 VS Code 的一项高级功能,它允许您配置多个不同的文件夹作为同一工作区的一部分。不是打开一个文件夹作为工作区,而是打开一个 <name>.code-workspace JSON 文件,该文件列出了工作区中的所有文件夹。例如:
{
"folders": [
{
"path": "my-folder-a"
},
{
"path": "my-folder-b"
}
]
}

在 VS Code 中打开的多根工作区
注意: 打开文件夹与打开
.code-workspace文件在视觉上的区别可能很微妙。为了提示您已打开.code-workspace文件,用户界面的某些区域(例如,文件资源管理器根目录)会在名称旁边显示一个额外的 (工作区) 后缀。
未命名多根工作区
您可以灵活地在工作区中添加或删除文件夹。从在 VS Code 中打开一个文件夹开始,然后根据需要添加更多文件夹。

用于在工作区中添加或删除文件夹的文件资源管理器上下文菜单
除非您已经打开了一个 .code-workspace 文件,否则当您第一次向工作区添加第二个文件夹时,VS Code 会自动创建一个*未命名*的工作区。在后台,VS Code 会自动为您维护一个 untitled.code-workspace 文件,其中包含当前会话中的所有文件夹和工作区设置。工作区将保持*未命名*状态,直到您决定将其保存到磁盘。

在 VS Code 中打开的未命名多根工作区
注意: 未命名工作区和已保存工作区之间没有区别,只是未命名工作区是为您自动创建的,方便您使用,并且将始终恢复,直到您保存它。当您关闭包含未命名工作区的窗口时,VS Code 会在询问您确认后自动删除未命名工作区。
工作区设置
工作区设置使您能够在已打开工作区的上下文中配置设置。工作区设置始终覆盖全局用户设置。它们物理存储在 JSON 文件中,其位置取决于您是打开了一个文件夹作为工作区,还是打开了一个 .code-workspace 文件。
有关设置范围及其文件位置的全面说明,请参阅设置文档。
单文件夹工作区设置
当您打开一个文件夹作为工作区时,工作区设置存储在 .vscode/settings.json 中。

当文件夹作为工作区打开时的设置编辑器
多根工作区设置
当您打开一个 .code-workspace 作为工作区时,所有工作区设置都将添加到 .code-workspace 文件中。
您仍然可以为每个根文件夹配置设置,设置编辑器将显示第三个设置范围,称为文件夹设置

打开多根工作区时的设置编辑器
每个文件夹配置的设置会覆盖 .code-workspace 中定义的设置。
工作区任务和启动配置
与工作区设置特定于工作区类似,任务和启动配置也可以限定到工作区。
根据您是打开了一个文件夹作为工作区还是打开了一个 .code-workspace 文件,工作区任务和启动配置的位置要么在 .vscode 文件夹内,要么在 .code-workspace 文件内。此外,任务和启动配置始终可以在文件夹级别定义,即使您打开了一个 .code-workspace 文件。
有关如何在 VS Code 中使用任务和启动配置的更全面概述,请参阅任务和调试章节。
常见问题
多根工作区相比于单文件夹有什么优势?
最明显的优势是,多根工作区允许您处理多个项目,这些项目可能不存储在磁盘上的同一父文件夹中。您可以从任何地方选择文件夹添加到工作区。
即使您主要在基于单文件夹的项目中工作,您也可以从使用 .code-workspace 文件中受益。您可以将多个 .code-workspace 文件存储在文件夹中,以根据场景提供项目某些方面的作用域文件夹视图(例如 client.code-workspace、server.code-workspace 以从文件资源管理器中过滤掉不相关的文件夹)。由于 .code-workspace 文件支持 folders 部分的相对路径,因此这些工作区文件对每个人都适用,而与文件夹存储位置无关。
最后,如果您希望对某些项目应用相同的应用程序工作区设置或任务/启动配置,请考虑将它们添加到 .code-workspace 文件中,并将这些文件夹添加到该工作区或从中删除。
为什么 VS Code 在重新启动时会恢复所有未命名工作区?
未命名工作区被设计成您必须明确决定保留或不保留的东西。当第一次创建未命名工作区时,VS Code 将指定文件夹添加到工作区文件中,并添加所有现有的工作区设置。这些用户数据始终会被恢复并在 VS Code 窗口中显示,直到未命名工作区被保存或删除。
如何删除未命名工作区?
您可以通过关闭其窗口并拒绝保存未命名工作区的提示来删除未命名工作区。
可以在没有文件夹的情况下使用多根工作区吗?
可以将 .code-workspace 文件的 folders 部分留空,这样您最终会得到一个不显示任何根文件夹的 VS Code 实例。在这种情况下,您仍然可以存储工作区设置,甚至任务或启动配置。
VS Code 是否支持项目或解决方案?
VS Code 没有像 Visual Studio IDE 等其他开发工具中定义的“项目”或“解决方案”的概念。您可能会在 VS Code 文档中看到“项目”一词,但它通常意味着“您正在处理的事物”。根据您的编程语言或框架,工具集本身可能支持称为“项目”的内容,以帮助定义构建配置或枚举包含的文件。