什么是Visual Studio Code中的“工作区”?

例如,Visual Studio Code讨论了在用户级别与工作区级别应用设置

一方面,

  • 它可以引用您已打开的项目目录;或者
  • 它可以引用您在特定窗口中打开的所有内容。

上面引用的页面说

"工作区:这些设置存储在您的工作区中在. vscode文件夹中,仅在打开工作区时应用。”

368579 次浏览

在一些调查中,答案似乎是(a)。

当我去更改设置时,设置文件进入我的项目目录中的. vscode目录。

您可以在工作区级别保存设置,并且可以在工作区中打开多个文件夹。如果您想执行其中任何一项操作,请使用工作区,否则只需打开一个文件夹。

Visual Studio Code工作区是项目文件夹和文件的列表。一个工作区可以包含多个文件夹。您可以自定义工作区的设置和首选项。

工作区只是一个扩展名为(. code-workspace)的文本文件。您可以通过使用文本编辑器打开它来查看它。我也对工作区的想法以及它在Visual Studio Code中的实现方式感到沮丧。我找到了一种适合我的方法。

从单个“项目”文件夹开始。

打开Visual Studio Code并关闭任何打开的工作区或文件或文件夹。您应该在EXPLORER中只看到“OPEN EDITORS”和“NO FOLDER OPENED”。

从菜单栏→文件打开文件夹…。导航到您要放置文件夹的位置,然后右键单击打开一个新文件夹。随意命名,然后单击“选择文件夹”。它将出现在*Visual Studio Code资源管理器中。

现在从菜单文件将工作区另存为…。命名工作区并将其保存在您想要保留所有工作区的任何位置,(不一定是您的项目文件夹所在的位置)。我把所有我的都放在一个名为“Visual Studio Code工作区”的文件夹中。

它将保存为(.code-workspace)文件,并且只是它包含(或指向)的所有文件和文件夹的索引,无论它们位于您的硬盘驱动器上的何处。您可以通过使用文本编辑器打开它来查看它。关闭您创建的文件夹并关闭Visual Studio Code。

现在找到您的工作区“文件”并双击它。这将使用您在工作区中创建的文件夹打开Visual Studio Code。或者您可以打开Visual Studio Code并使用“开放工作区”

从Visual Studio Code工作区中创建的任何文件夹都将位于第一个文件夹中。如果要添加更多顶级文件夹,请先在所需位置创建它们,然后使用Visual Studio Code中的"添加到工作区…"

工作区(也许是唯一的一个)的主要效用是允许添加多个独立文件夹来复合一个项目。例如:

- WorkspaceProjectX-- ApiFolder   (maybe /usr/share/www/api)-- DocsFolder  (maybe /home/user/projx/html/docs)-- WebFolder   (maybe /usr/share/www/web)

因此,您可以在特定项目的工作区中对这些文件进行分组,而不必打开多个文件夹窗口。

您可以了解更多这里

截至2018年5月,Visual Studio Code中的工作区似乎允许您快速访问不同但相关的项目。所有这些都无需打开不同的文件夹。

你也可以有多个工作区。请参阅此处的参考资料,你将获得它的全貌:

参考文献1
参考文献2

他们称之为多根工作区,有了它,你可以轻松地进行调试,因为:

"使用多根工作区,Visual Studio Code在所有文件夹中搜索launch.json调试配置文件并用文件夹名称作为后缀。”

假设您的应用程序文件夹中有一个服务器和一个客户端文件夹。如果您想一起调试它们,在没有工作区的情况下,您必须启动两个Visual Studio Code实例,一个用于服务器,一个用于客户端,并且您需要来回切换。

但是现在(1.24)您不能将单个文件添加到工作区,只能添加文件夹,这有点不便

我刚刚在Windows 7专业版SP1机器上安装了Visual Studio Code v1.25.1。我想详细了解工作区,所以我花了几个小时弄清楚它们是如何工作的在这个版本的Visual Studio Code中。我想我的研究结果可能会对社区感兴趣。

