直接编辑 packages/user/preferences.sublime-settings 文件可永久设置默认语法和扩展名映射,其中 default_syntax 控制新文件语法,extensions 控制扩展名关联,修改后无需重启即生效。

直接改 User 配置文件比点菜单快得多,且不会被升级覆盖。
怎么找到并编辑 Preferences.sublime-settings
别去 Settings 菜单里翻半天——那个界面只改当前视图的临时设置。真正生效的默认语法配置在 User 目录下:
- 菜单栏选 Sublime Text → Preferences → Browse Packages…(macOS)或 Preferences → Browse Packages…(Windows/Linux)
- 进入打开的文件夹后,进
Packages/User子目录 - 新建或编辑
Preferences.sublime-settings文件(注意不是Default下那个)
这个文件是 JSON 格式,所有全局默认行为都从这里读取。
用 default_syntax 指定新文件默认语法
新建文件(比如按 Cmd+N 或 Ctrl+N)时,Sublime 默认用 Plain Text,想改成 Python 或 Markdown 就靠它:
{
"default_syntax": "Packages/Python/Python.sublime-syntax"
}
关键点:
-
default_syntax值必须是完整路径,格式为Packages/语言名/语言名.sublime-syntax - 常见路径可查:
Packages/Markdown/Markdown.sublime-syntax、Packages/JavaScript/JavaScript.sublime-syntax - 不确定路径?新建一个对应类型文件 → View → Syntax → Open all with current extension as… → 看右下角状态栏显示的路径
- 值写错会导致启动报错或默认回退到 Plain Text,但不会崩溃
按扩展名自动关联语法要用 extensions 配置
default_syntax 只管空文件;真实项目里更常用的是扩展名映射。在同一个 Preferences.sublime-settings 里加:
{
"extensions":
{
"js": "Packages/JavaScript/JavaScript.sublime-syntax",
"ts": "Packages/TypeScript/TypeScript.sublime-syntax",
"env": "Packages/ShellScript/Shell-Unix-Generic.sublime-syntax"
}
}
注意:
- 键是不带点的扩展名(
js,不是.js),值仍是完整路径 - 如果扩展名已由插件注册(如
Vue插件注册了vue),优先走插件定义;此处配置仅对未注册的扩展生效 - 修改后无需重启,新打开的同扩展文件立即生效,已打开的需手动 右键 → Set Syntax
为什么改了没反应?重点检查这三处
常见静默失败原因不是配置错,而是被更高优先级规则覆盖:
- 当前文件已手动执行过 View → Syntax → …,会覆盖全局设置(状态栏显示“Set”字样)
- 项目根目录有
.sublime-project,里面settings或syntax_map项会优先生效 - 插件自带语法定义路径变更(比如升级后
Packages/Python/Python.sublime-syntax改成Packages/Python/Python.sublime-syntax→ 实际没变,但拼写大小写错了就失效)
最稳妥的验证方式:关掉所有文件 → 新建一个 → 看右下角状态栏显示的语法名是否符合预期。











