sublime text 一键折叠所有代码块无需插件,直接使用 ctrl+k, ctrl+0(windows/linux)或 cmd+k, cmd+0(macos)触发原生 fold_all 命令,前提是文件语法识别正确(如 python、javascript),而非 plain text 或缺失 folding 规则的自定义语法。

Sublime Text 本身不依赖插件实现一键折叠所有代码块
直接用 Ctrl+K, Ctrl+0(Windows/Linux)或 Cmd+K, Cmd+0(macOS)就能触发原生 fold_all 命令,不需要装任何插件。很多人搜“安装插件”,其实是被误导了——折叠功能是 Sublime 自带的,前提是文件语法识别正确。
为什么装了插件反而可能让折叠失效
某些第三方语法包(比如旧版 Vue 或 JSX 插件)会覆盖默认语法定义,删掉 foldingStartMarker 或没声明 meta.function 作用域,导致 fold_all 完全不响应。常见现象:右下角显示 Vue Component,但 Ctrl+K, Ctrl+0 按了没反应。
- 检查当前语法是否为官方支持语言(如
Python、JavaScript、HTML),不是Plain Text或第三方自定义语法 - 临时禁用插件测试:菜单 →
Preferences → Package Control → Disable Package,逐个关掉语法高亮类插件 - 确认插件没修改
Preferences → Settings – Syntax Specific里的"fold_buttons": false这类设置
真需要插件的场景:自动折叠 / 特定规则折叠
原生不支持“打开文件时自动折叠”,也没法只折函数不折 if。这时才考虑插件,但必须明确目的:
-
AutoFold:监听on_load_async事件后执行fold_all,仅对 source 文件生效(如.py、.js),不适用于日志或配置文件 -
Fold Comments:单独折叠所有注释块,不影响代码结构,适合文档密集型项目 - 手写小插件更可控:通过
Tools → Developer → New Plugin…创建,用view.run_command("fold_all")加条件判断(比如只对source.python触发)
折叠失败时,比装插件更优先做的事
90% 的“折叠无效”问题跟插件无关,而是底层识别断了。先做这三件事:
- 点右下角语言名 → 手动选成
Python/JavaScript等,别信文件后缀自动识别 - 查缩进是否混用:
View → Indentation → Convert Indentation to Spaces(尤其 Python/YAML) - 用
Ctrl+Shift+P输入Developer: Show Scope Name,光标停在def行,看状态栏是否含meta.function;没有就说明语法定义漏了关键作用域
真正影响折叠的,从来不是缺插件,而是 scope 没命中、syntax 没对上、indent 没统一——这些细节比插件列表重要得多。