首先,Microsoft在Visual Studio Code留档中将工作区称为“多根工作区”。在简单的英语中,这意味着“多文件夹(又名“根”)工作环境”。Visual Studio Code工作区只是文件夹的集合-您想要的任何集合,按照您想要的任何顺序。典型的文件夹集合构成了一个软件开发项目。但是,文件夹集合可以用于正在开发软件代码的任何其他内容。

Visual Studio Code处理工作区的机制有点复杂。我认为传达我所学到的知识的最快方法是为您提供一组说明,您可以使用这些说明来查看工作区在计算机上的工作方式。如果您使用的是Visual Studio Code v1.25.1的生产版本,我不建议您遵循我的说明,因为您可能会丢失部分或全部现有的Visual Studio Code配置!如果您已经安装了Visual Studio Code v1.25.1的test版本,**并且您愿意丢失任何已经存在的配置,必须执行以下操作才能将您的Visual Studio Code恢复到新的安装状态:

删除以下文件夹(如果存在):

  C:\Users\%username%\AppData\Roaming\Code\Workspaces (where "%username%" is the name of the currently logged-on user)

您将向Visual Studio Code添加文件夹以创建新工作区。如果您打算用于创建此新工作区的任何文件夹以前已与Visual Studio Code一起使用,请删除将用于创建新工作区的每个文件夹中的“. vscode”子文件夹(如果存在)。

启动Visual Studio Code。如果显示了欢迎页,请关闭它。如果显示了,请对面板(水平窗格)执行相同的操作。如果收到Git未安装的消息,请单击“稍后提醒我”。如果显示了,请关闭作为默认代码页启动的“未命名”代码页。如果未显示资源管理器窗格,请单击主菜单上的“视图”,然后单击“资源管理器”以显示资源管理器窗格。在资源管理器窗格中,您应该看到三(3)个视图标题——打开编辑器、未打开文件夹和大纲(位于资源管理器窗格的最底部)。确保至少打开编辑器没有打开文件夹显示视图标题

Visual Studio Code显示一个“打开文件夹”的按钮。单击此按钮并选择您选择的文件夹。Visual Studio Code将刷新,您所选文件夹的名称将替换“未打开文件夹”视图名称。您所选文件夹中存在的任何文件夹和文件都将显示在视图名称下方。

现在打开Visual Studio Code偏好设置文件。有很多方法可以做到这一点。我将使用最容易记住的菜单文件偏好设置。设置文件显示在两列中。左列是每个Visual Studio Code功能的默认值的只读列表。右列用于列出三(3)种类型的用户设置。在您的测试中,此时将只列出两个用户设置-用户设置和工作区设置。默认情况下显示用户设置。这将显示您的用户设置. json文件的内容。要查找此文件的位置,只需将鼠标悬停在资源管理器中OPEN EDITORS视图下显示的“用户设置”列表上。当选择右侧列中的“用户设置”选项时,OPEN EDITORS视图中的此列表会自动选择。路径应为:

C:\Users\%username%\AppData\Roaming\Code\User\settings.json

此settings.json文件存储Visual Studio Code的用户设置。

现在单击首选项列表右栏中的工作区设置选项。执行此操作时,将在您之前添加到资源管理器的文件夹中自动创建一个名为“. vscode”的子文件夹。查看资源管理器中文件夹的列表以确认已添加. vscode子文件夹。在新的. vscode子文件夹中是另一个settings.json文件。此文件包含您之前添加到资源管理器的文件夹的工作区设置

此时,您有一个单个文件夹,其用户设置存储在:

C:\Users\%username%\AppData\Roaming\Code\User\settings.json

以及其工作区设置存储在:

C:\TheLocationOfYourFolder\settings.json

这是将单个文件夹添加到Visual Studio Code的新安装时的配置。当我们添加第二个(或更多)文件夹时,事情变得混乱。这是因为我们正在更改Visual Studio Code的用户设置和工作区设置以容纳多个文件夹。在单文件夹环境中,只需要两个settings.json文件,如上所示。但是在多文件夹环境中,在添加到资源管理器的每个文件夹中都会创建一个. vscode子文件夹,并创建一个新文件“workspaces.json”来管理多文件夹环境。新的“workspaces.json”文件创建于:

