唯一可靠方式是修改Preferences.sublime-settings中的default_syntax字段为精确大小写的.sublime-syntax文件路径并完全重启;它仅对无路径、无扩展名、内容为空或仅含合法new_file_content的Ctrl+N新建文件生效。

直接改 Preferences.sublime-settings 里的 default_syntax 字段,填对路径、重启生效——这是唯一可靠方式。
default_syntax 路径怎么写才对
它不接受语言名、缩写或大小写模糊写法,只认完整、大小写精确的 .sublime-syntax 文件路径:
-
"default_syntax": "Packages/Python/Python.sublime-syntax"✅(ST4 推荐) -
"default_syntax": "Packages/JavaScript/JavaScript.tmLanguage"✅(ST3 或兼容场景) -
"default_syntax": "Python"❌(无效) -
"default_syntax": "packages/python/python.sublime-syntax"❌(小写包名不匹配) -
"default_syntax": "Packages/Python/Python.tmLanguage"❌(ST4 不识别旧格式)
查路径最稳方法:打开一个已高亮正确的 .py 文件 → 按 Ctrl+Shift+P 输入 Show Scope Name → 看状态栏显示的 scope,比如 source.python,对应路径基本就是 Packages/Python/Python.sublime-syntax。
为什么改完还是 Plain Text
常见失效不是配置本身错,而是被更高优先级机制覆盖:
- 没重启 Sublime Text ——
default_syntax修改后必须完全退出再重开,否则静默不加载 - 插件劫持,尤其是
ApplySyntax或DefaultFileSyntax,它们默认会拦截untitled文件并强行设语法 - JSON 格式错误,比如多逗号、引号不闭合,整个用户设置块会被忽略,回退到默认行为
- 对应语法包被禁用:进
Preferences → Package Settings确认Python或Markdown包处于启用状态 - 路径指向的文件根本不存在(比如写了
Packages/TypeScript/TypeScript.sublime-syntax,但没装 TypeScript 插件)
它只管 Ctrl+N 创建的空白文件
default_syntax 是个“窄口径”开关,仅对以下三者同时满足的文件生效:
- 从未保存过(no path)
- 没有扩展名(no extension)
- 内容为空或仅含
new_file_content填充的内容
一旦你保存为 main.py,或打开一个已存在的 index.js,Sublime 就完全不看这个设置,而是走扩展名映射或首行匹配规则。想让 .ts 文件自动高亮,别动 default_syntax,而是打开一个 .ts 文件 → 点右下角 → 选 TypeScript → 再点一次 → 选 Set as Default for .ts Files。
new_file_content 怎么配合用
它和 default_syntax 是搭档,但限制极多:
- 只在按
Ctrl+N(或Cmd+N)时触发,菜单栏 New File、双击侧边栏、拖入新标签页都不生效 - 内容必须是单行 JSON 字符串,换行用
\n,不能用\r\n,否则\r会原样显示为字符 - 示例(Markdown 前置声明):
"new_file_content": "---\ntitle: \"\"\ndate: \"\"\n---\n" - 不支持变量(如
${date}),要动态内容得靠插件(如FileTemplates)
真正容易被忽略的是:这两个字段必须同时存在、路径和字符串都合法、且 Sublime 完全重启后才可能一起生效;漏掉任一环节,就只剩 Plain Text 和空窗口。


















