Ctrl+K, Ctrl+T(Windows/Linux)或Cmd+K, Cmd+T(macOS)可折叠HTML/XML标签属性,使<div class="foo" id="bar">变为<div ...>,需光标位于开标签行且右下角显示HTML/XML语法。

折叠 HTML/XML 标签属性用 Ctrl+K, Ctrl+T
想只收起 class、id、data- 等一堆属性,让标签行变干净(比如把 <div class="foo" id="bar" data-test="1" style="..."> 折成 <div ...>),就用这个命令。它不碰标签内容、不折子元素,专治属性爆炸。
这个操作只对 HTML、XML、Vue/JSX 中的开标签生效,且依赖语法识别——右下角必须显示 HTML 或 XML,不是 Plain Text 或 JavaScript。如果按了没反应,先点右下角手动切语言。
-
Ctrl+K, Ctrl+T(Windows/Linux)或Cmd+K, Cmd+T(macOS):分两步按,先松开Ctrl+K再按Ctrl+T - 光标必须落在标签开始处(
<div那一行),不在属性值里、不在闭合标签中 - 一次只能折一个标签;想批量处理,得配合多行选中 +
Ctrl+Shift+[(见下一条)
批量折叠多个 HTML 标签(含属性)用 Ctrl+Shift+[ 配合选中
原生 Ctrl+K, Ctrl+T 不支持多标签,但你可以用“选中 + 折叠”兜底:只要标签结构清晰(有明确起始和结束),Sublime 就能把它当一个块处理。
适用场景:Vue 单文件组件里一堆 <template> 下的嵌套标签、HTML 模板片段、或者 XML 配置节。它不管语义,只认缩进+配对标签,所以比语法驱动的 Ctrl+K, Ctrl+T 更鲁棒。
- 鼠标拖选或
Ctrl+L连续选中多行标签(确保包含完整开/闭标签) - 按
Ctrl+Shift+[(Windows/Linux)或Cmd+Shift+[(macOS) - 折叠后左侧 gutter 出现独立三角,点击可单独展开,不影响其他结构
- 注意:如果选区跨了非标签内容(比如中间插了一段 JS 注释),可能只折到第一个合法块就停
为什么 fold_all(Ctrl+K, Ctrl+0)不适用于“只看结构”
很多人试过 Ctrl+K, Ctrl+0,结果整个 <script> 块、<style> 块、甚至文档字符串全被收走了——这不是 bug,是设计使然:fold_all 会遍历所有语法定义的可折叠单元,包括函数、类、import、注释块等,它目标是“最小可读单元”,不是“仅结构视图”。
如果你只想快速扫一遍 DOM 层级或组件嵌套关系,fold_all 反而制造干扰。这时候必须切换策略:要么用 Ctrl+K, Ctrl+T 精准压平属性,要么用选中 + Ctrl+Shift+[ 手动框定范围。
- 别指望
fold_by_level控制 HTML 属性折叠——它只响应meta.tag或meta.attribute的作用域层级,而多数 HTML 语法包没给属性单独设fold_level - 侧边栏折叠按钮默认不显示属性折叠图标,即使成功执行了
Ctrl+K, Ctrl+T,你也看不到小箭头,只能靠标签末尾的...提示
容易忽略的兼容性细节
HTML 属性折叠在不同语法包下行为不一致,尤其在 Vue/JSX 文件中:
- 默认
Vue Component语法可能不启用Ctrl+K, Ctrl+T,需确认是否加载了Vue Syntax Highlight插件并启用了 folding 规则 - JSX 中的
<div {...props}>展开式写法会被当作文本,Ctrl+K, Ctrl+T无效,只能走选中折叠 - 自定义标签(如
<my-comp>)若未被语法包识别为meta.tag,也会跳过折叠逻辑 - 折叠状态不会保存,关掉文件再打开,所有属性恢复展开——没有配置项能改变这点

















