sublime text 原生不支持一键折叠 html 注释,因 fold_comments 仅对明确定义 comment.line/block scope 的语言生效;html 注释虽高亮但未被识别为可折叠结构,需手动正则选中后 fold_selection 或修改语法定义。

Sublime Text 原生不支持一键折叠注释块,fold_comments 设置对 HTML 的 <!-- --> 无效,Python/JS 的 #、//、/* */ 才能被识别;真要收起所有注释,得靠手动选中 + fold_selection,或改语法定义。
为什么 fold_comments: true 对 HTML 注释没用?
这个设置只作用于语言插件明确定义了 scope: comment.line 或 comment.block 的场景。HTML 语法包(包括原生和多数插件)把 <!-- --> 归为 comment.block.html,但默认没启用折叠规则——它高亮了,却不参与折叠计算。你按 Ctrl+K, Ctrl+0 或 Ctrl+Shift+[,注释照样展开,不是快捷键坏了,是 Sublime 根本没把它当“可折叠结构”。
-
fold_comments: true在 Python、JS、C/C++ 文件里有效,因为这些语法包主动声明了注释作用域和折叠边界 - Vue 单文件组件里的
<!-- -->同样不折,Babel 或 Vue Syntax Highlight 插件只增强高亮,不补foldingStartMarker - 即使你装了
HTML-CSS-Class-Completion这类插件,也不解决折叠问题
最稳:用正则选中所有 <!-- --> 并手动折叠
不改配置、不装插件、100% 可控,适合临时清理源码里的大量说明性注释。关键是让 Sublime 把注释当“选区”处理,而不是等语法识别。
- 按
Ctrl+F打开搜索,启用 Regex 模式,输入:^[\s]*<!--[\s\S]*?-->[\s]*$ - 勾选
Whole Word和Wrap Around,点Find All→ 全部注释行高亮 - 按
Ctrl+Shift+L将每个匹配转为独立光标,再用↑/↓微调,确保光标只落在注释行(避开空行或紧邻的<div>)<li>最后按 <code>Ctrl+Shift+[—— 此时触发的是fold_selection命令,侧边栏会出现独立小箭头,点击即可展开 - 路径必须是
Packages/User/HTML.sublime-syntax(不能放错位置) - 正则要开启
dotall模式,否则[\s\S]*?不跨行匹配 - 必须限定
scope: comment.block.html,否则会误匹配 HTML 字符实体或 JS 字符串里的
⚠️ 注意:Ctrl+K, Ctrl+J(unfold_all)不会影响这种手动折叠块,必须点箭头或运行 unfold_selection。
想永久支持?得改 HTML.sublime-syntax
这是通用解法,但门槛高、易出错。核心是在语法定义里加 folding 规则,告诉 Sublime:“从 <!-- 开始,到 --> 结束,这段算一个可折叠单元”。











