用户和工作区设置
你可以通过 VS Code 的各种设置根据个人喜好进行配置。VS Code 的编辑器、用户界面和功能行为的几乎每个部分都有你可以修改的选项。
VS Code 为设置提供了不同的作用域
- 用户设置 - 全局应用于你打开的任何 VS Code 实例的设置。
- 工作区设置 - 存储在工作区内,仅在打开该工作区时生效的设置。
VS Code 将设置值存储在 settings JSON 文件中。你可以通过编辑该 settings JSON 文件或使用设置编辑器(提供了一个用于管理设置的图形界面)来更改设置值。
用户设置
用户设置是用于自定义 VS Code 的个人设置。这些设置全局应用于你打开的任何 VS Code 实例。例如,如果你在用户设置中将编辑器字体大小设置为 14,那么计算机上所有 VS Code 实例的字体大小都将为 14。
你可以通过多种方式访问用户设置
- 在命令面板中选择 Preferences: Open User Settings(首选项:打开用户设置) 命令(⇧⌘P(Windows、Linux Ctrl+Shift+P))
- 在设置编辑器中选择 User(用户) 选项卡(⌘,(Windows、Linux Ctrl+,))
- 在命令面板中选择 Preferences: Open User Settings (JSON)(首选项:打开用户设置 (JSON)) 命令(⇧⌘P(Windows、Linux Ctrl+Shift+P))

工作区设置
工作区设置特定于某个项目,并会覆盖用户设置。如果你有希望应用于特定项目的特定设置,可以使用工作区设置。例如,对于后端服务器项目,你可能希望设置 files.exclude 以从文件资源管理器中排除 node_modules 文件夹。
VS Code “工作区”通常就是你的项目根文件夹。你还可以通过名为多根工作区的功能在单个 VS Code 工作区中拥有多个根文件夹。了解更多关于 VS Code 工作区的信息。
VS Code 将工作区设置存储在项目根目录的 .vscode 文件夹中。这使得在启用版本控制(例如 Git)的项目中与他人共享设置变得很容易。
你可以通过多种方式访问工作区设置
- 在命令面板中选择 Preferences: Open Workspace Settings(首选项:打开工作区设置) 命令(⇧⌘P(Windows、Linux Ctrl+Shift+P))
- 在设置编辑器中选择 Workspace(工作区) 选项卡(⌘,(Windows、Linux Ctrl+,))
- 在命令面板中选择 Preferences: Open Workspace Settings (JSON)(首选项:打开工作区设置 (JSON)) 命令(⇧⌘P(Windows、Linux Ctrl+Shift+P))

并非所有用户设置都可以用作工作区设置。例如,与更新和安全相关的应用程序级设置无法被工作区设置覆盖。
设置编辑器
设置编辑器提供了一个用于管理用户设置和工作区设置的图形界面。要打开设置编辑器,请导航至 File(文件) > Preferences(首选项) > Settings(设置)。或者,通过 Command Palette(命令面板)(⇧⌘P(Windows、Linux Ctrl+Shift+P))运行 Preferences: Open Settings(首选项:打开设置),或使用键盘快捷键(⌘,(Windows、Linux Ctrl+,))打开。
默认情况下,设置编辑器会在编辑器区域上方以模态叠加层的形式打开。你可以通过 workbench.editor.useModal 设置来更改此行为。当你打开 settings JSON 文件时,它会作为主窗口中的常规编辑器选项卡打开。
打开设置编辑器后,你可以搜索并查找所需的设置。当你使用搜索栏进行搜索时,设置编辑器会过滤设置,仅显示符合你条件的项目。这使得查找设置变得快速且简单。

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

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

设置 URL 使你能够直接从浏览器导航到设置编辑器中的特定设置。URL 的格式为 vscode://settings/<settingName>,其中 <settingName> 是你要导航到的设置的 ID。例如,要导航到 workbench.colorTheme 设置,请使用 URL vscode://settings/workbench.colorTheme。
设置组
设置按组分类,以便你可以快速导航到相关设置。顶部有一个 Commonly Used(常用) 组,其中显示了热门的自定义设置。
在以下示例中,通过在树状视图中选择 Source Control(源代码管理),重点展示了源代码管理相关的设置。

