用户和工作区设置
您可以通过 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) 命令

工作区设置
工作区设置特定于项目并覆盖用户设置。如果您有希望应用于特定项目的特定设置,可以使用工作区设置。例如,对于后端服务器项目,您可能希望设置 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) 命令

并非所有用户设置都可用作工作区设置。例如,与更新和安全相关的应用程序级设置不能被工作区设置覆盖。
设置编辑器
设置编辑器提供了一个图形界面来管理用户设置和工作区设置。要打开设置编辑器,请导航到 文件 > 首选项 > 设置。或者,使用命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中的 首选项: 打开设置 命令或使用键盘快捷方式(⌘, (Windows, Linux Ctrl+,))从 命令面板 打开设置编辑器。
当您打开设置编辑器时,您可以搜索并发现您正在寻找的设置。当您使用搜索栏进行搜索时,设置编辑器会过滤设置,只显示与您的标准匹配的设置。这使得查找设置快速而简单。

VS Code 会在您更改设置时直接应用更改。您可以通过设置左侧的彩色条来识别修改过的设置,这类似于编辑器中修改过的行。
在下面的示例中,侧边栏位置和文件图标主题已被更改。

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

设置 URL 使您能够直接从浏览器导航到设置编辑器中的特定设置。URL 格式为 vscode://settings/<settingName>,其中 <settingName> 是您要导航到的设置的 ID。例如,要导航到 workbench.colorTheme 设置,请使用 URL vscode://settings/workbench.colorTheme。
设置组
设置以组的形式表示,以便您可以快速导航到相关的设置。顶部有一个 常用 组,显示流行的自定义设置。
在下面的示例中,通过在树视图中选择 源代码管理 来聚焦源代码管理设置。

VS Code 扩展也可以添加自己的自定义设置,这些设置将显示在 扩展 部分下。
设置编辑器过滤器
设置编辑器的搜索栏有几个过滤器,可以更轻松地管理您的设置。在搜索栏的右侧有一个带有漏斗图标的过滤器按钮,它提供了轻松将过滤器添加到搜索栏的选项。
已修改的设置
要检查您已配置了哪些设置,搜索栏中有一个 @modified 过滤器。如果设置的值与默认值不同,或者其值在相应的 settings JSON 文件中被明确设置,则该设置将显示在此过滤器下。
如果忘记了是否配置了某个设置,或者由于意外配置了某个设置而导致编辑器行为不如预期,此过滤器会很有用。

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

以下是一些可用的过滤器
@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))。您可以使用搜索栏右侧的 清除设置搜索输入 按钮快速清除搜索词或过滤器。

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

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

扩展作者可以在 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 名称-值对。

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

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

如果您更喜欢直接使用 settings.json,可以将
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 文件时,该项目的设置将由该项目的所有用户共享。

对于 多根工作区,工作区设置位于工作区配置文件中。
重置设置
您始终可以通过将鼠标悬停在设置上以显示齿轮图标,单击齿轮图标,然后选择 重置设置 操作,将设置重置为默认值。
虽然您可以通过设置编辑器单独重置设置,但您可以通过打开 settings.json 文件并删除大括号 {} 之间的条目来重置所有更改的设置。请注意,没有办法恢复您以前的设置值。
特定语言的编辑器设置
自定义特定语言设置的一种方法是打开设置编辑器,点击过滤器按钮,然后选择语言选项以添加语言过滤器。或者,可以直接在搜索小部件中键入 @lang:languageId 形式的语言过滤器。显示的设置将可配置于该特定语言,如果适用,将显示特定于该语言的设置值。
当您修改设置时,如果存在语言过滤器,则设置将以给定范围配置于该语言。例如,当修改用户范围的
@lang:css 过滤器时,设置编辑器会将新值保存到用户设置文件的 CSS 特定部分。

