sublime text 默认不支持 html 注释()一键折叠,因其语法定义未将注释标记为可折叠单元;解决方法包括手动选中折叠或修改 html.sublime-syntax 补全 foldingstartmarker 和 foldingstopmarker。

Sublime Text 默认不支持一键折叠 HTML 注释(<!-- -->),哪怕你按 Ctrl+K, Ctrl+0 或 Ctrl+Shift+[,它也不会把注释块收起来——不是快捷键坏了,是语法定义根本没把它标记为可折叠单元。
为什么 <!-- --> 注释不折叠?
HTML 语法包(原生或多数插件)默认只对标签对(<div>...</div>)、<script></script>、<style></style> 等结构声明了 foldingStartMarker 和 foldingStopMarker,但几乎都不包含 <!-- 和 -->。即使你看到注释被高亮,Sublime 也认为它是“纯文本内容”,不参与折叠计算。
常见现象包括:
- 右下角显示
HTML,但选中一段<!-- ... -->按Ctrl+Shift+[没反应 -
Ctrl+K, Ctrl+0折叠后,所有注释仍完整展开 - 安装了 Vue Syntax Highlight 或 Babel 插件后,
.vue文件里的<!--依然不折——因为这些插件通常只增强高亮,不补全折叠规则
最稳:手动选中 + fold_selection
不改配置、不装插件、100% 可控,适合临时清理大量注释。它不依赖语法识别,只认你选中的行:
- 按
Ctrl+F打开搜索,启用Regex,输入:^[\s]*<!--[\s\S]*?-->[\s]*$(匹配整行注释,含空格和换行) - 勾选
Whole Word和Wrap Around,点Find All→ 全部高亮 - 按
Ctrl+Shift+L将每个匹配转为独立光标,再用↑/↓微调,确保只覆盖注释行(避开空行或紧邻的标签) - 最后按
Ctrl+Shift+[——注意:此时触发的是fold_selection命令,不是语法折叠;侧边栏会出现独立小箭头,点击即可展开
⚠️ 注意:Ctrl+K, Ctrl+J(unfold_all)不会影响这种手动折叠块,必须点击箭头或运行 unfold_selection。
长期方案:补全 HTML 语法的折叠规则
想让 <!-- --> 像 <div> 一样自动折叠,得修改语法定义。推荐在 <code>Packages/User/ 下新建 HTML.sublime-syntax(不要覆盖原生包):
fold: true foldingStartMarker: (?i)^\s*<!-- foldingStopMarker: (?i)-->\s*$
关键点:
- 必须放在
Packages/User/目录(通过Preferences → Browse Packages…进入),否则重启不加载 - 正则要加
(?i)忽略大小写,否则<!-- COMMENT -->和<!--comment-->不统一 - 不能漏掉
\s*$,否则多行注释末尾带空格会断层 - 生效后,
Ctrl+Shift+[在注释起始行能折,Ctrl+K, Ctrl+0也会把它们纳入折叠范围
⚠️ 风险:自定义语法若正则未配 foldingStopMarker,可能出现“能折不能展”或展开后光标跳到文件开头。
别踩坑:这些操作对 HTML 注释完全无效
很多教程推荐的快捷键,在注释场景下纯属白忙:
-
Ctrl+K, Ctrl+0:只作用于语法定义中标记的折叠点,











