用户和工作区设置
你可以通过 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
设置,请使用 URLvscode://settings/workbench.colorTheme
。
设置组
设置以组的形式表示,以便你可以快速导航到相关设置。顶部有一个“常用”组,显示流行的自定义设置。
在下面的示例中,通过在树视图中选择“源代码管理”来聚焦源代码管理设置。
VS Code 扩展也可以添加自己的自定义设置,这些设置显示在“扩展”部分下。
设置编辑器过滤器
设置编辑器搜索栏有多个过滤器,使你可以更轻松地管理设置。搜索栏右侧有一个带有漏斗图标的过滤器按钮,提供将过滤器轻松添加到搜索栏的选项。
已修改设置
要检查你已配置哪些设置,搜索栏中有一个@modified
过滤器。如果设置的值与默认值不同,或者其值在相应的 settings JSON 文件中被显式设置,则该设置会显示在此过滤器下。
如果你忘记了是否配置了某个设置,或者由于不小心配置了某个设置导致编辑器行为与你预期不符,此过滤器将非常有用。
其他过滤器
还有一些其他方便的过滤器可以帮助搜索设置。在搜索栏中输入@
符号以发现不同的过滤器。
以下是一些可用的过滤器
@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))。你可以使用搜索栏右侧的清除设置搜索输入按钮快速清除搜索词或过滤器。
扩展设置
已安装的 VS Code 扩展也可以贡献自己的设置,你可以在设置编辑器的“扩展”部分下查看它们。
你还可以通过“扩展”视图 (⇧⌘X (Windows, Linux Ctrl+Shift+X)) 查看扩展的设置,方法是选择扩展并查看“功能贡献”选项卡。
扩展作者可以在配置贡献点文档中了解有关添加自定义设置的更多信息。
设置 JSON 文件
VS Code 将设置值存储在settings.json
文件中。设置编辑器是用户界面,使你可以查看和修改存储在settings.json
文件中的设置值。
你还可以通过在命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 中使用“首选项: 打开用户设置 (JSON)”或“首选项: 打开工作区设置 (JSON)”命令,直接在编辑器中打开并编辑settings.json
文件。
设置以 JSON 格式编写,指定设置 ID 和值。你可以通过在设置编辑器中选择设置的齿轮图标,然后选择“复制设置作为 JSON”操作,快速复制设置对应的 JSON 名称-值对。
settings.json
文件具有完整的智能感知功能,可为设置和值提供智能补全,并显示描述悬停。由于设置名称不正确或 JSON 格式错误而导致的错误也会突出显示。
某些设置只能在settings.json
中编辑,例如工作台: 颜色自定义,并在设置编辑器中显示“在 settings.json 中编辑”链接。
如果你更喜欢始终直接使用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
文件添加到你的项目或源代码管理中时,该项目的设置将由该项目的所有用户共享。
对于多根目录工作区,工作区设置位于工作区配置文件内。
重置设置
你可以随时将设置重置为其默认值,方法是将鼠标悬停在设置上以显示齿轮图标,单击该图标,然后选择“重置设置”操作。
虽然你可以通过设置编辑器单独重置设置,但你也可以通过打开settings.json
并删除花括号{}
之间的条目来重置所有已更改的设置。请小心操作,因为无法恢复你之前的设置值。
语言特定的编辑器设置
自定义语言特定设置的一种方法是打开设置编辑器,单击过滤器按钮,然后选择语言选项以添加语言过滤器。或者,可以直接在搜索小部件中键入@lang:languageId
形式的语言过滤器。显示的设置将针对该特定语言进行配置,并在适用时显示特定于该语言的设置值。
当你在应用语言过滤器时修改设置时,该设置将针对该语言在给定范围内进行配置。例如,在搜索小部件中有@lang:css
过滤器时修改用户范围的diffEditor.codeLens设置,设置编辑器会将新值保存到用户设置文件的 CSS 特定部分。
如果在搜索小部件中输入多个语言过滤器,则当前行为是仅使用第一个语言过滤器。
按语言自定义编辑器的另一种方法是在命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 中运行全局命令首选项: 配置基于语言的设置 (命令 ID: workbench.action.configureLanguageBasedSettings
),这会打开语言选择器。选择所需的语言。然后,设置编辑器会打开,并带有针对所选语言的语言过滤器,允许你修改该语言的语言特定设置。不过,如果将workbench.settings.editor设置设置为json
,则会打开settings.json
文件,并带有一个新的语言条目,你可以在其中添加适用的设置。
通过下拉菜单选择语言
现在你可以开始编辑特定于该语言的设置
或者,如果将workbench.settings.editor设置设置为json
,现在可以开始向用户设置添加语言特定设置
如果打开了一个文件,并且想要为此文件类型自定义编辑器,请在 VS Code 窗口右下角的状态栏中选择语言模式。这会打开语言模式选择器,其中有一个选项配置 'language_name' 基于语言的设置。选择此选项会打开你的用户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
中使用智能感知来帮助查找语言特定的设置。支持所有编辑器设置和一些非编辑器设置。某些语言已经设置了默认的语言特定设置,你可以通过运行首选项: 打开默认设置命令在defaultSettings.json
中查看这些设置。
多个语言特定的编辑器设置
你可以一次配置多种语言的语言特定编辑器设置。以下示例展示了如何在你的settings.json
文件中一起自定义javascript
和typescript
语言的设置
"[javascript][typescript]": {
"editor.maxTokenizationLineLength": 2500
}
配置文件设置
你可以使用 VS Code 中的配置文件来创建一组自定义设置并快速在它们之间切换。例如,它们是为特定编程语言自定义 VS Code 的好方法。
当你切换到某个配置文件时,用户设置仅限定在该配置文件范围内。当你切换到另一个配置文件时,将应用该配置文件的用户设置。通过这种方式,你可以为不同的配置文件设置不同的设置。
配置文件的用户 settings 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(typescript
和javascript
)。这意味着,例如,一个"[typescript][javascript]"
工作区设置不会覆盖一个"[javascript]"
用户设置。
设置和安全性
某些设置允许你指定 VS Code 将运行的可执行文件来执行特定操作。为了增强安全性,此类设置只能在用户设置中定义,不能在工作区范围内定义。
以下是工作区设置中不支持的设置列表
当你第一次打开定义了其中任何设置的工作区时,VS Code 会警告你,然后之后总是会忽略这些值。
设置同步
你可以使用设置同步功能在不同的 VS Code 实例之间共享用户设置。此功能允许你在不同机器上的 VS Code 安装之间共享设置、键盘快捷方式和已安装的扩展。你可以通过设置编辑器右侧的“备份和同步设置”命令或“账户”活动栏上下文菜单启用设置同步。
你可以在设置同步用户指南中了解有关开启和配置设置同步的更多信息。
VS Code 不会将扩展同步到或从远程窗口,例如当你连接到 SSH、开发容器 (devcontainer) 或 WSL 时。
功能生命周期
功能及其相应的设置可以处于以下状态之一。根据状态,你可能在使用工作流程中的功能或设置时需要谨慎。
-
实验性 - 供早期采用者探索的功能。这些功能将来可能会更改或移除。在设置编辑器中,这些设置带有“实验性”标签。你还可以在搜索框中输入
@tag:experimental
来搜索实验性设置。 -
预览版 - 预览版功能和设置具有最终功能,但仍可能为稳定性和完善而迭代。通常,预览版功能默认禁用。在设置编辑器中,这些设置带有“预览版”标签。你还可以在搜索框中输入
@tag:preview
来搜索预览版设置。 -
稳定版 - 该功能在 VS Code 中稳定且完全受支持。
实验性功能和预览版功能使你可以尝试新功能并提供反馈。请在我们的 VS Code issues中分享你的反馈。
相关资源
常见问题
VS Code 提示“无法写入设置”
如果你尝试更改设置(例如打开自动保存或选择新的颜色主题),并且看到“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) 命令打开settings.json
文件,你应该会看到错误以红色波浪线突出显示。
如何重置我的用户设置?
将 VS Code 重置回默认设置的最简单方法是清除你的用户settings.json
文件。你可以使用命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 中的首选项: 打开用户设置 (JSON) 命令打开settings.json
文件。在编辑器中打开文件后,删除花括号{}
之间的所有内容,保存文件,VS Code 将恢复使用默认值。
什么时候应该使用工作区设置?
如果你正在使用一个需要自定义设置但你不想将其应用于其他 VS Code 项目的工作区。一个很好的例子是特定语言的代码检查规则。
在哪里可以找到扩展设置?
通常,VS Code 扩展将其设置存储在你的用户或工作区设置文件中,并且可以通过设置编辑器 UI(首选项: 打开设置 (UI) 命令)或通过settings.json
文件(首选项: 打开用户设置 (JSON) 命令)中的智能感知来使用。通过扩展名称(例如gitlens
或python
)进行搜索可以帮助过滤设置,仅显示由扩展贡献的设置。