现已发布!阅读有关一月份的新功能和修复。

用户和工作区设置

您可以通过 Visual Studio Code 的各种设置来根据自己的喜好进行配置。VS Code 编辑器、用户界面和功能行为的几乎每个部分都有您可以修改的选项。

VS Code 为设置提供了不同的范围

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

VS Code 将设置值存储在 settings JSON 文件中。您可以通过编辑 settings JSON 文件或使用 设置编辑器(提供了一个管理设置的图形界面)来更改设置值。

用户设置

用户设置是用于自定义 VS Code 的个人设置。这些设置全局适用于您打开的任何 VS Code 实例。例如,如果您在用户设置中将编辑器字体大小设置为 14,则在计算机上的所有 VS Code 实例中它都将是 14。

您可以通过几种方式访问用户设置

  • 在命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中选择 首选项: 打开用户设置 命令
  • 设置编辑器⌘, (Windows, Linux Ctrl+,))中选择 用户 选项卡
  • 在命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中选择 首选项: 打开用户设置 (JSON) 命令

Settings editor with User tab highlighted

工作区设置

工作区设置特定于项目并覆盖用户设置。如果您有希望应用于特定项目的特定设置,可以使用工作区设置。例如,对于后端服务器项目,您可能希望设置 files.exclude 设置以从文件资源管理器中排除 node_modules 文件夹。

注意

VS Code 的“工作区”通常就是您的项目根文件夹。您也可以通过称为 多根工作区 的功能在 VS Code 工作区中拥有多个根文件夹。了解有关 VS Code 工作区 的更多信息。

VS Code 将工作区设置存储在项目根目录下的 .vscode 文件夹中。这使得与使用版本控制(例如 Git)的项目中的其他人轻松共享设置变得容易。

您可以通过几种方式访问工作区设置

  • 在命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中选择 首选项: 打开工作区设置 命令
  • 设置编辑器⌘, (Windows, Linux Ctrl+,))中选择 工作区 选项卡
  • 在命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中选择 首选项: 打开工作区设置 (JSON) 命令

Settings editor with Workspace tab highlighted

并非所有用户设置都可用作工作区设置。例如,与更新和安全相关的应用程序级设置不能被工作区设置覆盖。

设置编辑器

设置编辑器提供了一个图形界面来管理用户设置和工作区设置。要打开设置编辑器,请导航到 文件 > 首选项 > 设置。或者,使用命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中的 首选项: 打开设置 命令或使用键盘快捷方式(⌘, (Windows, Linux Ctrl+,))从 命令面板 打开设置编辑器。

当您打开设置编辑器时,您可以搜索并发现您正在寻找的设置。当您使用搜索栏进行搜索时,设置编辑器会过滤设置,只显示与您的标准匹配的设置。这使得查找设置快速而简单。

Filtering settings by searching in the Settings editor

VS Code 会在您更改设置时直接应用更改。您可以通过设置左侧的彩色条来识别修改过的设置,这类似于编辑器中修改过的行。

在下面的示例中,侧边栏位置和文件图标主题已被更改。

Modified settings in the Settings editor showing blue vertical bars to the left of them

设置旁边的齿轮图标(⇧F9 (Windows, Linux Shift+F9))会打开一个上下文菜单,其中包含将设置重置为其默认值的选项,以及复制设置 ID、复制 JSON 名称-值对或复制设置 URL 的选项。

Settings edit gear context menu

提示

设置 URL 使您能够直接从浏览器导航到设置编辑器中的特定设置。URL 格式为 vscode://settings/<settingName>,其中 <settingName> 是您要导航到的设置的 ID。例如,要导航到 workbench.colorTheme 设置,请使用 URL vscode://settings/workbench.colorTheme

设置组

设置以组的形式表示,以便您可以快速导航到相关的设置。顶部有一个 常用 组,显示流行的自定义设置。

在下面的示例中,通过在树视图中选择 源代码管理 来聚焦源代码管理设置。

Settings editor with the Source Control section of the table of contents selected

注意

VS Code 扩展也可以添加自己的自定义设置,这些设置将显示在 扩展 部分下。

设置编辑器过滤器

