Sublime Text 原生不支持一键折叠注释块,这事儿确实有点让人头疼。fold_comments 这个设置,对 Python、JS 里的 #、//、/* */ 还挺管用,一到 HTML 的 就彻底失灵了。所以,想要快速收起所有注释,要么手动选中再折叠,要么就得动动语法定义的配置文件。

为什么 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]*$ - 勾选
Whole Word和Wrap Around,点Find All→ 全部注释行高亮 - 按
Ctrl+Shift+L将每个匹配转为独立光标,再用↑/↓微调,确保光标只落在注释行(避开空行或紧邻的)- 最后按
Ctrl+Shift+[—— 此时触发的是fold_selection命令,侧边栏会出现独立小箭头,点击即可展开需要注意的是,
Ctrl+K, Ctrl+J(unfold_all)不会影响这种手动折叠块,必须点箭头或运行unfold_selection。想永久支持?得改
HTML.sublime-syntax这是一个通用解法,但门槛高、易出错。核心是在语法定义里加
folding规则,告诉 Sublime:“从结束,这段算一个可折叠单元”。- 路径必须是
Packages/User/HTML.sublime-syntax(不能放错位置) - 正则要开启
dotall模式,否则[sS]*?不跨行匹配 - 必须限定
scope: comment.block.html,否则会误匹配 HTML 字符实体或 JS 字符串里的
- 最后按