Atom新文件默认为text.plain是设计使然,非bug;需在config.cson中配置core.fileTypes映射空字符串或扩展名到准确grammar scope(如'.py': 'source.python'),并确保缩进、引号格式正确。

为什么新文件一打开就是 text.plain?
Atom 不会自动猜语言,新建未保存文件默认永远是 text.plain,高亮、缩进、补全全失效。这不是 bug,是设计逻辑——它只响应你明确定义的规则。
必须改 ~/.atom/config.cson(Windows 是 %USERPROFILE%\.atom\config.cson),在 core: 下加 fileTypes 映射:
-
''(空字符串)代表无后缀的新建文件,比如直接 Ctrl+N;映射成'source.python'就默认用 Python 语法 - 更稳妥的做法是按扩展名绑定:
'.py': 'source.python'、'.tsx': 'source.tsx'、'.vue': 'source.vue' - scope 名必须准确:打开一个已高亮的文件 → Ctrl+Shift+P → 执行
Editor: Log Cursor Scope→ 看第一行输出,比如source.tsx,不是source.typescript或text.vue - CSON 格式极敏感:缩进必须用两个空格,引号不能漏,多一个空格整段配置就静默失效
高亮全灰?先确认 Atom 真识别了文件类型
“没颜色” ≠ 插件没装,而是 Atom 没把当前文件当目标语言解析。最直接验证方式:光标停在任意标签或函数名上(如 插件启用只是前提,不是充分条件。以下任一不满足,高亮就静默失败: 作用域对了( 真正容易被忽略的是:语法高亮依赖 grammar 输出的作用域 + 主题对这些作用域的 CSS 定义,缺一不可。哪怕 scope 链完全正确,只要主题没写 console.log),Ctrl+Shift+P 输入并执行 Editor: Log Cursor Scope,看 DevTools 控制台输出的最末一级 scope:
source.xml、source.nginx、source.python,说明 grammar 已生效text.plain、text.html、source.ass,那高亮永远起不来grammar-selector 插件开启“强制语法”会覆盖自动检测;config.cson 里有 "*.conf": "source.ini" 这类全局映射,会把所有 .conf 当 INI 处理language-xxx 插件装了却没反应?检查三处硬性条件
language-xml 必须在 Settings → Packages 里显示为 Enabled(蓝色),不是灰色禁用状态config.cson 中误删或覆盖 language-xxx 的默认后缀绑定,比如删掉 language-nginx 自带的 "*.conf": "source.nginx" 规则server.conf、app.py);新建未保存文件即使绑了 fileTypes,也要先保存才能触发 grammar 加载颜色太淡、括号看不见、JSX 标签不亮?问题不在语法层
source.jsx)、插件启用了、后缀也正确,但还是“看着像没高亮”,大概率是主题压制:
bracket-matcher 提供,但它用的是独立选择器 .bracket-matcher .region,深色主题常设成 rgba(255,255,255,0.05),肉眼不可见atom-one-light)压根没定义对应作用域样式,得换 atom-material-syntax 或手动在 ~/.atom/styles.less 补全选择器,例如:.syntax--source.syntax--jsx .syntax--entity.syntax--name.syntax--tag
!important 覆盖泛化类如 .syntax--string,要写完整作用域链;也别碰 .syntax--punctuation.bracket,它和括号匹配无关.syntax--source.syntax--xml .syntax--comment 这样的规则,注释就只能是默认灰。











