Ctrl+K, Ctrl+0(Windows/Linux)或 Cmd+K, Cmd+0(macOS)是Sublime中真正一键折叠全部代码的原生命令,它不依赖光标位置,直接遍历所有语法定义的可折叠结构;而Ctrl+Shift+[仅作用于当前行最小块,易静默失败。

Ctrl+K, Ctrl+0(Windows/Linux)或 Cmd+K, Cmd+0(macOS)就是真正能一键折叠全部代码的组合键,不是 Ctrl+Shift+[,也不是 Ctrl+K, Ctrl+1。
为什么 Ctrl+K, Ctrl+0 才是正确命令
这个组合键触发的是 Sublime 原生的 fold_all 命令,它不依赖光标位置,直接遍历当前视图中所有已被语法定义标记为可折叠的结构(如 Python 的 def/class、JS 的 function/{ }、HTML 标签对等)。而 Ctrl+Shift+[ 只作用于光标所在行的最小可折叠块——停在空行、注释里、字符串中,它就静默失败。
- 必须分两步按:
Ctrl+K(按住后松开),再按0(数字零,不是字母 O) - macOS 用户注意:
Cmd+K, Cmd+0可能被 Alfred、输入法或安全软件拦截,建议改用命令面板保底 - 文件大于 10MB 时会卡顿 1–2 秒,属正常现象,不是崩溃
按了没反应?先查这三件事
90% 的“失效”不是快捷键问题,而是底层折叠能力未启用:
- 右下角状态栏显示的是
Plain Text?→ 必须手动设置语言:Ctrl+Shift+P→ 输入Set Syntax: Python(或对应语言) - Python 文件混用 Tab 和空格缩进?→
View → Indentation → Convert Indentation to Spaces - 装了旧版 Vue/JSX 插件?它们常覆盖原始语法定义,导致
<script>块无法识别为可折叠区域,删掉或更新插件即可
想只折函数,不碰 if/class/注释?试试 fold_by_level
Ctrl+K, Ctrl+0 是“顶层结构全折”,不适合只想看函数签名的场景。此时用 fold_by_level 更精准,但它依赖语法定义中的嵌套层级:
- 先确认一个函数能被正常折叠:
Ctrl+Shift+[在def行生效 → 说明meta.function被识别 -
Ctrl+Shift+P→ 输入fold_by_level→ 回车 → 尝试输入2(Python)或3(JS) - 输错无提示,只是没反应;装饰器跨行、docstring 紧贴
def都可能导致跳过,加空行可修复
最后提醒:折叠按钮和状态不会自动保存
侧边栏折叠按钮需在用户设置中显式启用:"fold_buttons": true;但即使开了,它也只对语法识别出的结构生成(比如 def、{}),纯缩进块不会出图标。更重要的是:Sublime 不保存折叠状态,重启后一律展开——官方至今没提供 "fold_on_open": true 这类配置项,别指望靠设置实现“一开就全折”。

