c:\Users\%username%\AppData\Roaming\Code\Workspaces\%workspace_id%\workspaces.json

“%workspaces_id%”是一个具有唯一全数名称的文件夹。

在首选项右侧列中,现在出现了三个用户设置选项-用户设置,工作区设置和文件夹设置。用户设置的功能与单文件夹环境相同。但是,工作区设置背后的设置文件已从单个文件夹的. vscode子文件夹中的settings.json文件更改为位于上面显示的workspaces.json文件路径的workspaces.json文件。位于每个文件夹的. vscode子文件夹中的settings.json文件现在由第三个用户设置文件夹选项控制。这是一个下拉选择列表,允许管理位于每个文件夹的. vscode子文件夹中的每个文件夹的settings.json文件。请注意:. vscode子文件夹不会在新添加的资源管理器文件夹中创建,直到在文件夹选项用户设置中至少选择了一次新添加的文件夹。

请注意,资源管理器单个文件夹名称已更改为“UNTITLED(WORKSPACE)”。这表明以下内容:

  1. 已创建名为“UNTITLED(WORKSPACE)”的多文件夹工作区
  2. 工作区名为“UNTITLED(WORKSPACE)”传达工作区尚未保存为单独的、唯一的工作区文件
  3. UNTITLED(WORKSPACE)工作区可以添加文件夹并从中删除但它将作为Visual Studio Code的唯一工作区环境

只有当工作区保存为可根据需要重新加载的文件时,才能实现Visual Studio Code工作区的全部功能。这提供了创建唯一的多文件夹工作区(例如项目)并将其保存为文件以供以后使用的功能!要执行此操作,请从主菜单中选择菜单文件将工作区另存为,并将当前工作区配置保存为唯一的工作区文件。如果需要“从头开始”创建工作区,请首先保存当前工作区配置(如果需要),然后右键单击每个资源管理器文件夹名称,然后单击“从工作区中删除文件夹”。当所有文件夹都已从工作区中删除后,添加新工作区所需的文件夹。添加完新文件夹后,只需将新工作区另存为新工作区文件即可。

一个重要的说明-当资源管理器中只剩下一个文件夹时,或者当“从头开始”创建新工作区时,所有文件夹都已从资源管理器中删除时,Visual Studio Code不会“恢复”到单文件夹模式。利用三个用户首选项的多文件夹工作区配置仍然有效。这意味着除非您按照本文开头的说明进行操作,否则Visual Studio Code永远不会返回到单文件夹操作模式-它将始终保持在多文件夹工作区模式。

OP中的标题和随后的问题似乎可以归结为:

  1. 什么是Visual Studio Code中的工作区?
  2. 工作区设置如何工作?

简短的回答:

工作区是在Visual Studio Code中同时打开并在.code-workspace文件中定义的文件夹的虚拟集合。打开此文件将自动打开文件夹集合。这称为“多根”工作区。

.code-workspace文件还定义了打开工作区的Visual Studio Code实例使用的工作区设置。

当工作区定义为没有时,即您自己打开一个文件夹,您可以创建“工作区设置”,这些设置保存在该文件夹结构根目录中的.vscode\settings.json文件中。


更详细地说:

Visual Studio Code在某些地方使用“工作区”这个词有点含糊不清。首先要考虑的用途是在所谓的多根工作区中。

多根工作区是一组在Visual Studio Code实例中集体打开的文件夹(“根”)。这些文件夹不需要共享父文件夹;事实上,这就是重点,因为Visual Studio Code通常使用资源管理器侧栏中的单个文件夹。

多根工作区由.code-workspace(JSON)文件定义,该文件包含要包含在工作区中的文件夹列表和Visual Studio Code设置。

关于这些工作区设置…

当您打开菜单文件偏好设置时,会显示设置编辑器。至少您应该看到一个用户设置选项卡。这些是适用于本地计算机上用户帐户的Visual Studio Code设置。在Windows中,这些设置保存在%APPDATA%\Code\User\settings.json中。

