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

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

并非所有用户设置都可以作为工作区设置使用。例如,与更新和安全性相关的应用程序级设置无法被工作区设置覆盖。
设置编辑器
设置编辑器提供了一个图形界面来管理用户设置和工作区设置。要打开设置编辑器,请导航到 文件 (File) > 首选项 (Preferences) > 设置 (Settings)。或者,通过命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中的 首选项: 打开设置 (Preferences: Open Settings) 打开设置编辑器,或者使用键盘快捷键(⌘, (Windows, Linux Ctrl+,))。
默认情况下,设置编辑器在编辑器区域上方以模态叠加层形式打开。你可以通过 workbench.editor.useModal 设置来更改此行为。当你打开设置 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 系统的设置。例如,与工作区信任 (Workspace Trust) 相关的设置使用@tag:workspaceTrust,与辅助功能相关的设置使用@tag:accessibility,高级 VS Code 设置使用@tag:advanced。高级设置适用于专用场景。默认情况下,除非使用@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 文件中的设置值的用户界面。
你还可以通过在命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中使用 首选项: 打开用户设置 (JSON) (Preferences: Open User Settings (JSON)) 或 首选项: 打开工作区设置 (JSON) (Preferences: Open Workspace Settings (JSON)) 命令在编辑器中直接打开并编辑 settings.json 文件。
设置通过指定设置 ID 和值以 JSON 形式编写。你可以通过在设置编辑器中选择设置的齿轮图标,然后选择将设置复制为 JSON (Copy Setting as JSON) 操作,快速复制设置对应的 JSON 名值对。

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

某些设置只能在 settings.json 中编辑(例如工作台: 颜色自定义 (Workbench: Color Customizations)),并且在设置编辑器中会显示一个在 settings.json 中编辑 (Edit in 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 文件添加到你的项目或版本控制中时,该项目的设置将由该项目的所有用户共享。

对于多根工作区 (Multi-root Workspace),工作区设置位于工作区配置文件内部。
重置设置
你随时可以通过将鼠标悬停在设置上以显示齿轮图标、单击齿轮图标然后选择重置设置 (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 窗口右下角状态栏中的语言模式。这会打开语言模式选择器,其中包含选项配置 'language_name' 基于语言的设置 (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))中的 首选项: 打开应用程序设置 (JSON) (Preferences: Open Application Settings (JSON)) 命令访问与默认配置文件关联的 settings.json 文件。
设置优先级
可以通过不同的设置作用域在多个级别覆盖配置。在下面的列表中,后面的作用域会覆盖前面的作用域
- 默认设置 (Default settings) - 此作用域表示默认的未配置设置值。
- 用户设置 (User settings) - 全局应用于所有 VS Code 实例。
- 远程设置 (Remote settings) - 应用于用户打开的远程机器。
- 工作区设置 (Workspace settings) - 应用于打开的文件夹或工作区。
- 工作区文件夹设置 (Workspace Folder settings) - 应用于多根工作区的特定文件夹。
- 特定于语言的默认设置 (Language-specific default settings) - 这些是由扩展贡献的特定于语言的默认值。
- 特定于语言的用户设置 (Language-specific user settings) - 与用户设置相同,但特定于某种语言。
- 特定于语言的远程设置 (Language-specific remote settings) - 与远程设置相同,但特定于某种语言。
- 特定于语言的工作区设置 (Language-specific workspace settings) - 与工作区设置相同,但特定于某种语言。
- 特定于语言的工作区文件夹设置 (Language-specific workspace folder settings) - 与工作区文件夹设置相同,但特定于某种语言。
- 策略设置 (Policy settings) - 由系统管理员设置,这些值始终会覆盖其他设置值。
设置值可以具有各种类型
- 字符串 (String) -
"files.autoSave": "afterDelay" - 布尔值 (Boolean) -
"editor.minimap.enabled": true - 数字 (Number) -
"files.autoSaveDelay": 1000 - 数组 (Array) -
"editor.rulers": [] - 对象 (Object) -
"search.exclude": { "**/node_modules": true, "**/bower_components": true }
诸如 files.exclude 和 search.exclude 之类的设置使用遵循你操作系统文件系统大小写敏感性的通配符模式 (glob patterns)(在 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) 上下文菜单来启用设置同步。

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