@TOC
<math xmlns="http://www.w3.org/1998/Math/MathML"> O . 总述 : 如有疑问可留言沟通交流 O. 总述:^{如有疑问可留言沟通交流} </math>O.总述:如有疑问可留言沟通交流
Visual Studio Code 的 "workspace" 是在VSCode窗口(实例)中打开的一个或多个文件夹的集合,即工作区可以包含多个文件夹。
工作区的概念使VS Code能够:
- 配置仅适用于特定文件夹而不适用于其他文件夹的设置。
- 仅在该工作区的上下文中有效的任务和调试器启动配置。
- 存储并恢复与该工作区关联的UI状态(例如,打开的文件)。
- 选择性地仅为该工作区启用或禁用扩展。
注意:
- 可以在没有工作区的情况下打开 VSCode。例如,通过从 "File" 菜单中选择 "Open File" 来打开一个新的VSCode窗口时,将不在工作区内。在这种模式下,VS Code 的一些功能会减少,但仍然可以打开文本文件并对其进行编辑。
- 相对于打开文件夹而言,打开
*.code-workspace
文件 会在用户界面某些区域(例如,文件资源管理器的根)的名称旁边显示了一个额外的(WORKSPACE)后缀。
<math xmlns="http://www.w3.org/1998/Math/MathML"> Ⅰ . 工作区类别 : 如有疑问可留言沟通交流 Ⅰ. 工作区类别:^{如有疑问可留言沟通交流} </math>Ⅰ.工作区类别:如有疑问可留言沟通交流
VSCode 的工作区分为如下两类:
$Ⅰ.1 单文件夹工作区(Single-folder workspaces)
打开文件夹后,VS Code 将自动跟踪打开的文件和编辑器布局等信息,以便在重新打开该文件夹时编辑器将保持原样。还可以添加其他特定于文件夹的配置,如特定于工作区的设置(相对于全局用户设置)、任务定义和调试启动文件。
$Ⅰ.2 多文件夹工作区(Multi-root workspaces)
多个文件夹(根文件夹)工作区是 VS Code的高级功能,允许您将多个不同的文件夹配置为工作区的一部分。生成一个 <name>.code-workspace
JSON文件,列出了工作区的文件夹。例如:
json
{
"folders": [
{
"path": "my-folder-a"
},
{
"path": "my-folder-b"
}
]
}
可以先在 VS Code 中打开一个文件夹,然后根据需要添加更多文件夹。除非已经打开了 *.code-workspace
文件,否则第一次向工作区添加另一个文件夹时,VS code将自动创建一个"untitled"工作区。在后台,VS Code会自动维护一个 untitled.Code-workspace
文件,该文件包含当前会话中的所有文件夹和工作区设置。工作区将保持"untitled",直到用户决定将其保存到磁盘。
<math xmlns="http://www.w3.org/1998/Math/MathML"> Ⅱ . 工作区设置 : 如有疑问可留言沟通交流 Ⅱ. 工作区设置:^{如有疑问可留言沟通交流} </math>Ⅱ.工作区设置:如有疑问可留言沟通交流
工作区设置将覆盖全局用户设置(user settings),应用于工作区上下文。工作区设置的存储位置取决于工作区类别:
Ⅱ.1 设置项菜单(UI)
Ⅱ.2 设置项脚本(JSON)
工作区类别 | 描述 | 工作区设置的存储位置 |
---|---|---|
Single-folder workspace |
打开 单个文件夹 作为工作区 | 所有工作区设置将存储在 .vscode/settings.json 中 |
Multi-root workspace |
打开 *.code-workspace 文件 |
所有工作区设置将添加到 *.code-workspace 文件中。(但依旧可以单独配置每个文件夹(根目录)的设置,编辑器的设置将显示第三个设置作用域范围,称为文件夹设置(Folder Settings),将存储在对应文件夹下的 .vscode/settings.json 中) |
因此,vscode 的设置项 作用域划分等级如下图:
与工作区设置作用域特定于工作区的方式类似,tasks 和 launch 配置也限定在工作区的范围内。根据打开的是文件夹作为工作区 还是 .code-workspace
文件,工作区的 tasks 和 launch 配置文件将位于.vscode
文件夹 或 .code-workspace
文件内。此外,tasks 和 launch 配置始终可以在文件夹级别配置 ,即使打开了 .code-workspace
文件也是如此。 有关如何在VScode中使用 tasks 和 launch 配置,可以参考 tasks 和 debugging
<math xmlns="http://www.w3.org/1998/Math/MathML"> Ⅲ . 潜在问 题 如有疑问可留言沟通交流 Ⅲ. 潜在问题^{如有疑问可留言沟通交流} </math>Ⅲ.潜在问题如有疑问可留言沟通交流
- Q1. 与文件夹(Single-folder workspaces)相比,多根工作区(Multi-root workspaces)有什么好处?
A1: 最明显的优点是,多根工作区允许处理多个项目 ,可以将任意位置的文件夹添加到工作空间,这些项目可能不存储在磁盘上的同一根目录中。
即使是对于单个文件夹的项目,也推荐使用
.code-workspace
文件来管理项目配置。可以在文件夹中存储多个.code-workspace
文件,以根据场景提供项目某些方面的作用域文件夹视图(例如,client.code-workspace、server.code-wworkspace,以从文件资源管理器中筛选出不相关的文件夹)。由于.code-workspace
文件支持相对路径 ,因此这些工作区文件将适用于所有人,而与文件夹的存储位置无关。最后,如果希望某些项目应用相同的工作区设置或 tasks / launch 配置集可以考虑将这些设置或任务添加到
.code-workspace
文件中,并从该工作区 添加/删除 这些文件夹。
- Q2. 为什么VS Code会在重新启动时恢复所有无标题(untitled)的工作区?
A2: 无标题(untitled)工作区是为 明确决定是否保留而设计的。第一次创建无标题工作区时,VS Code 会将指定的文件夹以及所有现存的工作区设置添加到工作区文件中。在保存或删除无标题的工作区之前,此用户数据始终被还原并显示在 VSCode 窗口中。
- Q3. 如何删除无标题的工作区?
A3: 可以通过关闭窗口并取消保存无标题(untitled)工作空间的提示来删除无标题工作区...
- Q4. 可以使用没有文件夹的多根工作区吗?
A4: 可以 将
.code-workspace
文件的文件夹部分保留为空,这样会得到一个不显示任何根目录的 VS code 实例。在这种情况下仍然可以存储工作区设置,甚至 tasks / launch 配置...
- Q5. VS Code支持 项目(projects) 或 解决方案(solutions) 吗?
A5: VSCode 没有"项目"或"解决方案"的概念 (项目 或 解决方案 有时在其他开发工具中定义,例如Visual Studio IDE)。可能会在VSCode文档中看到"项目"一词,但它通常意味着"你正在做的事情"。根据编程语言或框架,工具集本身可能支持称为"项目"的东西,以帮助定义构建配置或枚举包含的文件。...
<math xmlns="http://www.w3.org/1998/Math/MathML"> Ⅳ . 友情链 接 如有疑问可留言沟通交流 Ⅳ. 友情链接^{如有疑问可留言沟通交流} </math>Ⅳ.友情链接如有疑问可留言沟通交流
文章撰写不易,转载请标明出处!
如果感觉本文对您有帮助,请留下您的赞,您的支持是我坚持写作分享的最大动力,谢谢!
References
0. Workspaces in Visual Studio Code
1. Tasks in Visual Studio Code
2. Debugging in Visual Studio Code
可以肯定的是学海无涯,这篇文章也会随着对 vscode 的深入学习而持续更新,
欢迎各位在评论区留言进行探讨交流。