单个文件夹(通常是工作区中的每个“根”文件夹)可能有一个.vscode文件夹,其中包含自己的settings.json文件。单独打开时,即不作为工作区的一部分打开,这些settings.json文件的内容显示在工作空间设置选项卡下,所有该文件中的设置由正在运行的Visual Studio Code实例使用。

打开多根工作区时,情况会有所不同。首先,工作空间设置选项卡显示.code-workspace文件中设置的选项。其次,任何包含settings.json文件的文件夹都将显示在新的文件夹设置选项卡下。请注意,在多根工作区中,每个文件夹的settings.json仅使用有限数量的设置。我建议您打开上面的链接以进一步阅读。

如果Visual Studio Code是全新安装;

  1. 点击扩展,搜索“python”并点击安装

  2. 点击菜单查看资源管理器如果没有文件夹将文件夹添加到工作区(菜单文件将文件夹添加到工作区

  3. 如果您想使用虚拟Python环境,请单击菜单文件偏好设置

单击窗口右上角的“{}打开设置JSON”,然后添加虚拟环境中python.exe文件的路径:

{"python.pythonPath": "C:\\PathTo\\VirtualENV\\python.exe"}
  1. 启动一个新终端并检查选择了正确的Python解释器

虽然问题是问“什么是工作区?”,但我觉得混淆的根源是期望工作区应该表现得更像其他编辑器中的“项目”。

所以,为了帮助所有因为这种困惑而登陆这里的人,我想发布以下Visual Studio Code插件(不是我的),项目经理

它有一个很好的UI来管理(保存和打开)单文件夹项目:

保存项目:

在此输入图片描述

使用调色板打开项目:

在此输入图片描述

在状态栏中查看当前项目(单击以打开项目调色板):

在此输入图片描述

访问侧边栏中的项目:

在此输入图片描述

什么是工作空间?

由一个或多个根文件夹以及属于该项目的所有Visual Studio Code配置组成的项目。这些配置包括:

为什么工作空间如此混乱?

Visual Studio Code没有在UI中一致地使用该术语(我打开了github问题来解决这个问题)。有时它引用如上所述的工作区,有时它将工作区引用为专门与.code-workspace文件关联的项目。

一个很好的例子是最近文件小部件。请注意,在链接的屏幕截图中,所有项目都分组在相同的“工作区”标题下,这将表明所有内容都有一个工作区。但是随后具有.code-workspace文件的项目被赋予“工作区”后缀,与标题相矛盾,并指示只有这些文件实际上是工作区。

什么是.code-workspace文件?

它是一个带有注释的JSON文件,即上面提到的存储所有的配置数据,除了属于一个工作区的所有根文件夹的位置。

我需要.code-workspace文件吗?

只有当您创建多根工作区时,在这种情况下,您将拥有一个.code-workspace文件,该文件自动恢复所有工作区设置,以及您希望在的探险家中显示的所有根文件夹。

单文件夹项目呢?

一切都是自动化的。

当您在Visual Studio Code中打开一个文件夹并开始对编辑器进行与您当前正在处理的项目特别相关的修改时,Visual Studio Code会自动创建一个.vscode文件夹并将其存储在您正在处理的项目文件夹的根目录中。此.vscode文件夹包含存储您所做更改的文件。

例如,如果您希望仅应用于当前项目的更改Visual Studio Code设置,Visual Studio Code会创建一个包含这些更新的settings.json文件,该文件存储在.vscode文件夹中。

如果您真的需要,您可以创建一个仅包含单个根文件夹的.code-workspace文件。然后您可以直接打开项目文件夹,或者打开工作区文件。但我想不出任何理由为什么这会有好处。

如何创建.code-workspace文件?

转到菜单文件将工作区另存为…

如何将根文件夹添加到工作区?

转到菜单文件将文件夹添加到工作区…

如何打开由.code-workspace文件定义的工作区?

转到菜单文件开放工作区…

或者,双击.code-workspace文件。Visual Studio Code不会打开实际文件。相反,它将读取该文件并打开属于该工作区的文件夹。

如何查看实际的.code-workspace文件?

转到菜单文件打开…并选择目标.code-workspace文件。

或者,打开与该文件关联的工作区。然后打开命令面板,搜索并选择工作区:打开工作区配置文件命令。

简单的答案:实际上它就像Vim编辑器中的一个新缓冲区

您是否曾经需要为测试项目或要添加到主项目的功能构建一个新目录并打开一个新的Visual Studio Code窗口?好的,所以你需要一个工作区和足够高的CPU使用率…

除了所有其他答案之外,我只想提到Visual Studio Code中工作区的常见用法。

在我看来,每个人都忘记提到的工作区是一种创建一个区域的方法,其中包含处理单一语言所需的所有工具,就像其他人所说的,在一个项目中,您可能拥有PHP,Python,JavaScript,Node.js等。

为每种特定语言创建一个工作区,您可以拥有用于管理、调试、测试的所有工具,例如所有JavaScript。

这更容易管理,因此您可以拥有一个用于PHP的工作区,另一个用于Node.js…以及一个在多个工作区中具有文件夹的项目。

  1. 打开文件菜单并选择将工作区另存为。这将保存当前资源管理器状态。
  2. 之后,您可以选择菜单File*→开放工作区来打开之前保存的工作区。

2021年2月刚刚添加的是“什么是VS Code'workspace'”的留档:工作区

Visual Studio Code“工作区”是一个或多个在VS Code窗口(实例)中打开的文件夹。在大多数情况下,您将打开一个文件夹作为工作区,但取决于在您的开发工作流程中,您可以包含多个文件夹,使用名为多根工作区的高级配置。

工作区的概念使VS Code能够:

配置仅适用于特定文件夹的设置,但而不是其他人。坚持任务和调试器启动配置仅在该工作区的上下文中有效。存储和恢复UI与该工作区关联的状态(例如,以下文件打开)。仅为此选择性地启用或禁用扩展工作区。您可能会看到使用的术语“文件夹”和“工作区”在VS Code留档、问题和社区中可以互换讨论。将工作区视为具有额外的VS Code知识和能力。

  • 注意:也可以在没有工作区的情况下打开VS Code。例如,当您通过从您的平台的文件菜单,您将不会在工作区内。在这个模式下,VS Code的一些功能被降低,但您仍然可以打开文本文件并编辑它们。

单文件夹工作区

您无需为文件夹执行任何操作即可成为VS Code使用VS Code打开文件夹以外的工作区。一旦文件夹有打开后,VS Code会自动跟踪以下内容您打开的文件和编辑器布局,因此编辑器将与您离开时一样当您重新打开该文件夹时。您还可以添加其他特定于文件夹的配置,例如工作空间特定的设置(相对于全局用户)设置)和任务定义和调试启动文件(见下文工作区设置部分)。

