sublime text代码折叠依赖语法定义,需确保文件被正确识别为对应语言(如python、json),否则无法折叠;快捷键ctrl+shift+[折叠、ctrl+k ctrl+0折叠全部;json/html/markdown默认折叠有限,特殊需求需插件或修改.sublime-syntax文件。

Sublime Text 默认支持代码折叠,但需满足语法高亮前提
代码折叠不是开关式功能,它依赖当前文件的语法定义是否包含 foldingStartMarker 和 foldingStopMarker。如果你打开一个 .py 文件却无法折叠函数,大概率是 Sublime 没识别成 Python 语法——右下角状态栏显示的是 “Plain Text” 而非 “Python”。
- 手动切换语法:点击右下角语言名 → 选择对应语言(如
Python、JavaScript、JSON) - 保存为对应后缀:.js 文件通常自动触发
JavaScript语法,但 .txt 或无后缀文件不会 - 部分自定义语法包(如某些 Vue 插件)可能未声明折叠规则,此时即使高亮正常,
Ctrl+Shift+[也无效
常用折叠快捷键与鼠标操作
Sublime 的折叠不依赖插件,默认即生效,但快捷键容易被忽略或误按:
-
Ctrl+Shift+[:折叠光标所在层级(如函数体、if 块、{ } 包裹区域) -
Ctrl+Shift+]:展开光标所在层级 -
Ctrl+K, Ctrl+0:折叠全部顶级区块(如所有函数、类) -
Ctrl+K, Ctrl+J:展开全部 - 鼠标点击行号左侧的空心小箭头(▶)可手动折叠/展开该块
注意:Ctrl+K 是组合前导键,要先按住 Ctrl+K 不放,再按第二下(如 0),不是连按三次。
JSON / HTML / Markdown 等格式折叠异常的常见原因
这些格式默认折叠行为有限:JSON 只支持对象/数组层级折叠;HTML 默认只折叠 <script></script> 和 <style></style> 内容;Markdown 几乎不折叠标题区块。
- JSON 折叠失效?确认文件已识别为
JSON语法(而非JSON with Comments,后者部分版本不带折叠规则) - HTML 中
<div> 嵌套无法折叠?原生 Sublime 不支持标签对折叠,需安装插件 <code>HTML-CSS-JS Prettify或Tag - Markdown 标题不折叠?默认不支持,可用插件
MarkdownFold补充,但会增加解析开销,大文档可能卡顿 - 例如让以
def开头的行成为折叠起点:foldingStartMarker: ^def\s+\w+ - 匹配必须精确:空格、缩进、换行符都要考虑,写错会导致整文件折叠错乱
- 改完需重启 Sublime 或执行
Tools → Developer → New Syntax加载测试,不能热重载
自定义折叠规则需要改 .sublime-syntax 文件
如果你用的是私有 DSL 或某冷门配置格式,且希望支持函数级折叠,就得编辑语法定义文件——这不是用户设置,而是修改 .sublime-syntax 中的 foldingStartMarker 正则。
真正需要改语法文件的场景极少,绝大多数问题出在语法识别错误或快捷键按法不对。










