双文件扩展名:在Sublime Text 3中实现正确的语法高亮
解决Sublime Text 3中.scss.liquid文件语法关联错误的问题
我之前也碰到过一模一样的问题!Sublime Text对多扩展名文件的默认匹配逻辑确实有点坑——它会优先把.liquid当成核心扩展名,所以所有带.liquid后缀的文件都会默认用HTML Liquid打开,而且批量设置扩展名关联的话会连累其他.liquid文件。下面是我亲测有效的解决方法:
方法1:通过用户设置添加精确的文件关联
这是最安全的方式,不会修改Sublime的默认配置:
- 打开Sublime的用户设置面板:
- Windows/Linux:点击顶部菜单栏
Preferences > Settings - Mac:点击
Sublime Text > Settings > Settings
- Windows/Linux:点击顶部菜单栏
- 在右侧的用户设置(空白编辑区)里,添加以下JSON配置(如果已有其他配置,记得合并到现有结构中):
"file_associations": [ { "pattern": "*.scss.liquid", "syntax": "Packages/Liquid/SCSS (Liquid).sublime-syntax" } ] - 保存设置,重新打开你的
.scss.liquid文件,应该就会自动用SCSS Liquid语法高亮了。
小提示:找不到正确的语法路径怎么办?
如果你不确定syntax字段的正确值,可以这么操作:
- 手动打开一个
.scss.liquid文件,手动切换到正确的语法(比如通过右下角的语法选择器找到SCSS (Liquid)) - 再次点击右下角的语法名称,选择
Copy Path,把复制的内容直接替换到上面的syntax字段里就行。
方法2:确保你有支持SCSS+Liquid的语法插件
如果上面的设置没生效,大概率是因为你的Sublime没有安装支持SCSS Liquid的语法包。推荐安装Liquid Syntax Highlighting插件:
- 打开Package Control(快捷键
Ctrl+Shift+P/Cmd+Shift+P,输入Install Package) - 搜索
Liquid Syntax Highlighting并安装,然后再用方法1的配置即可。
为什么之前的方法会失效?
你提到的「使用当前扩展名打开所有文件」选项,它是针对.liquid这个后缀设置全局关联的,所以所有.js.liquid、.html.liquid都会跟着变成你选的语法,这显然不是我们想要的。而用*.scss.liquid这种精确通配符,只会匹配后缀是.scss.liquid的文件,完美避开其他类型的.liquid文件。
内容的提问来源于stack exchange,提问作者Abram
相关产品推荐
相关产品推荐