多根工作区

多根工作区是VS Code的高级功能,允许您将多个不同的文件夹配置为工作区。您将打开一个文件夹而不是作为工作区打开. code-workspace列出文件夹的JSON文件工作区。例如:

{"folders": [{"path": "my-folder-a"},{"path": "my-folder-b"}]}

多根工作区文件夹

在VS Code中打开的多根工作区

  • 注意:打开文件夹与打开.code-workspace文件的视觉差异可能很微妙。给你一个提示.code-workspace文件已打开,用户交互界面的某些区域(例如,文件资源管理器的根目录)显示额外的(工作区)名字旁边的后缀。

更多的是在第一个链接。

这是理解工作区的必须阅读

正如许多人指出的那样,多根工作区是Visual Studio Code工作区概念变得相关的地方。

为什么是另一个问题。

因此,这里是Eclipse IDE用户指南的摘录,其中包含了正确的工作区概念(与Visual Studio Code完全不同,如果您需要Visual Studio Code,则不应该切换到Eclipse-但您可以阅读留档,因为他们解释正确):

在Eclipse中使用Git存储库的注意事项

这个短篇故事

使用EGit设置Git存储库时,有两个建议用于创建“高效”(而不是“playground”)存储库:

  • 不要在Eclipse工作区中创建存储库。
    • 克隆或创建存储库时要小心。
    • 确保正确使用Git共享向导。
  • 不要以Eclipse项目为根创建存储库。
    • 确保正确使用Git共享向导。

