Sublime Text仅支持语法驱动自动折叠、作用域层级折叠和手动选区折叠三种明确路径;Ctrl+Shift+[无响应主因是右下角显示Plain Text,需手动设置正确语法名,fold_by_level需实测数字,fold_selection可稳折任意选中行。

Sublime Text 里没有“类似代码块折叠”的模糊功能,只有明确的三种折叠路径:语法驱动的自动折叠、作用域层级折叠、手动选区折叠。其他所谓“类折叠”都是错觉或插件模拟,原生不支持。
Ctrl+Shift+[ 没反应?先看右下角是不是 Plain Text
这个快捷键只在语法被正确识别时才生效,不是键盘坏了。Sublime 不分析文件内容来猜语言,只认右下角显示的那个名字。
- 点击右下角文字 → 手动选
Python、JavaScript、JSON等真实语法名 - 保存为带扩展名的文件(如
main.py)通常能触发自动匹配,但不绝对 - 如果点了没变化,检查是否装了冲突插件(比如旧版
Vue Syntax Highlighter),临时禁用再试 - 用
Ctrl+Shift+P→ 输入Developer: Show Scope Name,光标停在def行,状态栏若只显示source.python,说明meta.function没命中,折叠起点丢失
想只折函数,别碰 if/class?用 fold_by_level 命令实测
原生没有“仅函数”快捷键,Ctrl+K, Ctrl+1 是按作用域层级折,不是按语法类型折。能否只收函数,取决于当前语法定义中 meta.function 所在的嵌套深度。
- 先确保一个
def行能被Ctrl+Shift+[正常折叠(左侧 gutter 出现 ▶) -
Ctrl+Shift+P→ 输入fold_by_level→ 回车 - 依次试数字
1、2、3:Python 文件常见有效值是2,JS 常见是3,输错无提示,没反应就换下一个 - 装饰器跨行(如
@decorator换行写在def上方)或 docstring 紧贴def行会导致跳过,加空行可修复 - 嵌套函数(如
def outer(): def inner():)需额外执行一次fold_by_level 3
任意几行都要收起来?用 fold_selection 最稳
这是唯一不依赖语法、不依赖作用域、不依赖插件的方案。它不写入任何配置,不修改语法文件,只对当前会话生效。
- 鼠标拖选任意连续多行(哪怕全是注释、JSON 配置、日志输出、或空行)
- 按
Ctrl+Shift+Alt+[(Windows/Linux)或Cmd+Ctrl+Option+[(macOS) - 侧边栏出现独立小箭头,点击即可展开/收起;光标移到折叠标记上按
Enter也能展开 - 该折叠关闭文件即消失,但胜在 100% 可控——你选中哪几行,就折哪几行,不多不少
- 注意:
unfold_all(Alt+1)不会恢复这类手动折叠,得单独点开或重复按Ctrl+Shift+Alt+[
region 注释为什么没用?因为 Sublime 默认不认
// region 和 # region 不是开箱即用的功能。它需要语法定义启用 fold_comment 规则,并且写法必须严格匹配。
- 注释必须顶格写,前面不能有任何空格或 Tab:
// region utils可以,// region utils失效 - 配对必须完整:
// region+// endregion(JS/TS/CSS),或# region+# endregion(Python) - 折叠后左侧只显示整行内容,不会提取
utils作为标签名 - 验证是否被识别:
Ctrl+Shift+P→Developer: Show Scope Name,光标停在// region行,状态栏需含comment.line且作用域未被插件覆盖 - 原生不支持
#region连写形式,也不支持/* region */—— 那些都得靠插件或自定义语法文件补正则
真正容易被忽略的是:折叠状态从不保存到磁盘,重启 Sublime 就全展开;侧边栏按钮默认只悬停显示,要常驻得手动设 "fold_buttons": true;Ctrl+K, Ctrl+0 在 HTML 中基本无效,想折 <div> 得靠 Ctrl+K, Ctrl+0 或手动选区。


