设置编辑器的搜索栏有几个过滤器,可以更轻松地管理您的设置。在搜索栏的右侧有一个带有漏斗图标的过滤器按钮,它提供了轻松将过滤器添加到搜索栏的选项。

已修改的设置

要检查您已配置了哪些设置,搜索栏中有一个 @modified 过滤器。如果设置的值与默认值不同,或者其值在相应的 settings JSON 文件中被明确设置,则该设置将显示在此过滤器下。

如果忘记了是否配置了某个设置,或者由于意外配置了某个设置而导致编辑器行为不如预期,此过滤器会很有用。

Settings editor with @modified filter showing changed settings

其他过滤器

还有其他几个有用的过滤器可以帮助您搜索设置。在搜索栏中键入 @ 符号以发现不同的过滤器。

Setting editor @ tag filter dropdown

以下是一些可用的过滤器

  • @ext:特定于扩展的设置。您提供扩展 ID,例如 @ext:ms-python.python
  • @feature:特定于 功能 子组的设置。例如,@feature:explorer 显示文件资源管理器的设置。
  • @haspolicy:受您的 组织 控制的设置。
  • @id:根据设置 ID 查找设置。例如,@id:workbench.activityBar.visible
  • @lang:基于语言 ID 应用语言过滤器。例如,@lang:typescript。有关更多详细信息,请参阅 特定语言的编辑器设置
  • @tag:特定于 VS Code 系统的设置。例如,与 工作区信任 相关的设置使用 @tag:workspaceTrust,与可访问性相关的设置使用 @tag:accessibility,或高级 VS Code 设置使用 @tag:advanced

搜索栏会记住您的设置搜索查询,并支持撤消或重做(⌘Z (Windows, Linux Ctrl+Z)/⇧⌘Z (Windows, Linux Ctrl+Y))。您可以使用搜索栏右侧的 清除设置搜索输入 按钮快速清除搜索词或过滤器。

Clear Settings Search Input button in the right of the Settings editor

扩展设置

已安装的 VS Code 扩展也可以贡献自己的设置,您可以在设置编辑器的 扩展 部分下进行查看。

C++ extension settings in the Settings editor

您也可以通过在扩展视图(⇧⌘X (Windows, Linux Ctrl+Shift+X))中选择扩展并查看 功能贡献 选项卡来查看扩展的设置。

Python extension Settings list under Feature Contributions tab

扩展作者可以在 configuration contribution point documentation 中了解有关添加自定义设置的更多信息。

设置 JSON 文件

VS Code 将设置值存储在 settings.json 文件中。设置编辑器是使用户界面能够查看和修改存储在 settings.json 文件中的设置值。

您也可以通过在命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中使用 首选项: 打开用户设置 (JSON)首选项: 打开工作区设置 (JSON) 命令,在编辑器中直接查看和编辑 settings.json 文件。

设置以 JSON 形式写入,通过指定设置 ID 和值。您可以通过在设置编辑器中选择设置的齿轮图标,然后选择 将设置复制为 JSON 操作,快速复制相应设置的 JSON 名称-值对。

User settings.json open in the editor

settings.json 文件具有完整的 IntelliSense,可为设置和值提供智能完成和描述悬停。不正确的设置名称或 JSON 格式导致的错误也会被突出显示。

IntelliSense for settings.json open in the editor

有些设置只能在 settings.json 中编辑,例如 工作台: 颜色自定义,它们会在设置编辑器中显示 在 settings.json 中编辑 链接。

Workbench: Color Customizations setting with Edit in settings.json link

提示

如果您更喜欢直接使用 settings.json,可以将

workbench.settings.editor
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置为 json。然后,文件 > 首选项 > 设置 和快捷键(⌘, (Windows, Linux Ctrl+,))将始终打开 settings.json 文件而不是设置编辑器 UI。

设置文件位置

用户 settings.json 位置

根据您的平台,用户设置文件位于此处

  • Windows %APPDATA%\Code\User\settings.json
  • macOS $HOME/Library/Application\ Support/Code/User/settings.json
  • Linux $HOME/.config/Code/User/settings.json

工作区 settings.json 位置