如果您在搜索小部件中输入了多个语言过滤器,当前行为是只使用第一个语言过滤器。
通过语言自定义编辑器的另一种方法是从 命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))运行全局命令 首选项: 配置特定语言设置(命令 ID:workbench.action.configureLanguageBasedSettings),该命令会打开语言选择器。选择所需的语言。然后,将打开设置编辑器,其中包含所选语言的语言过滤器,允许您修改该语言的特定语言设置。不过,如果您的
json,那么 settings.json 文件将打开,其中包含一个新的语言条目,您可以在其中添加适用的设置。

通过下拉列表选择语言

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

或者,如果
json,现在您可以开始将特定语言的设置添加到您的用户设置中

如果您有一个已打开的文件,并且想要为该文件类型自定义编辑器,请选择 VS Code 窗口右下角状态栏中的语言模式。这将打开语言模式选择器,其中包含 配置 'language_name' 语言特定的设置 选项。选择此项将打开您的用户 settings.json 文件,其中包含语言条目,您可以在其中添加适用的设置。
特定语言的编辑器设置始终覆盖非特定语言的编辑器设置,即使非特定语言的设置范围更窄。例如,特定语言的用户设置会覆盖非特定语言的工作区设置。
您可以通过将特定语言的设置放在工作区设置中(就像其他设置一样)将其范围限定到工作区。如果您在用户和工作区范围内都为同一种语言定义了设置,则它们会被合并,工作区中定义的设置具有优先权。
可以按原样粘贴到设置 JSON 文件中的以下示例,以自定义 typescript 和 markdown 语言模式的编辑器设置。
{
"[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 文件中一起自定义 javascript 和 typescript 语言的设置
"[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.exclude 和 search.exclude 这样的设置使用 glob 模式,它遵循您操作系统的文件系统大小写敏感性(Windows/macOS 上不区分大小写,Linux 上区分大小写)。类似地,.gitignore 文件模式(与
具有原始类型和数组类型的_值被覆盖_,这意味着在优先级高于另一个作用域的作用域中配置的值被使用,而不是另一个作用域中的值。但是,具有对象类型的_值会被合并_。
例如,
"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(typescript 和 javascript)来设置的。这意味着,例如,"[typescript][javascript]" 工作区设置不会覆盖 "[javascript]" 用户设置。
设置和安全
某些设置允许您指定一个可执行文件,VS Code 将运行该文件以执行某些操作。例如,您可以选择集成终端应使用哪个 shell。为了增强安全性,此类设置只能在用户设置中定义,而不能在工作区范围定义。
以下是工作区设置中不支持的设置列表
- git.path
- terminal.external.windowsExec
- terminal.external.osxExec
- terminal.external.linuxExec
首次打开定义了任何这些设置的工作区时,VS Code 会警告您,然后此后始终忽略这些值。
设置同步
您可以使用 设置同步 功能在您的 VS Code 实例之间共享用户设置。此功能允许您在各种计算机上的 VS Code 安装之间共享设置、键盘快捷方式和已安装的扩展。您可以通过设置编辑器右侧的 备份和同步设置 命令或在 帐户 活动栏上下文菜单中启用设置同步。

您可以在 设置同步 用户指南中了解有关开启和配置设置同步的更多信息。
VS Code 不会将您的扩展同步到或从 远程 窗口(例如,当您连接到 SSH、开发容器 (devcontainer) 或 WSL 时)。
功能生命周期
功能及其相应的设置可以处于以下状态之一。根据状态,您在工作流中使用该功能或设置时应谨慎。
-
实验性 - 面向早期采用者的探索性功能。这些功能可能会在将来发生变化或被删除。在设置编辑器中,这些设置带有
Experimental标签。您也可以通过在搜索框中输入@tag:experimental来搜索实验性设置。
-
预览 - 预览功能和设置具有最终功能,但仍可能为了稳定性和完善而进行迭代。通常,预览功能默认禁用。在设置编辑器中,这些设置带有
Preview标签。您也可以通过在搜索框中输入@tag:preview来搜索预览设置。
-
稳定 - 功能稳定且在 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) 命令)访问它们。按扩展名称(例如 gitlens 或 python)搜索可以帮助将设置筛选到仅由扩展贡献的设置。