在 VS Code 中试用

主题

颜色主题

颜色主题使你能够修改 Visual Studio Code 用户界面的颜色,以匹配你的偏好和工作环境。颜色主题会影响 VS Code 用户界面元素和编辑器的突出显示颜色。

Preview themes from the Command Palette

选择不同的颜色主题

  1. 选择 文件 > 首选项 > 主题 > 颜色主题 菜单项,或使用 首选项: 颜色主题 命令 (⌘K ⌘T (Windows, Linux Ctrl+K Ctrl+T)) 显示颜色主题选取器。

  2. 使用 向上向下 键在列表中导航并预览主题的颜色。

  3. 选择所需的主题并按下 Enter

活动颜色主题存储在用户设置中(键盘快捷方式 ⌘, (Windows, Linux Ctrl+,))。

  // Specifies the color theme used in the workbench.
  "workbench.colorTheme": "Solarized Dark"
提示

默认情况下,主题存储在用户设置中,并全局应用于所有工作区。你还可以配置工作区特定的主题。为此,请在工作区设置中设置主题。

Screenshot of Settings editor to set a workspace-specific Color Theme.

市场上的颜色主题

VS Code 中有几个现成的颜色主题供你试用。社区已将更多主题上传到 VS Code 扩展市场

你可以直接从颜色主题选取器中选择 VS Code 市场中的颜色主题,方法是选择 浏览其他颜色主题...

Screenshot of Color Theme picker, highlighting the option to browse themes from the VS Code Marketplace.

另外,你可以通过在扩展视图 (⇧⌘X (Windows, Linux Ctrl+Shift+X)) 搜索框中使用 @category:"themes" 筛选器来搜索主题。

Searching for themes in the Extensions view

根据 OS 颜色方案自动切换

Windows 和 macOS 支持浅色和深色方案。有一个设置 window.autoDetectColorScheme,它指示 VS Code 侦听 OS 颜色方案的更改并相应地切换到匹配的主题。

类似地,你可以使用 window.autoDetectHighContrast 设置来自动检测 OS 是否切换到高对比度颜色方案。

要自定义颜色方案更改时使用的主题,可以在设置编辑器中设置首选的浅色、深色和高对比度主题

  • 工作台: 首选深色颜色主题 - 默认为深色现代
  • 工作台: 首选浅色颜色主题 - 默认为浅色现代
  • 工作台: 首选高对比度颜色主题 - 默认为深色高对比度
  • 工作台: 首选高对比度浅色颜色主题 - 默认为浅色高对比度

Settings editor filtered on the preferred color themes settings

自定义颜色主题

工作台颜色

你可以使用 workbench.colorCustomizationseditor.tokenColorCustomizations 用户设置来自定义活动的颜色主题。

若要设置 VS Code UI 元素的颜色,例如列表和树(文件资源管理器、建议小组件)、差异编辑器、活动栏、通知、滚动条、拆分视图、按钮等,请使用 workbench.colorCustomizations

activity bar theming

在设置 workbench.colorCustomizations 值时可以使用 IntelliSense,或者要获取所有可自定义颜色的列表,请参阅主题颜色参考

若要自定义特定主题,请使用以下语法

"workbench.colorCustomizations": {
    "[Monokai]": {
        "sideBar.background": "#347890"
    }
}

如果自定义项应用于多个主题,可以命名多个主题,或者在名称开头和末尾使用通配符 *

"workbench.colorCustomizations": {
    "[Abyss][Red]": {
        "activityBar.background": "#ff0000"
    },
    "[Monokai*]": {
        "activityBar.background": "#ff0000"
    }
}

如果主题设置了你不喜欢的颜色或边框,你可以使用 default 将其重置回原始值

  "workbench.colorCustomizations": {
      "diffEditor.removedTextBorder": "default"
  }

编辑器语法突出显示

若要调整编辑器的语法突出显示颜色,请在用户设置 settings.json 文件中使用 editor.tokenColorCustomizations

Token Color Customization

预配置了一组适用于最常见结构的语法令牌('comments', 'strings', ...)。如果你想要更多,可以直接指定 TextMate 主题颜色规则

Advanced Token Color Customization

注意

直接配置 TextMate 规则是一项高级技能,因为你需要了解 TextMate 语法的工作原理。有关详细信息,请转到颜色主题指南

若要自定义特定主题,可以通过以下方式之一进行

"editor.tokenColorCustomizations": {
    "[Monokai]": {
        "comments": "#229977"
    },
    "[*Dark*]": {
        "variables": "#229977"
    },
    "[Abyss][Red]": {
        "keywords": "#f00"
    }
}

编辑器语义突出显示

某些语言(目前:TypeScript、JavaScript、Java)提供语义令牌。语义令牌基于语言服务的符号理解,并且比由正则表达式驱动的 TextMate 语法中的语法令牌更准确。根据语义令牌计算出的语义突出显示叠加在语法突出显示之上,并且可以更正和丰富突出显示,如下例所示

未启用语义突出显示的“Tomorrow Night Blue”颜色主题

without semantic highlighting

启用语义突出显示的“Tomorrow Night Blue”颜色主题

with semantic highlighting

注意基于语言服务符号理解的颜色差异

  • 第 10 行:languageModes 被着色为参数。
  • 第 11 行:RangePosition 被着色为类,document 被着色为参数。
  • 第 13 行:getFoldingRanges 被着色为函数。

设置 editor.semanticHighlighting.enabled 用作控制是否应用语义突出显示的主要控件。它可以具有值 truefalseconfiguredByTheme

  • truefalse 可为所有主题启用或禁用语义突出显示。
  • configuredByTheme 是默认值,它允许每个主题控制是否启用语义突出显示。VS Code 附带的所有主题(例如默认的“Dark+”)都默认启用了语义突出显示。