工作区设置文件位于根文件夹下的 .vscode 文件夹中。当您向项目或源代码管理添加工作区设置 settings.json 文件时,该项目的设置将由该项目的所有用户共享。

The File Explorer displaying settings.json under the .vscode folder

注意

对于 多根工作区,工作区设置位于工作区配置文件中。

重置设置

您始终可以通过将鼠标悬停在设置上以显示齿轮图标,单击齿轮图标,然后选择 重置设置 操作,将设置重置为默认值。

虽然您可以通过设置编辑器单独重置设置,但您可以通过打开 settings.json 文件并删除大括号 {} 之间的条目来重置所有更改的设置。请注意,没有办法恢复您以前的设置值。

特定语言的编辑器设置

自定义特定语言设置的一种方法是打开设置编辑器,点击过滤器按钮,然后选择语言选项以添加语言过滤器。或者,可以直接在搜索小部件中键入 @lang:languageId 形式的语言过滤器。显示的设置将可配置于该特定语言,如果适用,将显示特定于该语言的设置值。

当您修改设置时,如果存在语言过滤器,则设置将以给定范围配置于该语言。例如,当修改用户范围的

diffEditor.codeLens
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置,而搜索小部件中存在 @lang:css 过滤器时,设置编辑器会将新值保存到用户设置文件的 CSS 特定部分。

Editing the CSS-specific user-scoped diffEditor.codeLens setting in the Settings editor

注意

如果您在搜索小部件中输入了多个语言过滤器,当前行为是只使用第一个语言过滤器。

通过语言自定义编辑器的另一种方法是从 命令面板⇧⌘P (Windows, Linux Ctrl+Shift+P))运行全局命令 首选项: 配置特定语言设置(命令 ID:workbench.action.configureLanguageBasedSettings),该命令会打开语言选择器。选择所需的语言。然后,将打开设置编辑器,其中包含所选语言的语言过滤器,允许您修改该语言的特定语言设置。不过,如果您的

workbench.settings.editor
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置设置为 json,那么 settings.json 文件将打开,其中包含一个新的语言条目,您可以在其中添加适用的设置。

Configure language-specific settings command typed up in the Command Palette

通过下拉列表选择语言

Select language dropdown

现在您可以开始专门为此语言编辑设置

Settings editor showing a specific language filter

或者,如果

workbench.settings.editor
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置为 json,现在您可以开始将特定语言的设置添加到您的用户设置中

Suggestions for language-specific settings shown in the settings JSON file

如果您有一个已打开的文件,并且想要为该文件类型自定义编辑器,请选择 VS Code 窗口右下角状态栏中的语言模式。这将打开语言模式选择器,其中包含 配置 'language_name' 语言特定的设置 选项。选择此项将打开您的用户 settings.json 文件,其中包含语言条目,您可以在其中添加适用的设置。

特定语言的编辑器设置始终覆盖非特定语言的编辑器设置,即使非特定语言的设置范围更窄。例如,特定语言的用户设置会覆盖非特定语言的工作区设置。

您可以通过将特定语言的设置放在工作区设置中(就像其他设置一样)将其范围限定到工作区。如果您在用户和工作区范围内都为同一种语言定义了设置,则它们会被合并,工作区中定义的设置具有优先权。

可以按原样粘贴到设置 JSON 文件中的以下示例,以自定义 typescriptmarkdown 语言模式的编辑器设置。

{
  "[typescript]": {
    "editor.formatOnSave": true,
    "editor.formatOnPaste": true
  },
  "[markdown]": {
    "editor.formatOnSave": true,
    "editor.wordWrap": "on",
    "editor.renderWhitespace": "all",
    "editor.acceptSuggestionOnEnter": "off"
  }
}

您可以在 settings.json 中使用 IntelliSense 来帮助您查找特定语言的设置。所有编辑器设置和一些非编辑器设置都受支持。有些语言已经设置了默认的特定语言设置,您可以通过运行 首选项: 打开默认设置 命令在 defaultSettings.json 中查看。

多个特定语言的编辑器设置

您可以同时为多种语言配置特定语言的编辑器设置。以下示例展示了如何在 settings.json 文件中一起自定义 javascripttypescript 语言的设置

