default_syntax仅对未保存的untitled文件生效,必须填准确大小写敏感的完整路径(如packages/python/python.sublime-syntax),且需重启sublime才能加载;若右下角手动设过语法、装了applysyntax插件或文件含shebang,则会被覆盖。

新建文件默认是 Plain Text,必须设 default_syntax 才能自动高亮;它只对未保存的 untitled 文件生效,且路径写错、不重启就完全没反应。
default_syntax 必须填对路径,否则等于没设
这个字段不认语法名(比如“Python”),只认真实文件路径。填错一点——大小写、空格、后缀、斜杠方向——Sublime 就静默忽略。
-
default_syntax值必须是完整路径,例如:"Packages/Python/Python.sublime-syntax"(ST4)或"Packages/Python/Python.tmLanguage"(ST3) - 路径区分大小写:
Packages/Python/≠Packages/python/;.sublime-syntax不能写成.sublime_syntax - 别猜路径:打开一个已正确高亮的 .py 文件 → 按
Ctrl+Shift+P→ 输入Set Syntax: Show All→ 看状态栏显示的路径,直接复制 - 改完配置后必须重启 Sublime Text,部分版本不重启不会加载新语法
new_file_content 只在 Ctrl+N 时生效,且换行只能用 \n
想新建即带模板(比如 Markdown 前置声明),得配 new_file_content,但它有严格触发条件和格式限制。
- 仅响应
Ctrl+N(Windows/Linux)或Cmd+N(macOS),菜单“File → New File”、双击侧边栏空白、拖入新标签页都不触发 - 内容中换行必须用
\n,\r\n会被当作文本字面量显示为\r - 示例(YAML 前置):
"new_file_content": "---\ntitle: \"\"\ndate: \"\"\n---\n" - 不支持变量(如
${date}),要动态内容需插件(如FileTemplates)
为什么设了 default_syntax 还是 Plain Text?先查这三处
常见失效不是配置写错,而是被更高优先级逻辑覆盖或识别被锁死。
- 右下角手动点过一次语法(比如选过 HTML)?Sublime 会把这次选择“锁死”在当前视图,
default_syntax不再介入 —— 解决方法:Ctrl+Shift+P→Set Syntax: Detect Syntax - 装了
ApplySyntax或AutoSetSyntax?它们会接管语法检测,无视default_syntax—— 临时禁用插件验证是否为此原因 - 文件开头有 shebang(如
#!/usr/bin/env node)?Sublime 优先按内容匹配 ShellScript,覆盖你的设置 -
default_extension字段对新建无效,写了也白写
最易被忽略的是:这个设置只影响「未保存的 untitled 文件」。一旦你保存为 .py 或打开已有 test.js,Sublime 就完全切换到扩展名匹配逻辑,default_syntax 彻底退出舞台。











