atom代码高亮需同时满足:文件被识别为source.xxx作用域、安装语法主题、手动启用该主题;未保存文件恒为text.plain,filetypes仅对已保存文件生效;自定义样式须在styles.less中用完整.syntax--作用域链加!important。

Atom 的代码高亮不会自动生效,必须同时满足三个条件:文件被正确识别为对应语言(即有正确的 source.xxx scope)、装了匹配的语法主题(Syntax Theme)、且该主题已手动启用——缺一不可。
确认当前文件是否被 Atom 正确识别为代码语言
高亮全灰、全是同一颜色,大概率不是主题问题,而是 Atom 根本没把你的文件当代码解析。右下角显示 Plain text 或 text.html.vue 就是铁证。
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入并执行Editor: Log Cursor Scope - 把光标停在一段函数调用上(比如
console.log()),看控制台输出的第一行,例如:source.js、source.vue、source.tsx - 如果看到的是
text.plain或text.html.vue,说明 language 插件没生效,或fileTypes映射错了 - .vue 文件必须映射到
source.vue(来自language-vue),不是text.html.vue;.tsx 必须是source.tsx(来自language-typescript-react),不是source.typescript
Syntax Theme 必须手动选中才生效
装了 atom-material-syntax 不等于它就在工作。Atom 把界面主题(UI Theme)和代码颜色(Syntax Theme)完全分开,改 UI 主题对代码颜色零影响。
- 先用
apm install atom-material-syntax安装主题包 - 进
Settings → Themes,在右侧Syntax Theme下拉框中手动选中它(不能只装不选) - 旧文件可能缓存样式,右键标签页 →
Reopen File,或重启 Atom - 别指望“换主题”一键炫彩——
atom-one-light默认饱和度低,atom-material-syntax才默认启用@syntax-color-storage-type等细分变量
自定义颜色必须改 styles.less 并带 !important
想改函数名、字符串、注释的颜色?不能靠主题设置面板,也不能直接改主题源码。唯一可靠路径是编辑用户样式表,并强制覆盖。
- 打开
Atom → Open Your Stylesheet(即~/.atom/styles.less) - 选择器必须带
.syntax--前缀,且作用域链完整,例如:.syntax--source.syntax--js .syntax--entity.syntax--name.syntax--function - 必须加
!important,否则被语法主题的变量规则静默覆盖,例如:.syntax--comment { color: #6a9955 !important; } - 若只想改某语言下的样式,得套作用域,例如:
.syntax--source.syntax--vue .syntax--string { color: #98c379 !important; } - 改完要
Ctrl+S保存 +Ctrl+Shift+P → Window: Reload重载窗口,再用Ctrl+Alt+Shift+P检查 DevTools 中最终生效的规则是不是你写的那条
新建未保存文件永远是 text.plain,不走任何语法配置
这是 Atom 的硬性设计:未保存的空白标签页,无论你装了多少插件、配了多少 fileTypes,它都默认为 text.plain。这不是 bug,是防止误判。
- 新建文件后,先
Ctrl+S保存为.js、.vue等后缀,右下角才会变成对应source.xxx -
config.cson中的fileTypes和customFileTypes只对已保存文件生效 - 想让新标签页默认用某种语言?不行。Atom 不提供该功能,所有“默认语言”类插件本质都是监听保存动作后补救
最容易被忽略的点:作用域链必须完全匹配,少一个 .syntax-- 前缀,或 scope 名写成 .syntax--js 而不是 .syntax--source.syntax--js,样式就彻底失效——Atom 不报错,只沉默跳过。