第一个错误发生在您在克隆或创建存储库期间指定工作区文件夹时。

当您在工作区中手动创建的Eclipse项目中使用Git共享向导而不采取预防措施时,这两个错误都会发生(该向导已在最新版本中修复)。

下面你会发现这些建议的一些动机。

更长的故事

Eclipse工作区和存储库工作目录可以通过不同的方式创建Git存储库,例如从现有的存储库中克隆,从头开始创建一个,或者使用EGit共享向导。

在任何情况下(除非您创建了一个“裸”存储库,但这里没有讨论),新的存储库本质上是本地硬盘上的一个文件夹,其中包含“工作目录”和元数据文件夹。元数据文件夹是一个名为“. git”的专用子文件夹,通常称为“. git-文件夹”。它包含实际的存储库(即提交、引用、日志等)。

元数据文件夹对Git客户端是完全透明的,而工作目录用于将当前签出的存储库内容公开为工具和编辑器的文件。

通常,如果要在Eclipse中使用这些文件,则必须以某种方式将它们导入Eclipse工作区。为此,最简单的方法是签入. project文件,“导入现有项目”向导可以从中轻松创建项目。[…]

影响

上述情况有以下影响:

将项目作为存储库的根文件夹可能不是一个好主意。原因是您将永远无法在此存储库中添加另一个项目,因为. project文件将占用根文件夹;您仍然可以将项目添加为子文件夹,但是众所周知,这种项目嵌套会导致很多问题。为了添加另一个项目,您必须将项目移动到存储库中的子文件夹中,并将第二个项目添加为另一个子文件夹,然后才能提交此更改。

最好将您的存储库保留在Eclipse工作区之外。原因有很多:

新的存储库将Eclipse工作区的完整文件夹结构视为(潜在)内容。这可能会导致性能问题,例如在提交之前计算更改时(例如,这将扫描完整的.元数据文件夹);通常情况下,工作区将包含死文件夹(例如已删除的项目),这些文件夹在语义上与EGit无关,但不能轻易排除。

元数据(. git-)文件夹将是Eclipse工作区的子文件夹。目前尚不清楚这是否会导致Eclipse不需要的文件夹遍历。

您可以通过销毁Eclipse工作区来轻松销毁您的存储库。

话虽如此,Visual Studio也做对了;为什么Microsoft决定忽略Visual Studio Code中的解决方案(. sln)和项目(. vcxproj)概念是相当有趣的。

简短回答:

使用文件夹而不是单一文件夹工作区。

仅在需要时使用多根工作区。当您需要使用多个项目文件夹时,您需要多根工作区。当您同时处理多个相关项目时,这可能非常有用。例如,您可能有一个包含产品留档的存储库,您希望在更新产品源代码时保持最新。

为什么“只在需要时使用多根工作区”?

单文件夹工作区和文件夹之间基本上只有两个区别:

  1. 您按File > Open Workspace...打开一个单文件夹工作区,然后选择一个<name>.code-workspace文件。您按File > Open Folder...打开一个文件夹,然后选择一个文件夹。

  2. 当您使用<name>.code-workspace文件打开单文件夹工作区时,所有项目特定设置都将添加到<name>.code-workspace文件中。当您使用文件夹打开项目时,所有项目特定设置都将保存在.vscode/settings.json文件中。

即使您花时间为单文件夹工作区创建<name>.code-workspace文件,您也可以通过菜单文件打开文件夹…打开它。根据您的访问方法,有时设置可以在.vscode/settings.json文件或<name>.code-workspace文件中。最好使用一致的方法访问您的项目文件夹。此外,启动配置(.vscode/launch.json)保存在.vscode/settings.json0(.vscode/settings.json)旁边,而不是.vscode/settings.json1(<name>.code-workspace)旁边。大多数时候,无论如何,您都需要.vscode目录。

