Sublime Text 新建空白文件默认为 Plain Text,因其对无路径、无扩展名的 untitled 文件不作语法推测;需在 Settings – User 中精确配置 default_syntax 为完整 .sublime-syntax 路径(如 Packages/Python/Python.sublime-syntax)才生效。

Sublime Text 新建空白文件(untitled)默认不带任何语法高亮,这不是 bug,是设计如此;要让它自动用 Python/TypeScript/Markdown 等语法,必须手动配置 default_syntax,且路径必须精确到 .sublime-syntax 文件。
为什么新建文件永远是 Plain Text?
Sublime Text 对「未保存、无路径、无扩展名」的 untitled 文件不做任何语法推测——它不会读内容、不看 shebang、不猜结构。哪怕你刚写完 #!/usr/bin/env python3,Ctrl+N 新建的窗口仍是 Plain Text。这不是插件没装好,也不是设置漏了,是原生逻辑就如此。
这个行为只影响 untitled 文件:一旦你保存为 main.py 或打开已有 config.toml,Sublime 就会按扩展名自动匹配,和 default_syntax 无关。
怎么设 default_syntax 才真正生效?
关键不是写 “Python”,而是写对完整路径。错一个字符、大小写不对、用了 .tmLanguage(ST3)却配在 ST4 上,都会静默失败。
- 先用一个已正确高亮的文件(如打开
test.py)→ 按Ctrl+Shift+P→ 输入Set Syntax: Python→ 再立刻执行Copy Syntax Path(需提前装Syntax Highlighting Tools或PackageResourceViewer) - 如果没装插件,可打开该文件后按
Tools → Developer → Show Scope Name,状态栏显示source.python,对应路径大概率是Packages/Python/Python.sublime-syntax - 打开
Preferences → Settings – User,在右侧 JSON 中加入:{"default_syntax": "Packages/Python/Python.sublime-syntax"} - 重启 Sublime 或新建一个 untitled 文件验证:右下角应显示
Python,而非Plain Text
常见失效原因和坑
很多人设了但没效果,问题基本出在这几处:
-
default_syntax写在全局Preferences.sublime-settings里——它只认用户设置(Settings – User),写错位置等于没写 - 路径用了
Packages/JavaScript/JavaScript.tmLanguage(ST3 格式),但你用的是 ST4 —— ST4 只认.sublime-syntax - 路径里写了空格或中文,比如
Packages/User/My Custom Syntax.sublime-syntax—— Sublime 不支持,会直接忽略 - 想让新建文件用 TypeScript,却填了
Packages/TypeScript/TypeScript(缺后缀)或TypeScript.sublime-syntax(缺Packages/TypeScript/前缀) - 误以为
detect_syntax: true能让 untitled 文件自动识别——它只对无扩展名的已存文件起作用,对 untitled 完全无效
其他场景别混用这个设置
default_syntax 只管新建的 untitled 文件。如果你希望:
-
.env文件打开即用 ShellScript 高亮 → 用View → Syntax → Open all with current extension as…绑定 -
deploy(无后缀)文件按首行export切语法 → 必须装ApplySyntax并写规则 -
.vue文件里<script setup lang="ts">块有颜色 → 得配Vue Syntax Highlight的嵌入开关,和default_syntax无关
不同问题对应不同机制,default_syntax 是最窄、最确定的一条路,但也最容易因路径细节翻车。路径不对,就永远只是 Plain Text。


















