Atom新建无扩展名文件默认为Plain text是设计使然,并非bug;需在config.cson中配置core.fileTypes映射空字符串或扩展名到准确grammar scope(如'': 'source.python'、'.py': 'source.python'),保存后新开文件即生效。

新建无扩展名文件默认是 Plain text,不是 bug,是 Atom 故意不猜;要让它一打开就用 Python/TypeScript 等语法,必须改 config.cson 里的 core.fileTypes。
为什么新建文件总是 Plain text?
Atom 启动后点 Cmd+N(macOS)或 Ctrl+N(Windows/Linux),出来的 untitled 文件默认 scope 是 text.plain。它不触发任何语法高亮、缩进或补全——因为 Atom 拒绝自动推测语言。这不是配置漏了,是设计如此。
- 空字符串
''在fileTypes中才代表“无扩展名的新建文件” - 装了
language-python或language-typescript插件 ≠ 新建文件自动生效 - 改
styles.less或插件设置页里的“默认语言”选项,完全无效
怎么让 .py、.ts、.vue 等文件一开就高亮?
打开命令面板:Cmd+Shift+P(macOS)或 Ctrl+Shift+P(Windows/Linux),输入 Open Your Config 回车,编辑 config.cson,在 core: 下加 fileTypes: 映射:
core:
fileTypes:
'.py': 'source.python'
'.ts': 'source.ts'
'.vue': 'source.vue'
'.twig': 'text.html.twig'
-
source.python这类 scope 名必须准确——打开一个已高亮的 .py 文件,执行Editor: Log Cursor Scope,看第一行输出 -
.vue对应的是source.vue(来自language-vue-component),不是text.html.vue - 改完保存,不用重启 Atom,但已有 untitled 标签页不会变,新开一个才生效
为什么改了还是不生效?常见静默失败点
映射写对了,插件也装了,但状态栏仍显示 Plain Text,大概率是以下之一:
-
language-vue-component或language-typescript-react没启用(去Packages页面确认 Enabled) - scope 名拼错:比如
.tsx写成'source.typescript',正确应为'source.tsx' - 把配置误加到了
styles.less或某个插件的 settings 里,而不是~/.atom/config.cson - 用了过时插件(如
nginx-conf),其 grammar 已不被 Atom 1.60+ 加载
空文件(untitled)想默认用 Python 怎么办?
直接映射空字符串即可,但要小心副作用:
core:
fileTypes:
'': 'source.python'
- 所有新建无扩展名文件(包括你随手按
Cmd+N写笔记的场景)都会变成 Python 语法 - 如果同时写 Markdown 或 JSON,会因语法不匹配导致括号错位、缩进异常
- 更稳妥的做法是:只映射常用扩展名,手动点状态栏切换 untitled 文件的 grammar(
Ctrl+Shift+L)
真正容易被忽略的是:Atom 不会根据文件内容推断语言,哪怕你贴了一段 console.log() 进 untitled 窗口,它也永远是 text.plain——除非你先保存为 .js,或手动指定 grammar。











