default_syntax是唯一控制新建空白文件语法的配置项,必须在Preferences → Settings – User中设置完整路径(如" Packages/Python/Python.sublime-syntax "),大小写敏感、后缀正确且需重启生效。

default_syntax 是唯一生效的配置项
Sublime Text 新建空白文件(Ctrl+N)默认永远是 Plain Text,没有图形开关,也没有“设为默认语言”的菜单项。真正起作用的只有用户设置里的 default_syntax 字段,它只对「未保存、无路径、无内容」的 untitled 文件生效。
这个字段必须填完整路径,例如:"default_syntax": "Packages/Python/Python.sublime-syntax"。路径大小写敏感,后缀必须是 .sublime-syntax(Sublime 4+ 不再识别 .tmLanguage)。填错任何一处——比如写成 packages/python/python.sublime-syntax 或漏掉 Packages/ 前缀——都会静默失效。
- 查路径最稳的方式:先打开一个正确高亮的
.py文件 →Ctrl+Shift+P输入Developer: Show Scope Name→ 看状态栏显示source.python→ 对应路径基本就是Packages/Python/Python.sublime-syntax - 改完必须重启 Sublime Text;部分版本不重启不会加载新语法绑定
- 插件如
ApplySyntax可能覆盖该设置,若发现新建文件语法不稳定,先禁用相关插件测试
new_file_content 只在 Ctrl+N 时插入模板
new_file_content 和 default_syntax 配合,才能实现“新建即带语法 + 内容”。但它有严格触发条件:仅响应 Ctrl+N(Windows/Linux)或 Cmd+N(macOS),不响应菜单栏 File → New File、双击侧边栏空白、拖入新标签页等其他新建方式。
内容必须用 \n 表示换行,\r\n 会被当作文本字面量显示出来。例如 Markdown 前置声明应写成:
"new_file_content": "---\ntitle: \"\"\ndate: \"\"\n---\n"
- 不支持变量占位符(如
${date}),要动态内容得靠插件(如FileTemplates) - 如果内容里有缩进,XML 的换行和空格会原样插入,导致代码前多出空格;解决方法是把整个
<![CDATA[...]]>写在同一行,或手动删掉 CDATA 开始和结束标记前后的换行 - 该字段不影响已保存文件或已有扩展名的文件
default_encoding_on_save 才决定实际落盘编码
很多人误以为 default_encoding 控制新建文件编码,其实它早已被弃用。真正起作用的是 default_encoding_on_save —— 它只在你按下 Ctrl+S 时生效,决定以什么编码写入磁盘。
常见写法:"default_encoding_on_save": "UTF-8" 或带 BOM:"default_encoding_on_save": "UTF-8 with BOM"。其他写法(如 "UTF8-BOM")会静默失败。
- 新建空文件右下角显示 “UTF-8”,只是当前解码标识,不代表文件含 UTF-8 字节(空文件无内容,自然无编码字节)
- 如果项目需兼容 GBK 环境(如嵌入式设备),开这个选项前务必确认协作方接受 UTF-8 落盘
-
default_extension对新建文件完全无效,不要浪费时间配置它
语法路径写错是最常见的失效原因
几乎所有“配了没反应”的问题,根源都在 default_syntax 的路径字符串上。不是拼写错误,就是格式过时。
Sublime 4 中,官方语言包统一使用 .sublime-syntax 格式,旧版 .tmLanguage 路径(如 Packages/Text/Plain text.tmLanguage)虽仍可工作,但不推荐;第三方包若未更新,也可能导致路径失效。
- 路径必须从
Packages/开始,不能用相对路径或别名 - 文件夹名大小写必须完全一致:比如
Packages/Markdown/Markdown.sublime-syntax≠Packages/markdown/markdown.sublime-syntax - 可通过
Preferences → Browse Packages…进入目录,手动确认对应.sublime-syntax文件是否存在


















