Ctrl+Shift+[仅在光标位于def/if/class/{等语法起始行时生效,停在函数体、空行或注释中则无效;需确保语法识别正常、设置fold_buttons为true且折叠状态不保存。

Ctrl+Shift+[ 只在光标停在起始行时生效
这个快捷键不是“选中就折”,它只响应函数、类、if 块、{ 开头行这类语法定义的「折叠起点」。光标停在 def func():、class Foo:、if x: 或 { 所在行,按 Ctrl+Shift+[ 才会折叠整个块;停在函数体中间、空行、注释里,它就静默失败。
常见失效原因包括:
- 右下角状态栏显示
Plain Text—— 折叠规则压根没加载 - 文件没扩展名(如临时粘贴的代码),Sublime 无法自动关联语法
- Python 中
def行前面有装饰器跨行且没空行,导致作用域识别断裂 - JS 中箭头函数没用
{}包裹体,例如const f = () => 42;不可折叠
想折任意几行?别等语法识别,直接选中再折
当语法不支持、或你只想临时收起一段日志、JSON、测试数据时,fold_selection 是最稳的兜底方案:鼠标拖选或多行选中(Ctrl+L 连续选行),再按 Ctrl+Shift+[(Windows/Linux)或 Cmd+Shift+[(macOS)。
这种折叠:
- 不依赖
meta.function或任何 scope 识别 - 不看缩进、不验语法、不改设置
- 左侧 gutter 出现独立 ▶ 图标,点击即可展开/收起
- 只存在于当前会话,关掉文件即消失
侧边栏没三角图标?不是功能坏了,是设置没开
即使快捷键有效,左侧 gutter 也不显示折叠按钮,大概率是用户设置里缺了这两行:
"fold_buttons": true,"fade_fold_buttons": false
必须加在 Preferences → Settings 右侧的用户设置中。注意:
-
"fade_fold_buttons": true(默认值)会让按钮只在悬停时出现,设为false才常驻 - 如果同时存在
"fold_enable": false,整个折叠系统会被禁用,删掉或改成true - 修改后无需重启 Sublime,但需切换一次标签页或重新加载语法(比如切到其他文件再切回)
折叠状态从不保存,重启就全展开
Sublime 没有原生机制保存折叠状态。你手动折好的函数、选区、region 标记,关闭文件再打开,一律恢复展开。这不是 bug,是设计如此。
目前没有配置项能开启“fold_on_open”或“remember_folds”。唯一接近持久化的方式是:AutoFold 插件(需额外安装和配置),但它依赖项目结构和自定义规则,对单文件临时编辑意义不大。

















