如果你问一个老开发者,装完 VSCode 之后干的第一件事是什么,多半不是写代码,而是换主题、调字体、配快捷键。我自己的经历也差不多,这几年折腾过的主题少说也有几十个,从经典款到网红款,从高对比度的到低饱和度的,踩过不少坑,也真香过很多次。这篇文章就分享一下我最终留下的 8 个 VSCode 主题,风格各不相同但都有一个共同点:好看且耐看,不是那种一眼惊艳、两天就腻的类型。
这篇内容适合刚接触 VSCode 的新手,也适合用了很久但对默认主题已经审美疲劳的老用户。你可以直接照着扩展 ID 搜索安装,也可以看看我针对每个主题的微调思路,让它更贴合你的编码场景。顺便说一句,很多人装完 VSCode 还会去搜主题、插件、设置中文、配置 Python 或 C/C++ 环境,这些其实都属于“把编辑器调教得像自己的家”这个范畴,主题就是其中最直观、最有成就感的一步。
1. 为什么主题这件事值得认真对待
1.1 主题不只是“换个颜色”
很多新手会觉得主题就是个皮肤,换不换无所谓。但实际写代码超过几个小时之后你会发现,配色直接影响注意力和眼睛的舒适度。VSCode 默认的深色主题其实不算差,但它的问题在于色彩的层级感不够,关键字、字符串、函数名、变量名之间的对比度偏弱,长时间盯着屏幕,视线很难快速定位到目标位置。
好的主题能做到的是让代码结构“一眼可见”——哪些是关键字、哪些是字符串、哪些是函数调用,通过颜色就能形成条件反射。这不是玄学,编辑器的语义高亮(semantic highlighting)会为不同的符号类别分配不同颜色,主题选得好,阅读代码的速度会有肉眼可见的提升。
1.2 选主题前先回答三个问题
我见过太多人一上来就装十几个主题,然后挨个试,最后眼花缭乱又装回默认。其实选主题之前,你应该先问自己三个问题。
第一,你主要在什么光线环境下写代码。白天在明亮的办公室,低对比度的浅色主题可能很舒服;晚上关灯写代码,高对比度的深色主题才是首选。第二,你写的是什么类型的代码。前端工程师对标签嵌套、CSS 属性的辨识度要求高,数据工程师天天看 JSON 和 SQL,Python 开发者则最在意缩进和函数边界的清晰度。第三,你自己对颜色的偏好。有人喜欢冷色调的克制感,有人喜欢高饱和的“赛博朋克”风,这个没有对错,只有习惯。
1.3 “好看”和“好用”的平衡点
很多热门主题是“好看”的,但真拿它写一天代码,眼睛会很累。主要原因是对比度过高,或者色彩数量过多,整个编辑器看起来像霓虹灯广告牌。
我的判断标准有三条:背景色不能太刺眼,纯黑背景其实并不推荐,因为它和周围环境的反差过大;关键字的高亮颜色要和背景有明显区别,但不能到刺眼的程度;整个配色方案里,主色调最好不要超过三四种,否则代码会显得杂乱。这 8 个主题都是基于这套标准筛选出来的,美观和实用性兼顾。
2. 八个配色方案逐个推荐与细节解读
2.1 One Dark Pro:经典中的经典,萌新首选
扩展 ID:zhuangtongfa.Material-theme(这个是 One Dark Pro 的发行 ID,注意别和 Material Theme 混了)
One Dark Pro 基本上是 Atom 编辑器 One Dark 配色的移植版,在 VSCode 主题下载榜上永远是前三。它的背景色是偏暖的深灰(#282C34),不是纯黑,长时间看不会觉得死板。关键字用紫色,字符串用绿色,函数名用蓝色,类名用黄色,整体色彩层次非常清晰,但又不会过分跳脱。
我给新手的建议是:直接用 One Dark Pro 作为默认主题,因为它几乎是所有语法高亮插件适配得最好的主题,无论你写 Python、JavaScript、C++ 还是 Go,颜色都不会崩。配合 VSCode 默认的深色界面,几乎不需要额外调任何设置,属于“装上就用”的类型。
如果你觉得默认对比度不够,可以在设置里搜索workbench.colorCustomizations,把编辑器背景调暗一档,比如改成#21252B,会更有质感。
2.2 Material Theme:全家桶式的一体化体验
扩展 ID:Equinusocio.vsc-material-theme
Material Theme 系列最出名的是 Palenight 变体,背景呈淡紫色调,搭配 Material Design 色彩规范里的蓝、青、紫三种主色,非常适合喜欢“高级感”的人。和 One Dark Pro 相比,它最大的优势是有一套完整的配套:图标主题、高亮、界面配色甚至是终端配色都是同一套设计语言。
你可以同时安装它的图标扩展Material Icon Theme,这样资源管理器里的文件夹和文件图标会和整体配色保持一致,整个编辑器看起来像是一个精心设计过的产品,而不是拼凑出来的工具。
我提醒一点:Material Theme 系列提供了多种变体(包括 Ocean、Lighter、Darker),建议不要贪多,固定用 Palenight 一种就好,换来换去反而会让你的眼睛需要重新适应。
2.3 Dracula Official:高对比度爱好者的心头好
扩展 ID:dracula-theme.theme-dracula
Dracula 是一款火了七八年的主题,从终端到编辑器再到各种应用,都有它的身影。它的最大特点是高对比度和紫色系贯穿始终,背景是非常深的紫灰色(#282A36),关键字是粉色,字符串是黄色,函数名是青色,看起来非常鲜明。
如果你经常在暗光环境下写代码,Dracula 的辨识度优势非常明显。我自己的体验是,用它看一整天代码,眼睛不太容易疲劳,因为它的对比度虽然高,但色彩饱和度控制得刚刚好,不会像某些荧光色系主题那样刺眼。
需要注意的一件事:如果你用 Dracula,建议同时把 VSCode 的终端背景也设置成匹配色,否则编辑器是紫灰色,终端却是黑底白字,视觉上会有割裂感。后面我会专门讲终端配色的设置方法。
2.4 Nord:极简北欧风的低饱和设计
扩展 ID:arcticicestudio.nord-visual-studio-code
Nord 是一套源自北极色调的配色方案,配色灵感来自极地冰川,以冷灰蓝为主,饱和度非常低。初次看到它的人往往会觉得“素”,但用久了会发现,它是最“耐看”的主题之一。整个编辑器的背景是一种带蓝调的深灰,代码高亮几乎不会干扰你的视线,适合需要长时间专注的场景。
我认识几个写文档、写博客、写技术文章的朋友,都对 Nord 情有独钟。因为它的低对比度让文字阅读非常舒服,不只是代码,连 Markdown 预览里的标题、链接、引用都显得清清爽爽。
Nord 的缺点是有些人会觉得“太冷”,如果你喜欢暖色系,可以先跳过这个。但如果你想体验什么叫“极简到极致”,它值得一试。
2.5 Tokyo Night:现代感拉满的都市夜间风
扩展 ID:enkia.tokyo-night
Tokyo Night 是近年来社区热度上升非常快的主题,灵感来自东京夜景,配色以深蓝为底色,搭配亮蓝、紫色和粉色,整体氛围感很强,既有科技感又不会让人觉得乱。它的最大优势是色彩层次做得非常好,每个语法元素的颜色都清晰可辨,而且不会互相打架。
我用它写过几个星期的 TypeScript,最大的体会是:类型、接口、泛型这些“类型层面”的东西在 Tokyo Night 里被突出得很到位,写前端代码的时候尤其顺手。它的背景色是偏蓝的墨色(#1A1B26),配合默认的暗色标签栏,整个界面像是为代码量身定做的夜间模式。
Tokyo Night 还自带了几个变体,比如 Tokyo Night Storm(饱和度更低)和 Tokyo Night Light(浅色版本),可以根据使用环境切换。如果想追求视觉一致性,它可以搭配同作者的Catppuccin系列图标或Material Icon Theme一起用。
2.6 GitHub Theme:代码评审场景下的“官方腔调”
扩展 ID:github.github-vscode-theme
GitHub Theme 是 GitHub 官方出品的主题,最值得用的是它的 Dark Default 变体,和你在 GitHub 网页上看到的深色模式几乎一模一样。它的特点是色彩语义非常准确:字符串是绿色,关键字是紫色,函数是蓝色,变量是浅灰,一切都很“标准”。
这个主题特别适合两种人。第一种是经常需要打开 GitHub 看别人的代码、提 PR 的人,编辑器里的配色和网页端保持一致,切换起来不会有认知成本。第二种是团队协作中需要分享屏幕的人,Code Review 的时候,对方看到的颜色和你看到的是一致的,减少沟通成本。
它最大的优势是“稳”,不会给你任何惊喜,但也绝对不会出错。如果你想给别人一种“这个开发者很专业”的感觉,GitHub Dark 是不错的社交名片。
2.7 SynthWave '84:赛博朋克复古风,颜值天花板
扩展 ID:RobbOwen.synthwave-vscode
如果你想要一个让人“哇”出来的主题,SynthWave '84 几乎是唯一的选择。它以 80 年代复古霓虹灯为灵感,背景偏暗紫,配上高饱和度的粉色、青色和黄色,整个编辑器像科幻电影里的终端界面。更重要的是,它还内置了一个可选的“发光效果”(glow),开启后关键字的边缘会有辉光,视觉效果非常震撼。
我个人觉得 SynthWave '84 是所有主题里“颜值”最高的一个,发朋友圈、录屏、做 demo 的时候用它,效果直接拉满。但说实话,它不太适合作为日常主力主题,因为高饱和的配色加发光效果会让眼睛容易疲劳。我的建议是安装它,在需要展示的时候临时切换,日常写代码还是换回 Tokyo Night 这类温和的主题。
另外,如果想更好地还原官方的惊艳效果,建议把字体设置为它推荐的Fira Code或者Cascadia Code,字体连字和霓虹高亮配合起来才够味。
2.8 Catppuccin:温柔奶油风的社区爆款
扩展 ID:Catppuccin.catppuccin-vscode
Catppuccin 是这两年在开发者社区里非常火的一套配色系统,它以“柔和、温暖”为核心,提供了四种不同色调的变体:Latte(浅色)、Frappé(柔和)、Macchiato(中等)、Mocha(深色)。我最推荐的是 Macchiato,它的背景带一点点暖紫,色彩饱和度不高,但层次分明,看久了不会有干涩感。
和前面几个主题相比,Catppuccin 最大的优势是它的“亲和力”。它不像 Dracula 或者 SynthWave 那样张扬,而是给人一种温柔、圆润的感觉。尤其是配合圆角界面和现代字体,整个编辑器看起来非常精致。如果你在用 macOS 或者 Windows 11 这种本身就很注重圆润视觉的系统,Catppuccin 会让 VSCode 和系统风格融为一体。
它还提供了一整套生态,包括终端配色、图标主题、浏览器主题等等,适合愿意在“编辑器美学”上多花点心思的玩家。
3. 安装、切换与个性化配置指南
3.1 两分钟搞定的安装流程
安装主题其实非常简单,打开 VSCode 左侧的扩展市场图标(快捷键Ctrl+Shift+X),在搜索框里输入主题名称或者上面的扩展 ID,找到对应扩展后点击安装,然后根据提示重载窗口即可。
这里有一个小技巧:搜索主题的时候,尽量用我上面给出的扩展 ID 搜索,因为 VSCode 扩展市场里同名主题很多,用准确 ID 才能避免装到山寨版或者功能不全的低分替代品。安装完成后,点击右下角弹出的提示“Change Color Theme”即可立刻切换。
3.2 用快捷键切换主题,效率翻倍
切换主题最快捷的方式是使用快捷键Ctrl+K然后按Ctrl+T,会弹出一个颜色主题选择列表,直接输入主题名称就可以过滤。如果你安装了多个主题,想偶尔换换口味,这个快捷键比进设置里慢慢找要快得多。
也可以使用命令面板(Ctrl+Shift+P),输入Preferences: Color Theme,效果是一样的。我个人的习惯是只保留两三个常用主题,太多选择反而会让人纠结。我在工作中主力是 Tokyo Night,演示或录屏时切到 SynthWave '84,心情需要调剂的时候用 Catppuccin Mocha,这样就够了。
3.3 常用 settings.json 配置项
如果你想更深度地“调教”主题,可以打开设置文件:Ctrl+Shift+P输入Open Settings (JSON)。下面这几项是所有主题都能用得上的配置,你可以根据自己的喜好调整:
{ "workbench.colorTheme": "Tokyo Night", "workbench.iconTheme": "material-icon-theme", "workbench.colorCustomizations": { "[Tokyo Night]": { "editor.background": "#1A1B26", "editor.lineHighlightBackground": "#1F2335" } }, "editor.fontFamily": "'Cascadia Code', 'JetBrains Mono', Consolas, monospace", "editor.fontLigatures": true, "editor.fontSize": 14, "editor.lineHeight": 1.7, "editor.semanticHighlighting.enabled": true }workbench.colorCustomizations允许你针对特定主题覆盖某个组件的颜色,比如把行高亮的背景色改得更明显,或者把侧边栏的背景改成和编辑器主体一致。这种微调的好处在于是“覆盖式”的,不会影响主题本身的其他配色逻辑。
editor.semanticHighlighting.enabled建议保持开启,这是 VSCode 的语义高亮功能,它会根据代码的语义信息为类型、变量、函数等提供更精准的颜色,配合新版本的语言服务效果特别好。
3.4 让主题在终端、侧边栏和远程开发中保持一致
VSCode 的主题系统其实分两层:编辑器代码区的配色来自 color theme,而整个窗口的 UI 元素(侧边栏、标题栏、状态栏)也跟随同一个主题。大多数主题都会一并设计这两部分,但有些主题的终端背景没有跟随设置,需要手动指定。
如果你想让集成终端保持和界面一致,可以在 settings.json 里加这样一段:
{ "terminal.integrated.minimumContrastRatio": 4.5, "workbench.colorCustomizations": { "terminal.background": "#1A1B26" } }具体的色号可以根据你当前主题的背景色来填,不知道色号的话,可以在主题的 README 页面查看,大部分主题都会标注主色色号。
另外,如果你用过 WSL 或者远程开发(Remote-SSH),使用这个主题的话,建议在远端也安装同样的主题扩展。VSCode 远程开发时,界面渲染是在本地完成的,但某些扩展需要在远端启用,主题扩展在本地启用即可,不过一旦你切换到新的远程窗口,有时候主题不会自动带过去,需要在扩展列表里确认状态,这是很多人会遇到的小困惑。
4. 让主题“上一个大档次”的视觉搭配细节
4.1 字体选对了,主题效果才完整
主题只负责颜色,而字体的选择和主题的观感是强绑定的。同一个 Tokyo Night,用默认的 Consolas 和用 JetBrains Mono,看起来完全像两个编辑器。
我给几个主流组合参考:
- One Dark Pro 搭配 Fira Code:经典加经典,几乎不会出错
- Tokyo Night 搭配 JetBrains Mono:现代感强,字母间距略宽,写代码时呼吸感好
- Catppuccin 搭配 Cascadia Code:连字丰富,界面圆润柔和,最适合“奶油风”
- Dracula 搭配 Hack 或 IBM Plex Mono:字形硬朗,和主题的对比度风格很搭
这只是参考,字体是十分个人化的选择。如果你需要一个通用建议:先试Cascadia Code,它在微软官方开源字体里对中文显示的支持非常不错,而且免费开源、内置连字功能。
4.2 文件图标主题是“隐藏的美化神器”
很多人换了颜色主题,却忘了文件图标,结果资源管理器里还是 VSCode 默认的那个蓝底白角图标,和精心挑选的主题完全不搭。我推荐Material Icon Theme,它是目前最流行的图标主题,覆盖了绝大多数文件类型,从 JS、TS、Python 到 Dockerfile、Markdown、JSON,都有对应的图标样式。
安装后在命令面板里输入File Icon Theme,选择 Material Icon Theme 即可。如果某些文件夹的图标你不喜欢,它还支持自定义关联,比如把src文件夹固定显示为蓝色源码图标,这个在设置里能找到material-icon-theme.folders.associations。
4.3 括号和缩进的高亮,让阅读代码不再迷路
很多人忽略了括号配对着色(bracket pair coloring)的重要性。嵌套层级一多,尤其是写回调函数、对象字面量的时候,括号一多就不知道哪个跟哪个配对了。VSCode 新版本内置了括号颜色高亮,但你也可以安装Bracket Pair Colorizer的替代品Rainbow Brackets来获得更明显的效果。
Rainbow Brackets 会把每一层括号用不同颜色标示出来,与主题本身的配色形成互补。比如你在 Tokyo Night 或 One Dark Pro 中使用它,不同层级的括号会呈现蓝、绿、紫、红等颜色,缩进结构一目了然。需要注意的是,有些主题本身对括号颜色已经有优化,配合 Rainbow Brackets 时可能会显得有些拥挤,这时候可以关掉 Rainbow Brackets 的独立颜色,只保留缩进线高亮。
4.4 状态栏和侧边栏的微调技巧
主题效果翻车的场景中,“状态栏太亮”是最常见的一种。很多主题默认把状态栏设计成高亮色,比如蓝色或蓝色,目的是凸显“当前在编辑哪个项目”。但如果你的屏幕外亮度不高,或者你同时打开了多个编辑器窗口,这种高亮其实很干扰注意力。
可以在workbook.colorCustomizations里单独覆盖状态栏的颜色,比如把状态栏背景改成和侧边栏一致的深灰,文字颜色改为浅色。这样整个编辑器界面就只有代码区的颜色是“活跃”的,更容易聚焦。
另外,大部分主题都会让标签栏透明化或使用半透明底色,如果你觉得看不到标签边界,可以加一条自定义颜色:
"workbench.colorCustomizations": { "tab.activeBackground": "#282C34", "tab.inactiveBackground": "#21252B", "tab.activeBorder": "#61AFEF" }这样当前激活的标签页会有一条蓝色下划线,切换文件时找起来特别方便。
4.5 One Dark Pro 和 Material Theme 如何选
One Dark Pro 和 Material Theme 是很多新手纠结的对象。我的建议很简单:如果你喜欢偏暖的颜色、代码区域要亮一些,就选 One Dark Pro;如果你喜欢偏冷的紫蓝色调、界面整体要暗一点,就选 Material Theme 的 Palenight。
如果你还是拿不定主意,可以在 VSCode 里同时安装两个主题,用Ctrl+KCtrl+T快速切换,各用一天再决定。编辑器主题这种事,自己看着舒服才是唯一标准。
5. 常见问题与排查技巧实录
5.1 主题明明安装了,却不生效
这个问题多半是因为 VSCode 同时启用了“默认主题”覆盖。检查方法:打开设置搜索workbench.colorTheme,确认当前选中的不是带(Default)后缀的选项。如果你在远程开发环境里,检查远端是否也安装了对应的主题扩展。
如果已经确认设置没问题但主题还是不变,可以使用命令面板执行Developer: Reload Window重载窗口,大部分时候能解决。我遇到过的另一种情况是某些主题扩展有“加粗关键字”的开关,默认关闭,需要在主题扩展自己的设置项里打开,否则代码区颜色变了,但代码样式还是老样子。
5.2 某些语言的高亮颜色不理想怎么办
不同的语言服务对语义标记的支持程度不同,比如 C/C++ 和 Python 的语义高亮就比纯 HTML 要丰富。如果你发现某个主题对某类代码的高亮不太好看,可以直接用editor.tokenColorCustomizations来覆盖,按语法类别单独定义颜色。
这里给一个将注释变成斜体、关键字变亮色的示例:
"editor.tokenColorCustomizations": { "comments": { "fontStyle": "italic", "foreground": "#6B7280" }, "keywords": { "foreground": "#C678DD" } }这个设置是针对所有主题全局生效的,所以改的时候要想清楚,是想要“就这个主题生效”还是“所有主题都一样”。如果想要针对某个主题生效,要加主题名做前缀,像第 3.3 节写的[Tokyo Night]那样。
5.3 终端和编辑器颜色不一致
这个问题上面提过,但值得单独说一下,因为十个用主题的人里有三四个会遇到。VSCode 的集成终端有自己独立的颜色定义,很多主题会在扩展里自动配置终端配色,但有时候没有。解决办法是在 settings.json 里手动设置终端的 ANSI 颜色,或者更省事的方法是让终端直接使用 VSCode 的当前主题配色,在终端设置中搜索terminal.integrated.autoDetect相关配置,或使用workbench.colorCustomizations覆盖终端背景。
如果你用的刚好是 Dracula 或 Tokyo Night,去主题的 GitHub 主页找一下主题的配色地址,把里面列出的terminal.ansi*颜色直接复制到 settings.json 里,终端就会和编辑器完美同步。
5.4 安装扩展过多导致编辑器变慢
这个问题不只在主题安装时出现,但我在装主题时会顺手装一批东西(图标、括号、字体、peacock 等等),有时候一个都没少,但 VSCode 启动速度肉眼可见地变慢了。排查的方法很简单:用命令面板输入Developer: Show Running Extensions,可以查看每个扩展的 CPU 占用。
主题扩展本身一般不会明显拖慢编辑器,但一些“美化类”插件,比如 glow 效果、透明背景、动画这类功能,确实会占用渲染资源。如果你在意启动速度和流畅度,建议只在演示场景临时开启这些效果,日常写代码用静态主题就够了。
5.5 我的独家排坑 Q&A
下面这个表格是我这几年折腾 VSCode 主题时总结的核心问题,按出现频率排个序:
| 问题现象 | 可能原因 | 处理方式 |
|---|---|---|
| 主题切换后界面没变化 | 设置了自定义颜色覆盖 | 检查workbook.colorCustomizations,移除冲突项 |
| 标签栏颜色和主题不搭 | 主题未覆盖 UI 组件 | 手动配置tab.activeBackground等颜色 |
| 终端文本看不清 | 终端背景和前景色对比度低 | 用主题自带终端配色或手动覆盖 ANSI 色 |
| 括号颜色看着乱 | 多个括号高亮插件叠加 | 只启用一个括号高亮扩展,关掉主题自带效果 |
| 代码区颜色太鲜艳 | 主题开启高对比度或发光效果 | 换用低饱和变体,或关闭主题内的“霓虹”选项 |
| 图标主题不生效 | 图标扩展未启用 | 命令面板执行File Icon Theme选择对应主题 |
| 重启后主题被重置 | 扩展互相覆盖 | 检查最近的扩展安装记录,删除冲突扩展 |
5.6 忘记备份 settings.json 的教训
这个经验确实是从踩坑里学来的。有一段时间我热衷于调颜色,每次看到网上的配置片段就粘贴进 settings.json,导致整个配置文件越来越长,后来某一次复制了一段不合法的 JSON,VSCode 直接提示配置错误,部分设置失效,而且因为配置里混着各种自定义颜色,很多主题显示都乱了套。
现在我的习惯是:每次大改之前,用命令面板执行Preferences: Open Settings (JSON),右键复制保存一份到本地,命名成settings-backup-日期.json。改坏了的时候,直接把备份文件内容覆盖回去,一分钟恢复原状。这个习惯救了我至少三次。
写在最后
主题这种东西,说实话没有绝对的“最好”,只有“最适合”。我写代码这些年,从最开始疯狂追求高饱和、强对比,到慢慢转向低饱和、耐看的路线,心态也经历了一个循环。现在日常主力是 Tokyo Night,偶尔在深夜切到 Catppuccin Mocha,录屏的时候才舍得亮出 SynthWave '84。
看起来是在折腾颜色,其实本质上是给自己营造一个舒服的“工作环境”。代码写久了,编辑器就是你的第二块屏幕,让它看起来顺眼,写起代码来心情确实会好一些。如果你看完这篇准备试试其中某几个主题,记住一个原则:先用默认配置跑两天,再根据实际感受微调,别一上来就粘贴一堆自定义配置,不然你根本不知道哪些改动是你真正需要的。