atom默认不识别.ts/.vue/.conf等文件,因未在config.cson中通过core.filetypes显式映射扩展名到正确scope(如'.ts': 'source.ts'),仅安装language-*插件不足以触发语法高亮。

Atom 不会自动猜文件类型,必须靠 core.fileTypes 显式映射扩展名到 grammar scope,否则新文件永远是 text.plain,高亮、缩进、补全全失效。
为什么 .ts/.vue/.nginx 文件打开还是白底黑字
常见错误不是插件没装,而是 Atom 根本没把文件当目标语言解析。language-* 插件只提供语法规则,不接管文件识别逻辑;core.fileTypes 才是触发点。
- 检查右下角状态栏显示的是
Plain Text还是JavaScript、Vue Component等 —— 只有后者才说明 grammar 已生效 - 如果显示
text.html.vue而不是source.vue,说明language-vue-component没启用,或fileTypes映射错了 scope 名 - .conf 文件默认不被识别为 Nginx,哪怕文件名含
nginx——language-nginx插件虽支持路径匹配,但优先级低于fileTypes显式规则
怎么写正确的 fileTypes 映射
scope 名必须和插件注册的一致,错一个字母就白配。查法固定:打开已正确高亮的文件 → Ctrl+Shift+P → 输入 Editor: Log Cursor Scope → 看第一行输出(如 source.ts、source.vue)。
- 在
~/.atom/config.cson(macOS/Linux)或%USERPROFILE%\.atom\config.cson(Windows)中编辑 - 在
core:下添加fileTypes:块,例如:
core:
fileTypes:
'.ts': 'source.ts'
'.vue': 'source.vue'
'.conf': 'source.nginx'
'.proto': 'source.protobuf'
'' 可设无扩展名新文件的默认语法(如 '': 'source.python'),但慎用 —— 它会覆盖所有 untitled 文件,包括你临时记笔记的场景改完不生效?这些地方最容易漏
配置保存后不用重启 Atom,但已有标签页不会刷新语法,必须新开一个文件才生效。更多静默失败原因:
- 误把
fileTypes写进了styles.less或某个插件的 settings 里 —— 它只认config.cson的core节点 - 插件未启用:
language-nginx装了但状态是Disabled,映射会静默跳过 - 冲突映射:比如
"*.conf": "source.ini"这种全局规则会覆盖'.conf': 'source.nginx',删掉前者 - scope 名大小写敏感:
source.TS≠source.ts,text.html.twig≠source.twig
最麻烦的其实是 scope 名不统一 —— 同一个 .vue 文件,language-vue 注册的是 text.html.vue,而 language-vue-component 是 source.vue。选哪个插件,就得配哪个 scope,不能混着来。











