sublime text 原生不支持 markdown 标题折叠,因 markdown.tmlanguage 未定义 foldingstartmarker 或 ^#{1,6} 模式;需安装 markdownediting 插件并配置 "mde.folding.target_level": 2 才能启用三级及以上标题折叠。

Sublime Text 原生不支持 Markdown 标题折叠,必须靠插件补全,否则 # 到 ###### 全部不可折。
为什么 Ctrl+Shift+[ 对 Markdown 标题完全没反应
Sublime 自带的 Markdown 语法包(Markdown.tmLanguage)压根没定义任何折叠规则——既没有 foldingStartMarker,也不识别 ^#{1,6} 这类行首模式。右下角哪怕显示 Markdown,光标停在 ## 章节名 行上,Ctrl+Shift+[ 也静默失败。
- 检查方式:按
Ctrl+Shift+P→ 输入Developer: Show Scope Name,若输出只有text.html.markdown,没有meta.header或markup.heading类作用域,说明折叠标记未加载 - 常见误判:文件被识别为
Plain Text或MultiMarkdown(部分旧插件包不兼容新 Sublime 折叠 API) - 别试
fold_by_level或Ctrl+K, Ctrl+1,这些命令只对语法定义中明确声明可折叠的结构生效,标题不在其中
用 MarkdownEditing 插件启用标题折叠
这是目前最稳定、维护活跃、且专为 Markdown 折叠设计的方案。它通过 mde.folding.target_level 控制折叠粒度,而非依赖括号或缩进。
- 安装后默认不开启标题折叠,需手动配置:打开
Preferences → Package Settings → MarkdownEditing → Settings - 在用户设置中加入:
{ "mde.folding.target_level": 2 }数值2表示折叠所有###及更深层级(即三级及以下标题内容收起),1则只折##及以下 - 生效无需重启,但已有打开的 Markdown 文件需重新加载(关闭再打开,或右键 →
Revert) - 注意:该设置对文档内嵌 HTML 块、代码块、引用块无效,仅作用于标准 ATX 标题(
#开头)
折叠后展开/收起操作与限制
启用后,标题行左侧 gutter 出现三角图标,点击即可交互式折叠。但行为和编程语言不同:
-
Ctrl+Shift+[仍只对当前光标所在标题行生效,不能跨标题批量操作 -
Ctrl+K, Ctrl+0(fold_all)会同时折叠标题 + 代码块 + 引用块(如果插件也启用了那些规则),不是纯标题控制 - 大文档(>5000 行)开启折叠可能轻微卡顿,尤其含大量嵌套列表时;可临时设
"mde.folding.target_level": 0关闭折叠节省资源 - 自动链接折叠(
mde.folding.auto_link_folding)和标题折叠互不干扰,可共存
替代方案:手动选区折叠最可控
当插件失效、或只想临时收起某几级标题(比如只折所有 #### 小节),fold_selection 是唯一不依赖语法解析的方式。
- 按
Ctrl+F搜索^####(正则勾选,注意空格),点Find All - 再按
Ctrl+Shift+L将所有匹配转为多光标,用↓向下扩展选区至下一标题前一行 - 最后按
Ctrl+Shift+Alt+[(Windows/Linux)或Cmd+Ctrl+Option+[(macOS) - 该折叠独立于插件逻辑,即使 MarkdownEditing 被禁用也能用,但关闭文件即丢失
真正麻烦的不是怎么折,而是折叠后光标跳转和大纲同步——Sublime 没有原生大纲视图,插件生成的折叠状态不会反映在侧边栏,想快速定位某级标题,还是得靠 Ctrl+R 符号跳转或正则搜索。