"[javascript][typescript]": {
  "editor.maxTokenizationLineLength": 2500
}

配置文件设置

您可以使用 VS Code 中的 配置文件 来创建自定义集并快速在它们之间切换。例如,它们是为特定编程语言自定义 VS Code 的绝佳方式。

当您切换到配置文件时,用户设置的范围将仅限于该配置文件。当您切换到另一个配置文件时,将应用该其他配置文件的用户设置。通过这种方式,您可以为不同的配置文件设置不同的设置。

配置文件的用户设置 JSON 文件位于以下目录

  • Windows %APPDATA%\Code\User\profiles\<profile ID>\settings.json
  • macOS $HOME/Library/Application\ Support/Code/User/profiles/<profile ID>/settings.json
  • Linux $HOME/.config/Code/User/profiles/<profile ID>/settings.json

<profile ID> 是配置文件的唯一标识符。对于覆盖设置的每个配置文件,都会有一个相应的配置文件设置文件。

注意

只有当您修改了该配置文件的某个设置时,才会创建该配置文件的 settings.json 文件。

当您使用非默认配置文件时,您可以通过命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中使用 首选项: 打开应用程序设置 (JSON) 命令来访问与默认配置文件关联的 settings.json 文件。

设置优先级

配置可以在不同级别的设置范围被覆盖。在以下列表中,后面的范围会覆盖前面的范围

  • 默认设置 - 此范围代表默认未配置的设置值。
  • 用户设置 - 全局应用于所有 VS Code 实例。
  • 远程设置 - 应用于用户打开的远程计算机。
  • 工作区设置 - 应用于打开的文件夹或工作区。
  • 工作区文件夹设置 - 应用于 多根工作区 的特定文件夹。
  • 特定语言的默认设置 - 这些是可由扩展贡献的特定语言的默认值。
  • 特定语言的用户设置 - 与用户设置相同,但特定于语言。
  • 特定语言的远程设置 - 与远程设置相同,但特定于语言。
  • 特定语言的工作区设置 - 与工作区设置相同,但特定于语言。
  • 特定语言的工作区文件夹设置 - 与工作区文件夹设置相同,但特定于语言。
  • 策略设置 - 由系统管理员设置,这些值始终覆盖其他设置值。

设置值可以是各种类型

  • 字符串 - "files.autoSave": "afterDelay"
  • 布尔值 - "editor.minimap.enabled": true
  • 数字 - "files.autoSaveDelay": 1000
  • 数组 - "editor.rulers": []
  • 对象 - "search.exclude": { "**/node_modules": true, "**/bower_components": true }
注意

files.excludesearch.exclude 这样的设置使用 glob 模式,它遵循您操作系统的文件系统大小写敏感性(Windows/macOS 上不区分大小写,Linux 上区分大小写)。类似地,.gitignore 文件模式(与

explorer.excludeGitIgnore
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置一起使用时)也遵循特定于平台的区分大小写规则。

具有原始类型和数组类型的_值被覆盖_,这意味着在优先级高于另一个作用域的作用域中配置的值被使用,而不是另一个作用域中的值。但是,具有对象类型的_值会被合并_。

例如,

workbench.colorCustomizations
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
接受一个对象,该对象指定一组 UI 元素及其所需的颜色。如果您的用户设置将编辑器背景设置为蓝色和绿色

  "workbench.colorCustomizations": {
    "editor.background": "#000088",
    "editor.selectionBackground": "#008800"
  }

并且您打开的工作区设置将编辑器前景色设置为红色

  "workbench.colorCustomizations": {
    "editor.foreground": "#880000",
    "editor.selectionBackground": "#00FF00"
  }

结果是,当该工作区打开时,是这两个颜色自定义的组合,就好像您指定了

  "workbench.colorCustomizations": {
    "editor.background": "#000088",
    "editor.selectionBackground": "#00FF00",
    "editor.foreground": "#880000"
  }

如果存在冲突的值,例如上面示例中的 editor.selectionBackground,则会发生常规的覆盖行为,工作区值优先于用户值,特定语言的值优先于非特定语言的值。

