ctrl+shift+[ 无效需先确认光标位于可折叠结构起始行(如def、class行首)且右下角语言标识正确(非plain text);全文件折叠用ctrl+k, ctrl+0(分步按),精准控制用fold_by_level并实测层级,临时折叠选中内容用fold_selection。

Ctrl+Shift+[ 没反应?先确认光标和语言状态
这个快捷键只对「可折叠结构的起始行」生效,不是任意位置都能触发。光标必须停在 def、class、if、function、{ 这类行的开头——停在函数体内部、空行、注释里,或者缩进后的代码行上,都会静默失败。
右下角状态栏必须显示真实语言名(如 Python 或 JavaScript),若显示 Plain Text 或空白,整个折叠系统不加载,所有快捷键都无效。
- 验证作用域是否被识别:光标停在
def行,按Ctrl+Shift+P→ 输入Developer: Show Scope Name回车;状态栏若含meta.function.python才算正常 - 混用
Tab和Space缩进(尤其 Python)会导致语法解析中断,def块无法被识别为函数作用域 - 保存带扩展名的文件(如
main.py),Sublime 才会自动关联语法;新建未保存的临时文件默认是Plain Text
想一键收起整份文件?用 Ctrl+K, Ctrl+0,但注意分步按
Ctrl+K, Ctrl+0(Windows/Linux)或 Cmd+K, Cmd+0(macOS)是真正遍历全文件、折叠所有顶层结构的命令,包括函数、类、模块级 if、for、顶层注释块等。
它不依赖光标位置,但极度依赖右下角语言标识——Plain Text 下完全静默失效,且不会报错提示。
- 必须分步操作:先按
Ctrl+K松开,再按Ctrl+0(数字零,不是字母 O);三键同时按 Sublime 不识别 - 误按
Ctrl+K, Ctrl+K会清空当前行,不是折叠操作 - 展开全部对应的是
Ctrl+K, Ctrl+J,同样需分步
只折函数,跳过 if/for/注释?试试 fold_by_level
Ctrl+K, Ctrl+0 太粗暴,会把 if 块、文档字符串甚至 __all__ = [] 全收走。精准控制得靠 fold_by_level 命令,但它不认语言,只认当前语法定义中 meta.function 所在的嵌套深度。
这个深度需要实测:不同语法包、不同插件版本下,def 可能在 level 1、2 或 3。
- 先手动用
Ctrl+Shift+[折一个def行,确认它真被识别为函数块(而非普通缩进块) -
Ctrl+Shift+P→ 输入fold_by_level→ 回车 → 依次试2、3、1(Python 文件通常从2开始) - 装饰器跨行(如
@decorator单独一行写在def上方)或 docstring 紧贴def行(无空行),可能导致折叠跳过,加空行可修复
语法失效或想临时藏几行 JSON/日志?直接选中后折叠
当语法识别失败、语言不支持(如纯文本配置、JSON、Markdown)、或你只想快速收起一段测试数据、大段注释时,fold_selection 是最稳的兜底方案——它不依赖语法解析、不校验缩进、不读任何配置。
选中你要隐藏的任意行(鼠标拖选,或 Ctrl+L 连续选行),然后按 Ctrl+Shift+[(Windows/Linux)或 Cmd+Shift+[(macOS)。
- 折叠后左侧 gutter 出现独立三角图标,点击即可展开,不影响其他自动折叠区域
- 该操作仅存于当前会话,关闭文件即丢失;重启 Sublime 后所有手动折叠自动清除
- 它调用的是原生命令,无需插件,也绕过了
#region不生效的问题(Sublime 原生不解析这类标记)
fold_by_level 的层级数字——它由语法包决定,同一语言在不同插件版本下可能完全不同,必须实测,不能硬记。











