Sublime Text 新建文件需同时配置 default_syntax、new_file_content 和 default_encoding_on_save 三者并重启才生效:default_syntax 精确指定 .sublime-syntax 路径实现语法高亮,new_file_content 用 \n 换行定义 Ctrl+N 模板内容,default_encoding_on_save 设为 "UTF-8" 强制保存编码。

Sublime Text 新建文件默认是 Plain Text,想一开就高亮、带模板、用 UTF-8 保存,不能只改一个配置,得配齐 default_syntax、new_file_content 和 default_encoding_on_save 三者,并且必须重启才生效。
default_syntax 必须填对路径才能让新建文件立刻高亮
这个配置只影响未保存、无扩展名的 untitled 文件(比如按 Ctrl+N 弹出的空白页),一旦你保存为 .py 或打开已有文件,就完全由文件后缀决定语法,跟它无关。
- 路径必须精确到
.sublime-syntax文件,大小写敏感,例如:"default_syntax": "Packages/Python/Python.sublime-syntax" - 别手敲——先打开一个正确高亮的
.py文件,按Ctrl+Shift+P输入Show Scope Name,看状态栏显示的source.python,基本对应Packages/Python/Python.sublime-syntax - ST4 推荐用
.sublime-syntax,旧版.tmLanguage虽仍可用,但新语法更稳定 - 改完不重启 = 白配;如果无效,90% 是路径拼错,或对应语言包被禁用了(检查
Preferences → Package Settings)
new_file_content 只在 Ctrl+N 时生效,换行必须用 \n
它和 default_syntax 配合,才能实现“新建即模板”,但触发条件极窄:仅限 Ctrl+N(Windows/Linux)或 Cmd+N(macOS),双击侧边栏、菜单栏 New File、拖入新标签页都不走这条路。
- 内容里换行必须写
\n,Windows 用户别用\r\n,否则会把\r当成字面字符显示出来 - 示例(Markdown 前置声明):
"new_file_content": "---\ntitle: \"\"\ndate: \"\"\n---\n" - 不支持变量占位符(如
${date}),要动态内容必须装插件(如FileTemplates) -
default_extension对新建无效,别白费劲加它
default_encoding_on_save 才真正控制落盘编码
很多人误以为 default_encoding 控制新建文件编码,其实它早已弃用。真正起作用的是保存行为:设了 default_encoding_on_save,每次 Ctrl+S 都强制以该编码写入磁盘,不管当前文件原来是什么编码。
- 常用值:
"UTF-8"(推荐)、"UTF-8 with BOM"(注意必须带空格和with,写成"UTF8-BOM"会静默失效) - 新建空文件右下角显示 “UTF-8”,只是编辑器当前解码标识,不代表文件已含 UTF-8 字节——空文件没内容,自然没编码字节
- 如果项目要兼容老系统(如嵌入式设备只读 GBK),开这个选项前务必确认协作方接受 UTF-8 落盘
最容易被忽略的一点:这三者组合只管“新建空白页”,对已有文件、拖进来的文件、命令面板创建的文件全都不生效;如果你常通过侧边栏双击新建 .md 或 .ts,那得另外设置“按扩展名绑定语法”——点右下角语法名 → Set as Default for .md Files 才行。


