关于多个特定语言设置的注意事项

如果您使用的是 多个特定语言的设置,请注意,特定语言的设置是合并的,优先级是根据完整的语言字符串(例如 "[typescript][javascript]")而不是单个语言 ID(typescriptjavascript)来设置的。这意味着,例如,"[typescript][javascript]" 工作区设置不会覆盖 "[javascript]" 用户设置。

设置和安全

某些设置允许您指定一个可执行文件,VS Code 将运行该文件以执行某些操作。例如,您可以选择集成终端应使用哪个 shell。为了增强安全性,此类设置只能在用户设置中定义,而不能在工作区范围定义。

以下是工作区设置中不支持的设置列表

  • git.path
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
  • terminal.external.windowsExec
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
  • terminal.external.osxExec
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
  • terminal.external.linuxExec
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开

首次打开定义了任何这些设置的工作区时,VS Code 会警告您,然后此后始终忽略这些值。

设置同步

您可以使用 设置同步 功能在您的 VS Code 实例之间共享用户设置。此功能允许您在各种计算机上的 VS Code 安装之间共享设置、键盘快捷方式和已安装的扩展。您可以通过设置编辑器右侧的 备份和同步设置 命令或在 帐户 活动栏上下文菜单中启用设置同步。

Turn on Settings Sync command in the Accounts Activity Bar menu

您可以在 设置同步 用户指南中了解有关开启和配置设置同步的更多信息。

注意

VS Code 不会将您的扩展同步到或从 远程 窗口(例如,当您连接到 SSH、开发容器 (devcontainer) 或 WSL 时)。

功能生命周期

功能及其相应的设置可以处于以下状态之一。根据状态,您在工作流中使用该功能或设置时应谨慎。

  • 实验性 - 面向早期采用者的探索性功能。这些功能可能会在将来发生变化或被删除。在设置编辑器中,这些设置带有 Experimental 标签。您也可以通过在搜索框中输入 @tag:experimental 来搜索实验性设置。

    Settings editor filtered with '@tag:experimental' showing experimental settings.

  • 预览 - 预览功能和设置具有最终功能,但仍可能为了稳定性和完善而进行迭代。通常,预览功能默认禁用。在设置编辑器中,这些设置带有 Preview 标签。您也可以通过在搜索框中输入 @tag:preview 来搜索预览设置。

    Settings editor filtered with '@tag:preview' showing preview settings.

  • 稳定 - 功能稳定且在 VS Code 中得到完全支持。

实验性和预览功能使您能够尝试新功能并提供反馈。请在 我们的 VS Code 问题 中分享您的反馈。

常见问题

VS Code 提示“无法写入设置”。

如果您尝试更改设置(例如打开自动保存或选择新的颜色主题)并看到“无法写入用户设置。请打开用户设置以更正其中的错误/警告,然后重试。”,这意味着您的 settings.json 文件格式不正确或包含错误。错误可能很简单,例如缺少逗号或设置值不正确。使用命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中的 首选项: 打开用户设置 (JSON) 命令在编辑器中打开 settings.json 文件,您应该会看到错误被红色波浪线突出显示。

如何重置我的用户设置?

将 VS Code 重置回默认设置的最简单方法是清除用户 settings.json 文件。您可以使用命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中的 首选项: 打开用户设置 (JSON) 命令打开 settings.json 文件。一旦文件在编辑器中打开,删除两个花括号 {} 之间的所有内容,保存文件,VS Code 就会恢复使用默认值。

什么时候应该使用工作区设置?

如果您正在使用需要自定义设置但又不想将其应用于其他 VS Code 项目的工作区。一个很好的例子是特定语言的 linting 规则。

我在哪里可以找到扩展设置?

通常,VS Code 扩展将其设置存储在您的用户或工作区设置文件中,并且可以通过设置编辑器 UI(首选项: 打开设置 (UI) 命令)或通过 settings.json 文件中的 IntelliSense(首选项: 打开用户设置 (JSON) 命令)访问它们。按扩展名称(例如 gitlenspython)搜索可以帮助将设置筛选到仅由扩展贡献的设置。

© . This site is unofficial and not affiliated with Microsoft.