必须手动安装Pug语法包并绑定扩展名:打开.pug文件→右下角选Pug→再选Open all with current extension as…→确认Pug,自动写入用户配置实现一开即亮。

Pug 语法高亮在 Sublime Text 中不会自动生效,必须手动安装语法包并绑定扩展名,否则 .pug 文件始终显示为 Plain Text。
怎么让 .pug 文件一打开就自动识别为 Pug 语法
Sublime 不会默认把 .pug 当作 Pug 文件处理,哪怕你装了语法包,也得显式绑定扩展名。最稳的方式是用 Sublime 自带的「按扩展名绑定语法」功能,它直接写入用户配置,不碰路径大小写问题:
- 用 Sublime 打开任意一个
.pug文件 - 点右下角显示的
Plain Text→ 在菜单里选Pug(如果没这个选项,说明语法包没装好,跳到下一节) - 再点一次右下角语言名 → 选
Open all with current extension as…→ 确认选中Pug
这步会在 Packages/User/Preferences.sublime-settings 里生成类似这样的配置:
"extensions": ["pug"], "syntax": "Packages/Pug/Pug.sublime-syntax"
注意:syntax 值必须以 Packages/ 开头,Pug 大小写不能错,后缀必须是 .sublime-syntax(不是 .tmLanguage)。
立即学习“前端免费学习笔记(深入)”;
安装 Pug 语法包:Package Control 是唯一推荐方式
手动下载解压语法包极易出错——YAML 格式错一个缩进、scope 写成 source.jade 而不是 source.pug,都会导致高亮失效。2026 年主流维护的是 Pug 包(不是 Jade):
前端设计与 UI/UX 全方位优化专家。覆盖视觉层次、排版系统、色彩理论、响应式布局、交互体验、动画动效、无障碍访问、性能优化八大维度,帮助开发者将普通页面升级为高品质产品级界面。前端设计与 UI/UX 全方位优化专家。覆盖视觉层次、排版系统、色彩理论、响应式布局、交互体验、动画动效、无障碍访问、性能优化八大维度,帮助开发者将普通页面升级为高品质产品级界面。
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)调出命令面板 - 输入
Install Package,回车等待列表加载 - 搜
Pug,选中安装(若搜不到,可试Jade,但旧包可能用source.jadescope,后续自定义主题时容易不生效) - 安装完不用重启,直接打开
.pug文件,右下角应显示Pug
如果装完仍不亮,打开 Sublime 控制台(Ctrl+`)看有没有报错,常见原因是插件未启用或路径被杀毒软件拦截。
Vue 单文件组件里写 Pug 模板,为什么没高亮?
Vue 的 <template lang="pug"> 不会被 Sublime 原生识别——它只认文件后缀,不解析内容。想让 .vue 文件里的 Pug 片段高亮,得靠插件做语法嵌套映射:
- 确认已装
Pug语法包和Vue Syntax Highlight插件(后者支持lang="pug"解析) - 在
Preferences > Package Settings > Vue Syntax Highlight > Settings – User中添加:
"pug": {
"enabled": true,
"scope": "source.pug"
}
如果用了其他 Vue 高亮插件(如 VueJS),检查其文档是否支持 lang="pug";不支持的话,高亮只会作用于纯 .pug 文件,.vue 里那段照样是灰色。
为什么 Pug 高亮了,但 Emmet 补全或 BracketHighlighter 不工作?
Emmet 和 BracketHighlighter 默认只对 HTML 语法生效,它们不理解 Pug 缩进语法。即使你在 .pug 文件里写了 div,Emmet 不会补成 div 块结构,BracketHighlighter 也不会配对高亮 div 和对应缩进结束位置:
- Emmet 对 Pug 的支持极弱,官方不推荐在 Pug 中依赖 Emmet 补全;改用 Pug 自带的快捷写法(如
.class#id)更可靠 - BracketHighlighter 只匹配括号、HTML 标签等文本符号,对 Pug 完全无效;别指望它高亮
ul和其子级li的缩进层级 - 如果硬要类 HTML 的标签对高亮,只能切换回编译后的
.html文件再开 BracketHighlighter
真正容易被忽略的一点:Pug 的高亮、补全、格式化是三个独立能力,分别由不同插件提供,且彼此不兼容。装了 Pug 语法包 ≠ 有 Emmet 支持 ≠ 能自动格式化 —— 每一项都得单独验证是否生效。

















