根本原因是UI Theme和Syntax Theme必须分别启用,只装one-dark-ui等UI主题不改变代码高亮;需在Settings→Themes中同时选中one-dark-ui和one-dark-syntax,且language-*插件须启用、文件须正确识别为对应语法作用域。

Atom 的深色模式下语法高亮不生效,根本原因不是“主题没装好”,而是语法高亮(Syntax Theme)和界面主题(UI Theme)完全独立,且必须手动启用。只装了 one-dark-syntax 包但没在 Settings → Themes 里选中它,代码就永远是灰的。
为什么装了 One Dark 主题但代码还是白/灰?
这是 Atom 最高频误操作:用户在 Install 页面搜到 one-dark-ui 或 atom-dark-ui 就点了 Install,以为“暗色主题”一步到位。但这些只是 UI Theme,只改侧边栏、标签页颜色,对编辑器里的 .syntax--string、.syntax--keyword 类名零影响。
- 打开 Settings(
Ctrl+,或Cmd+,),点左侧 Themes 标签页 - 确认两个下拉框都已设置:
—UI Theme选one-dark-ui(或atom-dark-ui)
—Syntax Theme必须单独选one-dark-syntax(或其他深色语法主题,如atom-material-syntax) - 改完立刻生效,无需重启
PHP/JS/Vue 文件高亮不全?检查 language-* 包是否启用
语法高亮要靠两层协作:language-* 包负责把代码切分成正确的作用域(比如 source.php、source.js.jsx),Syntax Theme 才能按这些 scope 上色。如果 .vue 文件只有 template 部分有颜色,script 和 style 是灰的,大概率是 language-vue 没启用,或用的是旧版不支持 SFC 全语法的包。
- 进 Settings → Packages,搜索
language-php、language-javascript、language-vue,确保状态为 Enabled - 右键编辑器底部状态栏显示的语法名(如 “Plain Text”),选
Grammar Selector: Show,手动切换成对应语言(如 “Vue Component”) - 新建未保存文件默认是
text.plain,必须先保存为.vue或手动切换语法,否则连作用域都不会生成
想微调注释/字符串颜色?只改 styles.less,别碰主题源码
Atom 1.0+ 使用 Shadow DOM 封装编辑器内容,直接写 .comment 或 .string 无效。所有自定义必须走 ~/.atom/styles.less,且选择器要带 atom-text-editor::shadow 前缀和官方 syntax 类名。
- 正确写法:
atom-text-editor::shadow .syntax--comment { color: #6a9955 !important; } - 错误写法:
.comment { color: #999; }或atom-text-editor .syntax--comment(缺::shadow) - 改完必须三步全做:保存
styles.less→Ctrl+Shift+P输入Window: Reload→ 用Ctrl+Alt+Shift+P打开 DevTools,用元素选择器验证最终生效的选择器 - 背景换成更暗色(如
#121212)后注释看不清?别只改背景,同步调亮.syntax--comment和.syntax--string,否则对比度崩坏
最易被忽略的一点:Atom 不会自动识别新文件的语言类型,哪怕你装了全部 language-* 包。未保存的 untitled 文件永远是 text.plain,而 core.fileTypes 配置只对已保存文件扩展名生效——这意味着,如果你习惯先写代码再保存,每次都要手动点状态栏选语法,这是设计使然,不是 bug。

















