尝试以扩展 VS Code 中的代理模式!

用户和工作区设置

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

VS Code 为设置提供了不同的作用域

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

VS Code 将设置值存储在设置 JSON 文件中。你可以通过编辑设置 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 筛选器。如果一个设置的值与其默认值不同,或者其值在相应的设置 JSON 文件中被明确设置,那么它就会显示在此筛选器下。

如果你忘记了是否配置过某个设置,或者编辑器因为你意外配置了某个设置而行为不符合预期,这个筛选器会很有用。

Settings editor with @modified filter showing changed settings

其他筛选器

还有其他几个方便的筛选器可以帮助搜索设置。在搜索栏中输入 @ 符号以发现不同的筛选器。

Setting editor @ tag filter dropdown

以下是一些可用的筛选器

  • @ext - 特定于扩展的设置。你需要提供扩展 ID,例如 @ext:ms-python.python
  • @feature - 特定于功能子组的设置。例如,@feature:explorer 显示文件资源管理器的设置。
  • @id - 根据设置 ID 查找设置。例如,@id:workbench.activityBar.visible
  • @lang - 根据语言 ID 应用语言筛选器。例如,@lang:typescript。有关更多详细信息,请参阅特定于语言的编辑器设置
  • @tag - 特定于 VS Code 某个系统的设置。例如,@tag:workspaceTrust 用于与工作区信任相关的设置,或 @tag:accessibility 用于与辅助功能相关的设置。

搜索栏会记住你的设置搜索查询,并支持撤销/重做 (⌘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

扩展作者可以在配置贡献点文档中了解更多关于添加自定义设置的信息。

设置 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 设置为 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 形式的语言筛选器。显示的设置将可针对该特定语言进行配置,并且如果适用,将显示该语言特定的设置值。

当你在有语言筛选器的情况下修改设置时,该设置将在给定范围内为该语言配置。例如,当在搜索小部件中有 @lang:css 筛选器时修改用户范围的 diffEditor.codeLens 设置时,设置编辑器会将新值保存到用户设置文件的 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 设置为 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 设置为 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 }

具有基本类型和数组类型的值会被覆盖,这意味着在一个优先于另一个作用域的作用域中配置的值会替代另一个作用域中的值。但是,具有对象类型的值会被合并。

例如,workbench.colorCustomizations 接受一个对象,该对象指定一组 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。为了增强安全性,此类设置只能在用户设置中定义,而不能在工作区范围内定义。

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

当你第一次打开一个定义了任何这些设置的工作区时,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)进行搜索可以帮助将设置筛选为仅由该扩展贡献的设置。