需手动绑定扩展名:打开.log文件→点右下角“Plain Text”→选“Open all with current extension as…”→选“INI”,Sublime将自动在Preferences.sublime-settings中写入"extensions": ["log"]和"syntax": "Packages/INI/INI.sublime-syntax"。

怎么让 .log 文件一打开就用 INI 高亮
Sublime 不会自动把 .log 当成配置文件处理,默认就是 Plain Text。想让它每次打开都用 INI 语法,不能靠猜路径或改文件名,得走扩展名绑定流程。
- 打开一个
test.log文件(内容随意) - 右下角点当前语法(显示
Plain Text)→ 选Open all with current extension as…→ 再选INI - 确认后,Sublime 会自动往
Packages/User/Preferences.sublime-settings里写入类似这样的映射:
"extensions": ["log"], "syntax": "Packages/INI/INI.sublime-syntax"
注意:syntax 值必须是完整路径,大小写敏感;.sublime-syntax 和 .tmLanguage 不能混用(ST4 只认前者);如果没装 INI 插件,这行配置会静默失效。
为什么改了 Preferences.sublime-settings 还是没生效
常见原因是路径拼错、JSON 格式非法,或插件冲突。尤其容易忽略的是:Sublime 的 extensions 映射只接受数组形式的扩展名列表,不支持对象写法。
- ❌ 错误写法:
"extensions": {"log": "INI"}—— Sublime 完全忽略 - ✅ 正确写法:
"extensions": ["log"],再配单独一行"syntax": "Packages/INI/INI.sublime-syntax" - 多扩展名共用同一语法?写成
["log", "cfg", "conf"]即可 - 改完保存后,必须关闭并重新打开该类文件(不是重启 Sublime),绑定才生效
怎么查某个语法的真实路径,比如 Vue 或 TypeScript
别手敲 Packages/...,也别翻文件夹——路径错一个字母、多一个空格,高亮就消失,且无任何提示。
- 先打开一个已正确高亮的
.vue或.ts文件 -
Ctrl+Shift+P→ 输入PackageResourceViewer: Open Resource - 选对应包(如
Vue Syntax Highlight或TypeScript)→ 找到.sublime-syntax文件 → 复制完整路径 - 路径中不能有中文、空格、反斜杠
\;macOS/Linux 下.vue和.Vue是两个不同后缀
多个语法都声明了 .js,谁说了算
Sublime 加载语法包有顺序,后加载的覆盖先加载的。比如你装了 Babel 和官方 JavaScript,两者都声明了 js,默认会用 Babel 的高亮——这不是 bug,是设计行为。
- 想强制用官方 JavaScript?删掉或禁用
Babel插件 - 不想卸插件?用
View → Syntax → Open all with current extension as…手动绑定一次,它生成的用户级映射优先级高于插件自带声明 - 更彻底的办法:复制
Packages/JavaScript/JavaScript.sublime-syntax到Packages/User/下同名文件,Sublime 会优先加载 User 目录下的版本
最常被忽略的一点:绑定动作只写进 Preferences.sublime-settings,但如果你同时在项目级 .sublime-project 或某个语法专属设置(如 JavaScript.sublime-settings)里写了 syntax,它们会覆盖用户设置——查不到原因时,先关掉项目设置试试。


















