ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Visual Studio Code 工作区(Workspace)完全指南:从单文件夹到多根工作区

Visual Studio Code 工作区(Workspace)完全指南:从单文件夹到多根工作区 文档教程【免费下载链接】vscode-docsPublic documentation for Visual Studio Code项目地址https://gitcode.com/gh_mirrors/vs/vscode-docs点击查看免费下载在 Visual Studio CodeVS Code中工作区workspace是所有日常编辑、调试、任务与扩展能力的承载容器。理解工作区的概念与文件存储位置是高效使用 VS Code、乃至进阶掌握多根工作区Multi-root workspaces的前提。本文以 workspaces.md 为骨架结合仓库内 multi-root-workspaces.md、settings.md、tasks.md 与 variables-reference.md 等文档系统讲解工作区的定义、打开方式、单文件夹与多根工作区的差异、工作区设置/任务/调试配置的存储位置与作用域规则并给出可复制的.code-workspace配置示例。读完本文你将能熟练创建、保存、共享与排查各类工作区配置。什么是 VS Code 工作区VS Code 的workspace是在一个 VS Code 窗口实例中打开的一个或多个文件夹的集合。大多数场景下你打开的是一个单文件夹工作区而根据开发工作流需要你也可以通过一种高级配置——多根工作区——在同一窗口内包含多个文件夹。工作区这一概念让 VS Code 能够按文件夹配置设置为某个或某些特定文件夹应用设置而不影响其他文件夹。持久化任务与调试启动配置保存只在当前工作区上下文内有效的 任务tasks 和 调试器启动debugger launch 配置。保存并恢复 UI 状态例如当前打开了哪些文件、编辑器布局等与工作区关联的界面状态。按工作区选择启用扩展仅对特定工作区选择性启用或禁用某些扩展。在官方文档、issue 和社区讨论中folder文件夹和workspace工作区两个词经常混用。可以把工作区理解为项目根目录 额外的 VS Code 知识与能力的集合文件夹是磁盘上的目录实体工作区则是在此之上叠加了设置、任务、调试配置和 UI 状态的一层抽象。注意也可以不打开任何工作区直接使用 VS Code。例如通过操作系统File菜单选择一个文件打开新窗口时你就不处于任何工作区内。此时部分能力会被降级但你仍然可以打开文本文件并编辑。如何打开一个工作区打开工作区最直接的方式是使用FileOpen Folder...菜单然后选择一个文件夹。也可以从终端启动将文件夹路径作为第一个参数传给code命令即可。例如在终端中执行以下命令用 VS Code 打开当前文件夹.code .仓库中的 command-line.md 还列出了更多与工作区相关的 CLI 能力例如code --add dir可将一个或多个文件夹加入上一个活动窗口用于构建多根工作区详见下文多根工作区小节。单文件夹工作区你不需要为某个文件夹做任何特殊操作只要用 VS Code 打开它它就成了一个工作区。打开文件夹后VS Code 会自动跟踪配置状态例如你打开的文件、编辑器布局等。当你再次重新打开该文件夹时编辑器会恢复到你上次离开时的样子。此外你还可以为文件夹添加专属配置例如工作区级 设置区别于全局用户设置、任务定义 和 调试启动文件详见下文工作区设置小节。在 VS Code 中打开的单文件夹工作区多根工作区多根工作区 是 VS Code 的高级能力允许你将多个互不相同的文件夹配置为同一个工作区的成员。此时你不再直接打开某个文件夹作为工作区而是打开一个name.code-workspaceJSON 文件该文件列出了工作区的全部文件夹。例如{ folders: [ { path: my-folder-a }, { path: my-folder-b } ] }在 VS Code 中打开的多根工作区注意直接打开文件夹与打开.code-workspace文件在视觉上的差异可能很微妙。为了提示你当前打开的是.code-workspace文件界面的某些区域例如文件资源管理器的根节点会在名称旁额外显示一个(Workspace)后缀。未命名untitled的多根工作区你可以灵活地添加或移除工作区中的文件夹先打开一个文件夹之后按需再添加更多文件夹。文件资源管理器中用于在工作区添加/移除文件夹的右键菜单除非你已经打开过某个.code-workspace文件否则当你第一次向工作区添加第二个文件夹时VS Code 会自动创建一个untitled未命名工作区。在后台VS Code 会为你自动维护一个untitled.code-workspace文件其中包含当前会话的所有文件夹与工作区设置。该工作区会一直保持untitled状态直到你决定将它保存到磁盘。在 VS Code 中打开的未命名多根工作区注意未命名工作区与已保存工作区之间没有任何区别唯一的区别在于未命名工作区是 VS Code 为了方便而自动为你创建的并且在你保存它之前会一直恢复。当你关闭打开了未命名工作区的窗口时VS Code 会在征得你确认后自动删除该未命名工作区。更完整的多根工作区能力添加/移除文件夹的多种手势、.code-workspace文件 schema、命名文件夹、工作区级设置/任务/调试/扩展推荐等详见 multi-root-workspaces.md。工作区设置工作区设置允许你在已打开工作区的上下文中配置设置。工作区设置始终覆盖全局用户设置。它们物理上存储在 JSON 文件中其存放位置取决于你是把文件夹作为工作区打开还是打开了.code-workspace文件。关于设置作用域scope及文件位置的全面说明请参考 settings.md。该文档指出VS Code 提供两种基础设置作用域用户设置User settings全局应用于你打开的任何 VS Code 实例工作区设置Workspace settings存储在工作区内只在打开该工作区时生效。不是所有用户设置都能作为工作区设置使用例如与更新、安全相关的应用程序级设置就不能被工作区设置覆盖。单文件夹工作区的设置当你把文件夹作为工作区打开时工作区设置存储在.vscode/settings.json中。由于.vscode位于项目根目录这非常便于在版本控制例如 Git项目中与团队共享设置。打开文件夹作为工作区时的设置编辑器多根工作区的设置当你把.code-workspace作为工作区打开时所有工作区设置都会被写入.code-workspace文件本身。你仍然可以为每个根文件夹单独配置设置此时设置编辑器会呈现第三种设置作用域——Folder Settings文件夹设置打开多根工作区时的设置编辑器按文件夹配置的设置会覆盖.code-workspace中定义的设置。也就是多根工作区下的优先级从低到高为用户设置 工作区.code-workspace设置 文件夹设置。补充说明源自 multi-root-workspaces.md在同一个工作区存在多个根文件夹时每个根文件夹下都可以有各自的.vscode文件夹定义该文件夹的设置。为避免设置冲突多根工作区只应用资源型resource即文件/文件夹级设置而影响整个编辑器例如 UI 布局的设置会被忽略——例如两个项目无法同时设置各自的缩放级别。从单文件夹实例切换到多文件夹实例时VS Code 会把第一个文件夹中适当的编辑器级设置自动并入新的全局工作区设置。工作区任务与启动launch配置与工作区设置类似任务 和 调试启动配置 也可以限定在工作区范围内。它们的存放位置同样取决于你是把文件夹作为工作区打开还是打开了.code-workspace文件位于.vscode文件夹内或位于.code-workspace文件内部。此外即使打开了.code-workspace文件任务和启动配置也始终可以在文件夹级别定义。值得注意的细节tasks.md 明确指出任务支持只在处理工作区文件夹时可用编辑单个文件时不可用工作区或文件夹级任务通过.vscode文件夹中的tasks.json配置。在多根工作区场景下VS Code 会跨所有文件夹搜索launch.json调试配置文件并以后缀方式显示所属文件夹名同时也会展示工作区配置文件中定义的启动配置详见 multi-root-workspaces.md。任务与启动配置中使用的变量例如${workspaceFolder}或已弃用的${workspaceRoot}会相对于其所属文件夹解析。通过向变量追加根文件夹名以冒号分隔可以将变量显式限定到某个工作区文件夹例如${workspaceFolder:Program}指向名为Program的根文件夹——这一点在 variables-reference.md 的Variables scoped per workspace folder一节有完整说明也是编写多根工作区共享配置时避免歧义的关键。常见问题多根工作区相比单文件夹有什么好处最明显的优势是多根工作区允许你同时处理不一定存放在磁盘上同一个父文件夹内的多个项目你可以从任何位置挑选文件夹加入工作区。即使你主要工作在单文件夹项目里也能从.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 支持项目project或解决方案solution吗VS Code没有其他开发工具如 Visual Studio IDE中那种project或solution的概念。你可能会在 VS Code 文档中看到project一词但它通常只是指你正在开发的东西。至于构建配置或文件枚举取决于你所使用的编程语言或框架其工具链本身可能支持某种名为project的东西来帮助定义构建配置或列出包含的文件。延伸阅读多根工作区详解添加/移除文件夹的多种手势、.code-workspace文件 schema、命名文件夹、工作区级调试/任务/扩展推荐配置。用户与工作区设置设置作用域、设置编辑器、modified/ext/feature等过滤器的完整说明。任务集成tasks.json格式、任务自动检测与 problem matcher。调试配置launch.json、compound 启动与调试变量。变量参考预定义变量、按工作区文件夹限定的变量语法。工作区信任Workspace Trust限制模式下工作区设置与任务/调试能力的禁用规则以及tag:requireTrustedWorkspace相关设置的说明。赞分享文档教程【免费下载链接】vscode-docsPublic documentation for Visual Studio Code项目地址https://gitcode.com/gh_mirrors/vs/vscode-docs点击查看免费下载相关推荐LSP 工作区文件夹机制详解从 workspace/workspaceFolders 请求到多根工作区支持LSP 工作区文件夹机制详解从 workspace/workspaceFolders 请求到多根工作区支持 本文基于本仓库的 LSP 3.19 规范文档系统开发工具LSP 工作区文件夹请求workspace/workspaceFolders详解多根工作区的协议支持与服务器实现指南LSP 工作区文件夹请求workspace/workspaceFolders详解多根工作区的协议支持与服务器实现指南 导读 本文聚焦语言服务器协议Lan开发工具ArcGIS Python API 地理编码完全指南地址解析与反向地理编码ArcGIS Python API 地理编码完全指南地址解析与反向地理编码 ArcGIS Python API 是一款功能强大的地理信息系统开发工具它提供了示例工程上一篇SQLFluff规则系统详解从布局到语义检查下一篇3步打造专属调试工具Chisel自定义命令开发实战指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进