你可以通过以下方式覆盖主题设置

"editor.semanticTokenColorCustomizations": {
    "[Rouge]": {
        "enabled": true
    }
}

当语义突出显示为某语言启用且可用时,由主题配置是否以及如何为语义令牌着色。一些语义令牌是标准化的,并且映射到成熟的 TextMate 范围。如果主题对这些 TextMate 范围有颜色规则,则语义令牌将以该颜色呈现,而无需任何额外的颜色规则。

可以在 editor.semanticTokenColorCustomizations" 中配置其他样式规则

"editor.semanticTokenColorCustomizations": {
    "[Rouge]": {
        "enabled": true,
        "rules": {
            "*.declaration": { "bold": true }
        }
    }
}

若要查看计算了哪些语义令牌以及如何对其进行样式设置,可以使用范围检查器 (开发者: 检查编辑器令牌和范围),它会显示当前光标位置处文本的信息。

scope inspector

如果给定位置的语言提供了语义令牌且主题已启用它,则检查工具会显示 语义令牌类型 部分。该部分显示语义令牌信息(类型和任意数量的修饰符)以及适用的样式规则。

有关语义令牌和样式规则语法的更多信息,请参阅语义突出显示指南

创建自己的颜色主题

创建和发布主题扩展很简单。在用户设置中自定义颜色,然后使用 开发者: 从当前设置生成颜色主题 命令生成主题定义文件。

VS Code 的 Yeoman 扩展生成器可帮助你生成扩展的其余部分。

有关详细信息,请参阅我们扩展 API 部分中的创建新颜色主题文章。

移除默认颜色主题

如果要从颜色主题选取器中移除 VS Code 附带的一些默认主题,可以在扩展视图 (⇧⌘X (Windows, Linux Ctrl+Shift+X)) 中禁用它们。从扩展视图顶部选择 筛选扩展 按钮,选择 内置 选项,然后会看到一个 主题 部分,其中列出了默认主题。

built-in themes

你可以禁用内置主题扩展,就像禁用任何其他 VS Code 扩展一样,在齿轮上下文菜单上使用 禁用 命令。

disable theme

文件图标主题

文件图标表示特定的文件类型。这些图标与文件名称一起显示在资源管理器视图和选项卡式标题中。文件图标主题可由扩展提供。

选择不同的文件图标主题

  1. 选择 文件 > 首选项 > 主题 > 文件图标主题 菜单项,或使用 首选项: 文件图标主题 命令显示文件图标主题选取器。

  2. 使用 向上向下 键在列表中导航并预览主题的图标。

  3. 选择所需的主题并按下 Enter

file icon theme dropdown

默认情况下,使用 Seti 文件图标主题,这些图标就是你在资源管理器视图中看到的图标。VS Code 会记住你在重启后的文件图标主题选择。你可以通过选择 来禁用文件图标。

VS Code 附带两个文件图标主题:MinimalSeti。要安装更多文件图标主题,请在文件图标主题选取器中选择 安装其他文件图标主题 项,这将打开按图标主题筛选的扩展视图。

你还可以直接浏览VS Code 市场网站查找可用主题。

活动文件图标主题保存在用户设置中(键盘快捷方式 ⌘, (Windows, Linux Ctrl+,))。

  // Specifies the file icon theme used in the workbench.
  "workbench.iconTheme": "vs-seti"

创建自己的文件图标主题

你可以使用图标(最好是 SVG)创建自己的文件图标主题,有关详细信息,请参阅我们扩展 API 部分中的文件图标主题文章。

Web 版 VS Code

Web 版 VS Code 提供了一种免费、无需安装的 VS Code 体验,完全在浏览器中运行,网址为 https://vscode.dev

你可以通过以下 URL 架构在 Web 版 VS Code 中共享和体验颜色主题:https://vscode.dev/editor/theme/<extensionId>

例如,你可以访问 https://vscode.dev/editor/theme/sdras.night-owl 来体验Night Owl 主题,而无需经过下载和安装过程。

你可以在Web 版 VS Code 文档中了解有关预览和共享主题的更多信息。

产品图标主题

产品图标主题使你能够更改 VS Code 用户界面中的图标,特定文件类型的图标除外。例如,你可以修改活动栏中视图的图标,或标题栏中用于更改布局的图标。

注意在下图中选择不同的产品图标主题时,活动栏图标的更新情况。

Screenshot of the Product Icon Theme dropdown, and how the Activity Bar icons are changed.

选择不同的产品图标主题

  1. 选择 文件 > 首选项 > 主题 > 产品图标主题 菜单项,或使用 首选项: 产品图标主题 命令显示产品图标主题选取器。

  2. 使用 向上向下 键在列表中导航并预览主题的图标。

  3. 选择所需的主题并按下 Enter

默认情况下,VS Code 附带一个产品图标主题:Default。你可以直接从产品图标主题选取器中选择 VS Code 市场中的更多产品图标主题,方法是选择 浏览其他产品图标主题...

后续步骤

主题只是自定义 VS Code 的一种方式。如果你想了解有关 VS Code 自定义和可扩展性的更多信息,请尝试阅读这些文章

  • 设置 - 了解如何通过用户和工作区设置根据你的偏好配置 VS Code。
  • 代码片段 - 向你喜欢的语言添加额外的代码片段。
  • 扩展 API - 了解扩展 VS Code 的其他方法。
  • 颜色主题 - 颜色主题扩展 API。
  • 文件图标主题 - 文件图标主题扩展 API。