什么是 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 打开文件夹之外,您无需执行任何操作即可使文件夹成为 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 中打开的无标题多根工作区
注意:无标题工作区和保存的工作区之间实际上没有区别,只是为了方便起见,无标题工作区会自动为您创建,并且将始终恢复,直到您保存为止。当您关闭打开了无标题工作区的窗口时,我们会自动删除无标题工作区(在要求您确认后)。
工作区设置
工作区设置使您能够在已打开的工作区上下文中配置设置,并始终覆盖全局用户设置。它们物理存储在 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 窗口中,直到保存或删除无标题工作区。
如何删除无标题的工作区?
您可以通过关闭其窗口并取消保存无标题工作区的提示来删除无标题工作区。
我可以使用没有文件夹的多根工作区吗?
可以将文件folders
的部分.code-workspace
留空,这样您最终会得到一个不显示任何根文件夹的 VS Code 实例。在这种情况下,您仍然可以存储工作区设置,甚至任务或启动配置。
VS Code 支持项目或解决方案吗?
VS Code 没有“项目”或“解决方案”的概念,因为它们有时在其他开发工具(例如 Visual Studio IDE)中定义。您可能会在 VS Code 文档中看到术语“项目”,但它通常意味着“您正在处理的事情”。根据您的编程语言或框架,工具集本身可能支持称为“项目”的东西,以帮助定义构建配置或枚举包含的文件。