长答案:

留档表示:

工作区的概念使VS Code能够:

  • 配置仅适用于特定文件夹但不适用于其他文件夹的设置。
  • 保留仅在该工作区上下文中有效的任务和调试器启动配置。
  • 存储和恢复与该工作区关联的UI状态(例如,打开的文件)。
  • 选择性地仅为该工作区启用或禁用扩展。

另一个地方中,它说:

配置可以在多个级别被不同的设置范围:

  • 用户设置-全局应用于所有VS Code实例。
  • 工作区设置-应用于打开的文件夹或工作区并覆盖用户设置。
  • 工作区文件夹设置-应用于多根工作区的特定文件夹。覆盖用户和工作区设置。

因此,基本上有三种类型的设置:

  • 文件夹设置(最高优先级)
  • 工作区设置
  • 用户设置(最低优先级)

您可以通过将密钥绑定分配给首选项:打开文件夹设置然后使用密钥绑定来修改文件夹设置。

您可以通过Ctrl+Shift+P首选项:打开工作区设置修改工作区设置。

您可以通过文件偏好设置修改用户设置。

您的工作区设置将被添加到<name>.code-workspace文件中。

您的文件夹设置将保存在.vscode/settings.json文件中。

有困惑

证据1:

您可能会在中看到术语“文件夹”和“工作区”可互换使用VS Code留档、问题和社区讨论Workspace作为具有额外VS Code知识的项目的根的能力

证据2:

VS Code“工作区”通常只是您的项目根文件夹。工作区设置以及调试和任务配置是存储在. vscode文件夹的根目录中。

证据3:

打开文件夹与打开文件夹的视觉差异. code-workspace文件可能很微妙。给你一个提示. code-workspace文件已打开,用户交互界面的某些区域(例如,文件资源管理器的根目录)显示一个额外的(工作区)名字旁边的后缀。

困惑在哪里?

魔鬼在细节(留档和执行)。

需求文档

在留档中,他们说不同的东西是不同的地方。没有一致性。

一个地方他们说:

VS Code提供了两种不同的设置范围:

  • 用户设置-全局应用于您打开的任何VS Code实例的设置。
  • 工作区设置-存储在工作区内的设置,仅在工作区打开时应用。

另一个地方他们说:

配置可以在多个级别被不同的设置范围:

  • 用户设置-全局应用于所有VS Code实例。
  • 工作区设置-应用于打开的文件夹或工作区并覆盖用户设置。
  • 工作区文件夹设置-应用于多根工作区的特定文件夹。覆盖用户和工作区设置。

所以,基本上他们没有一致地说有三个级别的设置。特别看看他们留档设置的标题。它的标题是用户和工作区设置(注意标题中缺少文件夹设置)。当他们谈论设置优先级时,它只提到了工作区文件夹设置一次。

实施

留档表示:

工作区设置使您能够在以下上下文中配置设置您已打开并始终覆盖全局用户的工作区设置。它们物理存储在JSON文件中及其位置取决于您是将文件夹打开为工作区还是打开了. code-workspace文件。

因此,基本上,当没有任何工作区(例如,您没有使用<name>.code-workspace打开项目)并且您使用Ctrl+Shift+P首选项:打开工作区设置时,它会打开.vscode/settings.json文件(实际上是用于文件夹设置而不是工作区设置,尽管名称明确表示打开工作区设置)。

您可能已经在长答案:中注意到“他们”没有保留任何直接访问文件夹设置的简单方法(您必须将密钥绑定分配给首选项:打开文件夹设置命令,然后使用密钥绑定。您甚至不能直接使用Ctrl+Shift+PCommand Pallet访问此“命令”)。

此外,您必须使用首选项:打开工作区设置修改文件夹设置(请注意,您正在使用“打开工作区设置”修改“文件夹设置”)。首选项:打开工作区设置是否会修改文件夹设置或工作区设置取决于您访问项目的方式(使用菜单文件打开文件夹…<name>.code-workspace文件)。

他们试图过度简化一件简单的事情,使它变得困难。