Sublime Text 默认不支持 HTML 标签块(如 <div>)折叠,仅对 <script> <style> 等明确起止标签启用;需确保右下角为 HTML 语法、光标在开始标签行,并确认 scope 含 meta.tag.block,否则折叠无效。

Sublime Text 本身不提供“标签配对”功能(如自动高亮匹配的 <div> 和 </div>),它只做括号/标签边界高亮,而代码折叠必须依赖语法识别和作用域定义——没识别语言,Ctrl+Shift+[ 就是摆设。
为什么 Ctrl+Shift+[ 折不了 HTML 标签?
Sublime 的 HTML 折叠不是靠“标签是否成对”,而是靠 syntax definition 文件里定义的 foldingStartMarker 和 foldingStopMarker 正则。原生 HTML 包只对 <script>、<style>、<template> 这类有明确起止标记的标签启用折叠;普通 <div> 块默认不支持,哪怕它有闭合标签。
- 检查右下角状态栏:必须显示
HTML,不是Plain Text或XML - 光标必须停在开始标签行(如
<div class="main">),不能停在属性中间、注释里或空行 - 用
Ctrl+Shift+P→Developer: Show Scope Name,确认光标所在行 scope 含meta.tag.structure或meta.tag.block,否则折叠规则压根没加载 - 若 scope 只有
text.html.basic,说明当前 HTML 语法包未定义折叠逻辑,得换插件或手动补规则
Ctrl+K, Ctrl+T 折 HTML 属性到底折什么?
这个快捷键专为 HTML/XML 设计,只折叠标签内的属性列表,不碰标签名和内容。比如 <input type="text" id="name" value="test" disabled> 折完只剩 <input ...>,但 <div>content</div> 不会变。
- 必须光标在标签行内(任意位置都行),且文件语法是
HTML或XML - 不支持自定义标签(如
<my-comp>)或 JSX 中的<Component prop={x} /> - 如果按了没反应,先确认
"fold_buttons": true在用户设置中已启用;某些主题会隐藏 gutter 图标,但快捷键仍有效 - 折叠后无法用
Ctrl+Shift+]展开——得点 gutter 箭头,或把光标移回该行再按Ctrl+Shift+]
想折任意标签块?别等原生支持,用 fold_selection
当 <section>...</section> 死活不折,又不想装插件,最稳的办法是绕过语法解析,直接选中整段再折:
- 鼠标拖选从
<section>开始到</section>结束的所有行(含空行) - 按
Ctrl+Shift+Alt+[(Windows/Linux)或Cmd+Ctrl+Option+[(macOS) - 侧边栏会出现独立小箭头,点击即可展开/收起;关闭文件后自动清除,不影响语法逻辑
- 注意:选区必须连续,不能跨折叠区域;若选中了已折叠的块,
fold_selection会把它当普通文本一并收起
标签配对高亮 ≠ 折叠,但能帮你定位折叠起点
Sublime 内置的括号高亮(BracketHighlighter 插件更准)只是视觉辅助,它告诉你 <div> 对应哪个 </div>,但不会让它们变成可折叠单元。真正卡住人的,往往是误以为“能高亮就能折”——其实两者触发机制完全不同:一个靠 token 边界扫描,一个靠 syntax definition 中的 fold scope 定义。
如果你发现 <div> 能被高亮配对,但 Ctrl+Shift+[ 没反应,90% 是因为语法定义里根本没给 div 块加 meta.tag.block scope,或者你正编辑的是 .vue 单文件组件里未激活 HTML 模式的一段。


















