Sublime Text代码折叠需满足语法识别正确、作用域定义存在、光标位置合规三条件;右下角显示Plain Text则折叠不启动,须手动指定语法并确保fold_buttons:true。

Sublime Text 默认就支持自动代码折叠,但“自动”不等于“开箱即用”——它必须满足语法识别正确、作用域定义存在、光标位置合规三个硬条件;绝大多数配置失败,其实根本没走到“改设置”这步,而是卡在右下角显示 Plain Text 上。
右下角显示 Plain Text?折叠根本不会启动
折叠功能完全依赖语言语法定义里的 foldingStartMarker 和 foldingStopMarker,而 Sublime 只对明确识别为 Python、JavaScript、JSON 等语言的文件加载这些规则。它不分析文件内容,只认右下角那个名字。
- 点击右下角文字 → 手动选
Python/JavaScript/JSON等原生语法(不要选插件提供的变体,如Python Improved) - 保存带扩展名的文件(如
main.py、index.js),Sublime 才会自动关联语法 - 若仍显示错误名称,检查是否装了冲突插件(如旧版
Vue Syntax Highlighter),临时禁用后重启
Ctrl+Shift+[ 按了没反应?先看光标在哪一行
这个快捷键不是“全选就折”,它只对当前行是否属于可折叠结构的**起始标记行**做响应。光标停错位置,命令直接静默失效。
- 必须停在能触发折叠的行上:
def func():、function foo() {、if x:、{、<div> 等 <li>不能停在 <code>}行、空行、注释行、字符串内部、或缩进混用(Tab + 空格)导致作用域断裂的行 - 不确定是否被识别?按
Ctrl+Shift+P→ 输入Developer: Show Scope Name,看输出里有没有meta.function、meta.block这类带meta.的 scope - 打开
Preferences → Settings,在右侧用户设置中确保有:"fold_buttons": true - 建议同时加:
"fade_fold_buttons": false,避免按钮自动淡出难发现 - 如果存在
"fold_enable": false,必须删掉或改为true—— 某些插件会悄悄写入这行并彻底禁用折叠 - 修改后无需重启,但需切换一次标签页或重新加载语法(比如切到其他文件再切回)
- 鼠标拖选任意连续多行(哪怕全是注释、JSON 字段、纯文本)
- 按
Ctrl+Shift+Alt+[(Windows/Linux)或Cmd+Ctrl+Option+[(macOS) - 折叠仅存于当前会话,关闭文件即消失,但操作 100% 可控
- 侧边栏会出现独立小箭头,点击即可展开,不影响其他自动折叠块
侧边栏没三角图标?"fold_buttons": true 没开
即使快捷键有效,UI 层也可能被关了。没有这个设置,折叠按钮不会渲染,你连手动点都点不了。
想折任意几行?别等语法支持,直接 fold_selection
这是最可靠、零配置、不依赖任何语法包或插件的手动方式。适合临时收起日志、配置块、测试数据,或语法本身不支持折叠的场景(如 YAML、自定义 DSL)。
真正容易被忽略的是:折叠能力由语法定义驱动,而语法定义是否加载、是否含 foldingStartMarker,才是底层开关——不是设置没生效,是压根没加载进来。


















