default_syntax仅对Ctrl+N新建的未保存空白文件生效,需填入正确大小写路径如Packages/Python/Python.sublime-syntax,配置须写在User设置、重启生效,且不干预带扩展名或已保存文件。

直接改 default_syntax 就行,但必须填对路径、重启生效,且只影响全新未保存的 untitled 文件——不是所有“新建”都算数。
怎么填对 default_syntax 路径?
别手敲,也别猜。最稳的方式是:
- 先打开一个已正确高亮的文件(比如
test.py) - 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入并执行Show Scope Name - 看状态栏显示的 scope,比如
source.python,对应路径基本就是Packages/Python/Python.sublime-syntax - 确认你装了对应语法包:进
Preferences → Package Settings,看 Python 或 TypeScript 等插件是否启用 - 路径大小写敏感,
Packages/Markdown/Markdown.sublime-syntax和Packages/markdown/markdown.sublime-syntax是两个东西
default_syntax 只对哪些文件生效?
它只管一种情况:按下 Ctrl+N(或 Cmd+N)新建的、从未保存、没路径、没内容、右下角显示 Plain Text 的空白标签页。
以下场景它完全不干预:
- 双击侧边栏空白处新建的文件
- 从菜单
File → New File创建的文件 - 拖一个空文件进编辑器
- 已保存过、再用
Ctrl+N新建的其他文件(Sublime 会记住上次选的语法) - 任何带扩展名的文件(如
xxx.js),哪怕刚新建完还没存,也会按扩展名自动匹配
为什么改了没反应?常见失效点
不是配置没写,而是被其他机制盖过去了:
-
default_syntax写在了Preferences → Settings – Default里——它会被忽略,必须写在User面板 - JSON 格式错误:多了一个逗号、少了一个引号,整个用户设置加载失败,Sublime 回退到默认行为
- 插件冲突:比如
ApplySyntax会劫持新建逻辑,优先级高于default_syntax;可临时禁用验证 - 路径指向的
.sublime-syntax文件实际不存在(比如卸载了 Python 插件却还配着 Python 路径) - 改完没重启 Sublime Text——这是硬性要求,部分版本不重启根本不读新语法绑定
想让 .ts、.conf 这类后缀自动高亮怎么办?
那是另一套机制,跟 default_syntax 无关:
- 打开一个
xxx.ts文件 → 点右下角当前语法(如Plain Text)→ 选TypeScript→ 再点一下语法名 → 弹出Set as Default for .ts Files,点它 - 这个操作本质是在
Packages/User/TypeScript.sublime-settings里加了一行:"extensions": ["ts"] - 千万别在全局
Preferences.sublime-settings里手动加"extensions"字段——Sublime 会直接忽略 - 如果点了没反应,检查用户设置里有没有
"detect_syntax": true,它会强制覆盖你的手动设定
真正容易被忽略的是:一个文件的最终语法,是「新建时的 default_syntax」、「扩展名映射」、「插件规则」、「手动切换」四层叠加的结果,而它们的优先级并不相同。调错一层,就白配了。


















