ctrl+k, ctrl+0(windows/linux)或 cmd+k, cmd+0(macos)才是真·一键收起全部的命令,它不依赖光标位置但需正确语法识别、缩进规范及文件大小适中;ctrl+shift+[仅折叠光标所在最小可折叠结构,非缺陷而是设计语义。

Ctrl+K, Ctrl+0(Windows/Linux)或 Cmd+K, Cmd+0(macOS)才是真·一键收起全部的命令,不是 Ctrl+Shift+[,也不是三键齐按。
为什么 Ctrl+Shift+[ 折不了全部?
它只对光标所在「最小可折叠结构」生效,比如你停在某个 if 块第一行,就只折那个 if;停在空行或注释里,直接没反应。
- 不是设计缺陷,是 Sublime 的明确语义:「折叠当前」≠「折叠全部」
- 常见误判:按了没变化,就以为功能坏了——其实只是光标位置不对
- 验证是否生效:把光标移到
def func():或function foo() {行再试一次
Ctrl+K, Ctrl+0 为什么有时也失效?
这个命令不看光标在哪,但极度依赖语法识别和文件状态。失效时优先排查这三项:
- 右下角状态栏显示的是
Plain Text或Unknown Syntax?→ 必须手动设置语言:Ctrl+Shift+P→Set Syntax: Python(或其他对应语言) - Python 文件混用 Tab 和 Space 缩进?→
View → Indentation → Convert Indentation to Spaces再试 - 文件过大(>10MB)或插件冲突(如 BracketHighlighter 劫持
Ctrl+K前缀)?→ 临时禁用插件,或改用命令面板:Ctrl+Shift+P→ 输入Fold All回车
想只折函数,不折 if/for/注释块?
原生 Ctrl+K, Ctrl+0 是「顶层结构全折」,不够精准。此时要用 fold_by_level 命令,但它不认语义,只认语法定义中 meta.function 所在的嵌套层级:
- 先手动用
Ctrl+Shift+[折一个函数,确认它被识别为函数块(而非普通缩进块) -
Ctrl+Shift+P→ 输入fold_by_level→ 回车 - 依次尝试数字
1、2、3:Python 通常为2,JS 常为3,输错无提示,没反应就换下一个 - 装饰器写在
def上方且换行?旧版语法包可能漏识别,升级 Python 语法包或换用Python Improved
折叠按钮不显示?侧边栏三角图标哪去了?
左侧边栏的折叠按钮默认可能关闭,且受两个设置控制:
- 必须在用户设置(
Preferences → Settings右侧)中显式启用:"fold_buttons": true -
"fade_fold_buttons": false才能让图标常驻显示(默认true,只悬停才出现) - 即使设置了,按钮也只对语法识别出的结构生成(如
def、class、{}),纯缩进块(如无大括号的 Python 函数体)不会出按钮,只能靠快捷键
折叠状态不会跨会话保存,重启 Sublime 就全展开——别指望配置项实现“一开就全折”,官方至今没提供 "fold_on_open": true 这类选项。











