尝试以扩展 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

根据操作系统颜色方案自动切换

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

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

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

  • Workbench: Preferred Dark Color Theme - 默认为 Dark Modern
  • Workbench: Preferred Light Color Theme - 默认为 Light Modern
  • Workbench: Preferred High Contrast Color Theme - 默认为 Dark High Contrast
  • Workbench: Preferred High Contrast Light Color Theme - 默认为 Light High Contrast

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

VS Code for the Web 在 https://vscode.dev 提供了一个免费、免安装、完全在浏览器中运行的 VS Code 体验。

你可以通过 URL 模式 https://vscode.dev/editor/theme/<extensionId> 在 VS Code for the Web 中分享和体验颜色主题。

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

你可以在 VS Code for the Web 文档中了解更多关于预览和分享主题的信息。

产品图标主题

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

请注意在下图中,当选择不同的产品图标主题时,活动栏图标是如何更新的。

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

选择不同的产品图标主题

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

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

  3. 选择你想要的主题,然后按Enter键。

默认情况下,VS Code 自带一个产品图标主题,即默认。你可以通过选择浏览其他产品图标主题...,直接从产品图标主题选择器中选择 VS Code 应用市场中的更多产品图标主题。

后续步骤

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

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