必须配置default_syntax字段,路径精确到.sublime-syntax文件且大小写敏感,仅对Ctrl+N新建的无路径无内容文件生效,修改后需重启Sublime Text;new_file_content仅配合Ctrl+N插入模板内容,不支持变量。

新建文件默认是 Plain Text,想一创建就有语法高亮,必须配 default_syntax,其他字段(如 default_extension)对新建无效。
default_syntax 是唯一可靠方式
它不看文件名、不看内容,只认你填的路径字符串。路径必须精确到 .sublime-syntax 文件,大小写敏感,且只能写在用户设置(Preferences → Settings 右侧)的 JSON 里:
-
"default_syntax": "Packages/Python/Python.sublime-syntax"✅ -
"default_syntax": "Packages/python/Python.sublime-syntax"❌(大小写错) -
"default_syntax": "Packages/Markdown/Markdown.tmLanguage"⚠️(旧格式仍可用,但新项目建议用.sublime-syntax)
改完必须重启 Sublime Text,部分版本不重启不会加载新绑定。
new_file_content 只在 Ctrl+N 时生效
它和 default_syntax 配合才能实现“新建即模板+高亮”,但有严格限制:
- 仅响应
Ctrl+N(Windows/Linux)或Cmd+N(macOS),菜单 New File、双击侧边栏空白、拖入新标签页都不触发 - 换行必须用
\n,不能用\r\n,否则\r会原样显示为字符 - 不支持变量(如
${date}),动态内容得靠插件(如FileTemplates)
示例(Markdown 前置声明):"new_file_content": "---\ntitle: \"\"\ndate: \"\"\n---\n"
为什么右下角还是 Plain Text?
常见原因不是插件没装,而是语法没真正关联上:
- 打开一个真实文件(如
nginx.conf),右下角点击 Plain Text → 选中对应语法(如 Nginx),再点Open all with current extension as…,才能批量绑定 - 若用的是自定义语法(如
MyLang.sublime-syntax),确保file_extensions字段已包含目标后缀(如- myl) - 检查
Packages/User/下的语法文件是否保存成功,路径是否在Packages/目录内(不在Cache/或临时目录)
最易忽略的点:default_syntax 路径写错、没重启、以及误以为 new_file_content 对所有新建方式都起作用——其实它只管 Ctrl+N 这一条路。


