VS Code 扩展也可以添加自己的自定义设置,这些设置在 Extensions(扩展) 部分下可见。
设置编辑器筛选器
设置编辑器的搜索栏具有多个筛选器,可让你更轻松地管理设置。搜索栏右侧是一个带有漏斗图标的筛选器按钮,它提供了多种选项,可以轻松将筛选器添加到搜索栏。
已修改的设置
若要检查你已配置了哪些设置,可以在搜索栏中使用 @modified 筛选器。如果设置的值与默认值不同,或者在相应的 settings JSON 文件中显式设置了该值,则该设置将显示在此筛选器下。
如果你忘记了是否曾修改过某个设置,或者因为意外修改了设置导致编辑器行为不符合预期,此筛选器会很有用。

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

以下是一些可用的筛选器
@ext:特定于扩展的设置。你需要提供扩展 ID,例如@ext:ms-python.python。@feature:特定于 Features(功能) 子组的设置。例如,@feature:explorer显示文件资源管理器的设置。@haspolicy:由你的组织控制的设置。@id:基于设置 ID 查找设置。例如,@id:workbench.activityBar.visible。@lang:基于语言 ID 应用语言筛选器。例如,@lang:typescript。有关更多详细信息,请参阅特定于语言的编辑器设置。@tag:特定于 VS Code 系统的设置。例如,@tag:workspaceTrust用于与工作区信任相关的设置,@tag:accessibility用于与辅助功能相关的设置,或@tag:advanced用于高级 VS Code 设置。高级设置适用于专业场景。默认情况下,除非你使用@tag:advanced筛选器,否则高级设置会从搜索结果中隐藏。要始终在设置编辑器中显示高级设置,请启用 workbench.settings.alwaysShowAdvancedSettings 。
搜索栏会记住你的设置搜索查询,并支持撤销或重做(⌘Z(Windows、Linux Ctrl+Z)/⇧⌘Z(Windows、Linux Ctrl+Y))。你可以通过搜索栏右侧的 Clear Settings Search Input(清除设置搜索输入) 按钮快速清除搜索词或筛选器。

扩展设置
已安装的 VS Code 扩展也可以贡献自己的设置,你可以在设置编辑器的 Extensions(扩展) 部分查看这些设置。

你还可以通过“扩展”视图(⇧⌘X(Windows、Linux Ctrl+Shift+X))选择扩展并查看 Feature Contributions(功能贡献) 选项卡,从而查看扩展的设置。

扩展开发者可以在配置贡献点文档中了解更多关于添加自定义设置的信息。
设置 JSON 文件
VS Code 将设置值存储在 settings.json 文件中。设置编辑器是一个用户界面,使你能够查看和修改存储在 settings.json 文件中的设置值。
你也可以直接在编辑器中打开 settings.json 文件进行查看和编辑,方法是在命令面板(⇧⌘P(Windows、Linux Ctrl+Shift+P))中使用 Preferences: Open User Settings (JSON)(首选项:打开用户设置 (JSON)) 或 Preferences: Open Workspace Settings (JSON)(首选项:打开工作区设置 (JSON)) 命令。
设置以 JSON 格式编写,指定设置 ID 和值。你可以通过在设置编辑器中选择设置的齿轮图标,然后选择 Copy Setting as JSON(将设置复制为 JSON) 操作,快速复制相应设置的 JSON 名值对。

settings.json 文件具有完整的 IntelliSense 功能,可为设置、值和描述悬停提供智能补全。由于设置名称不正确或 JSON 格式错误而导致的错误也会被高亮显示。

某些设置只能在 settings.json 中编辑,例如 Workbench: Color Customizations(工作台:颜色自定义),它们会在设置编辑器中显示一个 Edit in settings.json(在 settings.json 中编辑) 链接。

