不能连续折叠多个同级函数,但可一次性折叠所有同级语法节点(如Python中fold_level=2的顶层def/class);Ctrl+K,Ctrl+1仅折level 1内容,需按实际作用域层级尝试2或3。

Ctrl+K, Ctrl+1 能不能连续折多个同级函数?
不能直接“连续”折,但可以一次性折叠所有同级节点——前提是它们在语法定义中属于同一作用域层级。比如 Python 中所有顶层 def 和 class 通常都在 fold_level = 2,所以 Ctrl+K, Ctrl+2(不是 Ctrl+1)会把它们全收起来。
常见错误现象:Ctrl+K, Ctrl+1 按了只折了 import 和顶层赋值,函数没动——说明当前文件里函数不在 level 1,得试 2 或 3。
- 必须分步按:
Ctrl+K松开,再按Ctrl+1(数字 1,不是字母 L) - 右下角语言标识必须是
Python、JavaScript等原生支持折叠的语言,Plain Text下完全无效 - 如果部分函数没被折进去,大概率是作用域识别断裂:光标停在
def行,按Ctrl+Shift+P→ 输入show_scope_name,看状态栏是否含meta.function.python
为什么手动选中多个函数再按 Ctrl+Shift+[ 不行?
因为 Ctrl+Shift+[ 是「对每个选中区域单独执行一次折叠」,不是「把多个选区合并成一个折叠块」。你选中 5 个 def 行,按下后会生成 5 个独立的手动折叠区域,侧边栏出现 5 个分离的三角图标,且它们彼此不嵌套、不联动。
这种操作调用的是 fold_selection 命令,它和语法折叠走两套机制:不共享层级、不响应 unfold_all、关闭文件即消失。
- 适合场景:临时收起几段日志、JSON 片段、测试数据——和语法无关,100% 可控
- 不适合场景:想统一管理函数结构、需要后续用
Ctrl+K, Ctrl+J一键展开 - 若真要批量处理,可用正则选中:
Ctrl+F→ 正则^def\s→Find All→Ctrl+Shift+[
fold_by_level 参数输多少才对?
fold_by_level 的参数不是缩进空格数,而是语法作用域嵌套深度。Python 函数通常是 2,但装饰器跨行、docstring 紧贴 def 行、混用 Tab/Space 都会导致识别失败,所以必须实测。
操作建议:
- 先用
Ctrl+Shift+[手动折一个确认有效的函数 - 按
Ctrl+Shift+P→ 输入fold_by_level→ 回车 - 依次尝试
1、2、3……没反应就换下一个;输错(如负数、字母)会静默失败,控制台无提示 - JS 文件常需
3,HTML 标签对常用1,YAML 默认不支持,得靠fold_selection
侧边栏多个独立三角图标,能一键展开吗?
不能。Sublime 没有「展开所有手动折叠区域」的命令。这些图标由 fold_selection 生成,和语法折叠互不感知,Ctrl+K, Ctrl+J 对它们完全无效。
唯一办法是逐个点击 gutter 里的三角图标,或用鼠标滚轮快速扫视定位。如果太多,说明你混合用了语法折叠和手动折叠——建议清理:先 Ctrl+K, Ctrl+J 展开所有语法块,再手动点掉所有 gutter 三角,回归统一管理。
真正容易被忽略的是:手动折叠区域从不保存到磁盘,重启 Sublime 或关掉文件,它们就彻底消失了——这不是 bug,是设计如此。

















