先点击右下角“plain text”选typescript,再点“set as default for .ts files”,sublime会自动生成packages/user/typescript.sublime-settings并写入{"extensions": ["ts"]},手动编辑全局preferences设置无效。

如何让 .ts 文件自动用 TypeScript 语法高亮
Sublime Text 不会自动把 .ts 文件当成 TypeScript,新建或打开时大概率显示为 Plain Text。这不是插件没装好,而是它根本没默认绑定这个扩展名。
最稳妥的做法是:打开任意一个 .ts 文件 → 点击右下角显示的 Plain Text → 在弹出菜单里选 TypeScript → 再点 Set as Default for .ts Files。Sublime 会自动生成 Packages/User/TypeScript.sublime-settings,内容为:
{"extensions": ["ts"]}
- 别手动改
Packages/TypeScript/syntaxes/TypeScript.sublime-syntax里的file_extensions—— Sublime 完全不读这个字段 - 如果已装 ApplySyntax 或 AutoSetSyntax,它们可能劫持语法选择;临时禁用插件可验证是否为此原因
-
tsx、vue需要单独加进同一个extensions数组,不能靠“类型推断”自动覆盖
为什么改了 Preferences.sublime-settings 里的 extensions 没生效
很多人在全局 Preferences.sublime-settings(即 Preferences → Settings – User)里直接写:
{"extensions": ["ts"]},结果完全无效。这是因为 Sublime 只认「语法专属配置」里的 extensions 字段,比如 TypeScript.sublime-settings 或 INI.sublime-settings,而不是全局设置。
- 正确路径:先用右下角菜单设一次默认,Sublime 才会在对应语法包的用户配置里生成
extensions字段 - 之后再手动编辑那个
XXX.sublime-settings文件,追加更多扩展名,例如:{"extensions": ["ts", "tsx", "d.ts"]} - JSON 格式必须合法:末尾不能有多余逗号,字符串必须双引号,大小写敏感(
.TS≠.ts)
如何批量让 .env、.conf、.ini 共用 INI 语法
这类配置文件后缀没有被任何内置语法默认覆盖,所以打开就是 Plain Text。想统一用 INI 语法高亮,不能靠“猜”,得明确告诉 Sublime 哪些后缀归它管。
操作步骤:打开一个 .env 文件 → 右下角点 Plain Text → 选 INI → 点 Set as Default for .env Files。这时 Sublime 会创建 Packages/User/INI.sublime-settings。
- 接着打开
Preferences → Settings – Syntax Specific(注意不是全局 Settings),确认当前编辑的是INI.sublime-settings - 在里面改成:
{"extensions": ["env", "conf", "ini", "cfg"]} - 已打开的同后缀文件不会自动刷新,需关闭重开,或手动点右下角再选一次
INI - 如果
.env还是 Plain Text,优先查是否有其他包(如 ShellScript)在自己的.sublime-syntax里声明了env,它会抢在你的配置前生效
无后缀文件或混合格式(如 .vue、.svelte)怎么处理
Sublime 原生不分析文件内容,所以 deploy(无后缀)、App.vue、index.svelte 这类文件无法靠扩展名匹配到正确语法。这时候必须借助插件或更底层的规则。
推荐安装 ApplySyntax 插件,然后在 Preferences → Package Settings → ApplySyntax → Settings – User 中添加规则:
{
"rules": [
{
"file_name": "\.vue$",
"syntax": "Vue Component/Vue Component"
},
{
"file_name": "^deploy$",
"first_line_match": "^#!/bin/",
"syntax": "ShellScript/Shell-Unix-Generic"
}
]
}
- 规则按顺序匹配,第一条命中就停止;正则写错会导致整条规则静默失效
- 改完设置必须重启 Sublime 才生效,这点容易被忽略
- 语法路径要写对:
Vue Component/Vue Component是完整路径,不是随便起的名字 - 如果已有
.vue语法包但没激活,先通过 Package Control 安装Vue Syntax Highlight或Vetur
真正麻烦的从来不是“怎么配”,而是配完发现没生效——这时候大概率是路径写错、大小写不一致、JSON 格式非法,或者被某个插件悄悄覆盖了。Sublime 不报错,只沉默退回 Plain Text,排查起来最耗时间。