如果你更喜欢始终直接处理 settings.json,可以将 workbench.settings.editor 设置为 json。此后,File(文件) > Preferences(首选项) > Settings(设置) 和键盘快捷键 ⌘,(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 文件添加到项目或版本控制中时,该项目的设置将由所有使用该项目的用户共享。

对于多根工作区,工作区设置位于工作区配置文件内。
重置设置
你可以随时通过悬停在设置上显示齿轮图标,点击齿轮图标,然后选择 Reset Setting(重置设置) 操作,将设置恢复为默认值。
虽然你可以通过设置编辑器单独重置设置,但你也可以通过打开 settings.json 并删除花括号 {} 之间的条目来重置所有已更改的设置。请务必小心,因为一旦删除,无法恢复之前的设置值。
特定于语言的编辑器设置
自定义特定于语言的设置的一种方法是:打开设置编辑器,点击筛选器按钮,然后选择语言选项以添加语言筛选器。或者,也可以直接在搜索框中键入 @lang:languageId 形式的语言筛选器。显示的设置将可针对该特定语言进行配置,并显示该语言特有的设置值(如果适用)。
当你设置了语言筛选器并修改设置时,该设置将针对该语言在指定作用域内进行配置。例如,在应用了 @lang:css 筛选器的情况下修改用户作用域的 diffEditor.codeLens 设置时,设置编辑器会将新值保存到用户设置文件的 CSS 特定部分。

如果你在搜索框中输入多个语言筛选器,目前的行为是仅使用第一个语言筛选器。
按语言自定义编辑器的另一种方法是:在命令面板(⇧⌘P(Windows、Linux Ctrl+Shift+P))中运行全局命令 Preferences: Configure Language Specific Settings(首选项:配置特定于语言的设置)(命令 ID:workbench.action.configureLanguageBasedSettings),这将打开语言选择器。选择所需的语言。然后,设置编辑器将打开并带有所选语言的语言筛选器,允许你修改该语言的特定设置。不过,如果你已将 workbench.settings.editor 设置设置为 json,则 settings.json 文件会以新的语言条目打开,你可以在其中添加适用的设置。

通过下拉菜单选择语言

现在,你可以开始专门为该语言编辑设置了

或者,如果 workbench.settings.editor 设置为 json,现在你可以开始在用户设置中添加特定于语言的设置了

如果你打开了一个文件并希望为该文件类型自定义编辑器,请选择 VS Code 窗口右下角状态栏中的“语言模式”。这将打开语言模式选择器,其中包含 Configure 'language_name' language based settings(配置“语言名称”的基于语言的设置) 选项。选择此项将打开你的用户 settings.json,并在其中包含对应的语言条目,你可以在此处添加适用的设置。
特定于语言的编辑器设置总是会覆盖非语言特定的编辑器设置,即使非语言特定的设置具有更窄的作用域。例如,特定于语言的用户设置会覆盖非语言特定的工作区设置。
你可以像其他设置一样,通过将特定于语言的设置放在工作区设置中,来将其作用域限定为工作区。如果你在用户和工作区作用域中为同一种语言定义了设置,它们将通过优先使用工作区中定义的设置进行合并。
以下示例可以粘贴到 settings 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 来帮助你查找特定于语言的设置。所有编辑器设置和部分非编辑器设置均受支持。有些语言已经设置了默认的特定于语言的设置,你可以通过运行 Preferences: Open Default Settings(首选项:打开默认设置) 命令在 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))中的 Preferences: Open Application Settings (JSON)(首选项:打开应用程序设置 (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 文件模式(与 explorer.excludeGitIgnore 设置一起使用时)也遵循平台特定的区分大小写规则。
基本类型和数组类型的值会被覆盖,这意味着优先级较高的作用域中配置的值会替代优先级较低作用域中的值。但是,对象类型的值会进行合并。
例如, 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(typescript 和 javascript)来设置的。这意味着,例如,"[typescript][javascript]" 工作区设置不会覆盖 "[javascript]" 用户设置。
设置与安全性
某些设置允许你指定 VS Code 将运行以执行特定操作的可执行文件。例如,你可以选择集成终端应使用哪个 Shell。为了增强安全性,此类设置只能在用户设置中定义,而不能在工作区作用域中定义。
以下是不支持在工作区设置中定义的设置列表
- git.path
- terminal.external.windowsExec
- terminal.external.osxExec
- terminal.external.linuxExec
当你第一次打开定义了这些设置中任何一项的工作区时,VS Code 会发出警告,并在此后始终忽略这些值。
设置同步
你可以使用设置同步 (Settings Sync) 功能在你的 VS Code 实例之间共享用户设置。此功能允许你在不同机器上的 VS Code 安装之间共享设置、键盘快捷键和已安装的扩展。你可以通过设置编辑器右侧的 Backup and Sync Settings(备份并同步设置) 命令或 Accounts(帐户) 活动栏上下文菜单启用设置同步。

你可以在 设置同步 用户指南中了解更多关于启用和配置设置同步的信息。
VS Code 不会同步你往返于远程窗口(例如当你连接到 SSH、开发容器 (devcontainer) 或 WSL 时)的扩展。
功能生命周期
功能及其相应的设置可能处于以下状态之一。根据状态的不同,你可能需要谨慎在工作流中使用该功能或设置。
-
实验性 (Experimental) - 面向早期采用者提供的探索性功能。这些功能将来可能会更改或被删除。在设置编辑器中,这些设置带有
Experimental标签。你也可以通过在搜索框中输入@tag:experimental来搜索实验性设置。
-
预览 (Preview) - 预览功能和设置已具备最终功能,但可能仍在针对稳定性和完善性进行迭代。通常,预览功能默认处于禁用状态。在设置编辑器中,这些设置带有
Preview标签。你也可以通过在搜索框中输入@tag:preview来搜索预览设置。
-
稳定 (Stable) - 该功能稳定且在 VS Code 中得到全面支持。
实验性和预览功能使你能够尝试新功能并提供反馈。欢迎在我们的 VS Code 问题库中分享你的反馈。
相关资源
常见问题
VS Code 显示“无法写入设置”。
如果你尝试更改设置(例如开启自动保存或选择新的颜色主题)并看到“无法写入用户设置。请打开用户设置以纠正其中的错误/警告,然后重试。”,这意味着你的 settings.json 文件格式不正确或存在错误。错误可能只是漏掉了一个逗号或设置值不正确。使用命令面板(⇧⌘P(Windows、Linux Ctrl+Shift+P))中的 Preferences: Open User Settings (JSON)(首选项:打开用户设置 (JSON)) 命令打开 settings.json 文件,你应该能看到用红色波浪线高亮显示的错误。
如何重置我的用户设置?
将 VS Code 重置回默认设置的最简单方法是清除你的用户 settings.json 文件。你可以使用命令面板(⇧⌘P(Windows、Linux Ctrl+Shift+P))中的 Preferences: Open User Settings (JSON)(首选项:打开用户设置 (JSON)) 命令打开 settings.json 文件。一旦文件在编辑器中打开,删除两个花括号 {} 之间的所有内容,保存文件,VS Code 将恢复使用默认值。
什么时候适合使用工作区设置?
如果你正在使用一个需要自定义设置但又不希望将这些设置应用到其他 VS Code 项目的工作区。一个很好的例子是特定于语言的 Linting 规则。
在哪里可以找到扩展设置?
通常,VS Code 扩展将其设置存储在你的用户设置或工作区设置文件中,并且可以通过设置编辑器 UI(Preferences: Open Settings (UI)(首选项:打开设置 (UI)) 命令)或 settings.json 文件中的 IntelliSense(Preferences: Open User Settings (JSON)(首选项:打开用户设置 (JSON)) 命令)进行访问。通过扩展名称(例如 gitlens 或 python)进行搜索,有助于将设置筛选为仅由该扩展贡献的设置。