必须设置 default_syntax 且路径精确到 .sublime-syntax 文件,修改后需重启;它仅控制未保存的 untitled 文件,不依赖扩展名或插件,路径错误将静默回退为 plain text。

必须设置 default_syntax,且路径要精确到 .sublime-syntax 文件,改完还得重启——否则新建文件永远是 Plain Text。
default_syntax 是唯一生效的配置项
Sublime Text 新建空白文件(untitled)不走扩展名匹配逻辑,只认 default_syntax。它不会读 extensions、不看 default_extension、也不理你装了多少插件。
-
default_syntax必须写完整路径,比如"Packages/Python/Python.sublime-syntax",大小写、斜杠、后缀一个都不能错 - 路径错误时 Sublime 不报错,只是静默 fallback 到 Plain Text——这是最常被卡住的地方
- 旧式
.tmLanguage路径(如Packages/Text/Plain text.tmLanguage)仍可工作,但 ST4 推荐用.sublime-syntax - 别在全局
Preferences.sublime-settings里写错位置:必须放在用户设置 JSON 的顶层,和font_size同级
怎么拿到正确的语法路径
别猜、别手敲、别去文件夹里翻——90% 的路径错误源于手动拼写。
- 先打开一个已正确高亮的文件(比如
test.py),确保右下角显示 “Python” - 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)→ 输入Set Syntax: Python→ 回车 - 立刻再执行
Copy Syntax Path(需提前装Syntax Highlighting Tools或PackageResourceViewer) - 粘贴出来的就是可用路径,例如:
Packages/Python/Python.sublime-syntax - 如果没装插件,可打开该文件后按
Ctrl+Alt+Shift+P(Windows/Linux)或Cmd+Alt+Shift+P(macOS)看状态栏显示的 scope,如source.python,对应路径通常就是Packages/Python/Python.sublime-syntax
new_file_content 只对 Ctrl+N 有效
想新建即带模板内容(比如 Markdown 前置声明),得配 new_file_content,但它和 default_syntax 是绑定关系,且有严格限制。
- 只在按下
Ctrl+N(或Cmd+N)时触发;菜单 New File、双击侧边栏、拖入新标签页都不走这条路 - 换行必须用
\n,\r\n会被当作文本字面量显示 - 示例(YAML 前置):
"new_file_content": "---\ntitle: \"\"\ndate: \"\"\n---\n" - 不支持变量(如
${date}),要动态内容必须用插件(如FileTemplates) - 改完
new_file_content不用重启,但default_syntax必须重启才加载
最容易被忽略的是:这个设置只影响「未保存的 untitled 文件」。一旦你保存为 .py 或打开已有 main.js,Sublime 就完全忽略 default_syntax,转而按扩展名查语法映射——所以别指望它能统一控制所有文件类型。










