语法高亮不准主因是 language-* 插件未正确安装启用,需检查 settings → packages 中 language-vue 等是否启用、scope 名是否准确(如 source.vue)、config.cson 中 filetypes 和 customfiletypes 映射是否正确并重启 atom,必要时清空 compile-cache。

语法高亮不准,90% 是 language-* 插件没装对或没启用
Atom 不会自动推断文件类型,.vue、.tsx、.svelte 这类文件打开就是 Plain Text,不是 bug,是设计。高亮不准的第一反应不该是换主题或重装 Atom,而是确认对应 language-* 插件是否已安装且处于 Enabled 状态。
- 打开
Settings → Packages,搜索language-vue、language-typescript-react、language-svelte,逐个点开看右上角是否显示Disable(说明已启用);若只显示Uninstall,说明只是装了但没启用 - .vue 文件必须用
language-vue(提供source.vuescope),不是language-html或language-vue-component;后者注册的是text.html.vue,Atom 会降级处理,导致<script setup></script>块完全不解析 - 装完插件后必须重启 Atom——部分插件(尤其是带 scope 委托的)在启动阶段才注册 grammar,热加载不生效
fileTypes 映射写错 scope 名,高亮静默失效
config.cson 中的 core.fileTypes 是让新建文件或无扩展名文件自动绑定语法的关键,但 scope 名错一个字母就白配。它不报错,也不提示,只是默默 fallback 到 Plain Text。
- 查准确 scope 名:打开一个已正确高亮的文件 →
Ctrl+Shift+P→ 输入Editor: Log Cursor Scope→ 看输出第一行,如source.vue、source.tsx、source.css.scss - 常见错误映射:
'.vue': 'text.html.vue'(错)、'.ts': 'source.typescript'(错,应为source.ts)、'.scss': 'source.sass'(错,应为source.css.scss) - 映射位置必须在
config.cson的core:下,不能写进styles.less或插件设置页;保存后新开文件才生效,已有Untitled标签页不会刷新
customFileTypes 没配,.vue 里的 script/style 块不着色
即使 language-vue 正确识别了 .vue 文件整体结构,它默认也不会把 <script lang="ts"></script> 委托给 TypeScript 解析器,<style lang="scss"></style> 也不会交给 SCSS 解析器——这需要显式配置 customFileTypes。
- 编辑
config.cson,在core:下添加: customFileTypes: "source.ts": ["vue"]"source.jsx": ["vue"]"source.css.scss": ["vue"]- 注意:
source.ts来自language-typescript-react,不是官方language-typescript;source.css.scss来自language-sass,不是language-scss - 改完必须重启 Atom,否则委托关系不注册
compile-cache 污染导致 grammar 加载失败
Atom 升级、插件更新失败或 Node 环境变更后,~/.atom/compile-cache 里残留的旧字节码可能和当前环境不匹配,现象是:语言包明明启用了,但 Editor: Log Cursor Scope 输出仍是 text.plain,控制台报 Cannot find module './main'。
- 不要只删子目录,直接清空整个缓存:
rm -rf ~/.atom/compile-cache(macOS/Linux)或手动删除%USERPROFILE%\.atom\compile-cache(Windows) - 重启 Atom 后它会自动重建全部缓存;首次启动稍慢属正常
- 如果问题依旧,再检查
~/.atom/config.cson中core.disabledPackages是否误禁用了某个language-*包(哪怕插件页面显示 Enabled,只要名字还在这个数组里,Atom 就永远不加载)
Atom 的语法引擎不依赖“全局重启”或“一键修复”,关键动作就三个:确认插件启用、查准 scope 名、清掉 compile-cache。最容易被忽略的是 customFileTypes 配置后不重启——这时候所有语法都像“半身不遂”,template 高亮了,script 块还是灰的。











