vscode 的工作区(workspace)

@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 配置,可以参考 tasksdebugging

<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>Ⅳ.友情链接如有疑问可留言沟通交流

  1. Visual Studio Code文章专栏
  2. Visual Studio文章专栏
  3. 点云文章专栏

文章撰写不易,转载请标明出处!
如果感觉本文对您有帮助,请留下您的赞,您的支持是我坚持写作分享的最大动力,谢谢!

References
0. Workspaces in Visual Studio Code
1. Tasks in Visual Studio Code
2. Debugging in Visual Studio Code
可以肯定的是学海无涯,这篇文章也会随着对 vscode 的深入学习而持续更新,
欢迎各位在评论区留言进行探讨交流。

相关推荐
F1FJJ8 小时前
AI 编程实战对比:Claude Code vs Trae
图像处理·人工智能·ai作画·golang·visual studio code
计算机安禾12 小时前
【数据结构与算法】第16篇:串(String)的定长顺序存储与朴素模式匹配
c语言·数据结构·c++·学习·算法·visual studio code·visual studio
山川行2 天前
Python快速闯关专栏的总结
java·开发语言·笔记·python·算法·visual studio code·visual studio
formulahendry3 天前
王炸!VS Code 悄悄推出 Sessions App,全新的 Agentic 开发体验!
visual studio code·vs code·acp
计算机安禾3 天前
【数据结构与算法】第12篇:栈(二):链式栈与括号匹配问题
c语言·数据结构·c++·学习·算法·visual studio code·visual studio
wangjialelele3 天前
现代C++:C++17新特性整理
c语言·开发语言·c++·visual studio code
halazi1004 天前
CodeArts Agent 使用技巧与节约Token技巧
codearts·visual studio code
山川行4 天前
关于《项目C语言》专栏的总结
c语言·开发语言·数据结构·vscode·python·算法·visual studio code
计算机安禾5 天前
【数据结构与算法】第6篇:线性表(二):单链表的实现(头插法、尾插法)
c语言·数据结构·学习·算法·链表·visual studio code·visual studio
计算机安禾5 天前
【数据结构与算法】第5篇:线性表(一):顺序表(ArrayList)的实现与应用
c语言·开发语言·数据结构·c++·算法·visual studio code·visual studio