Ctrl+Shift+[ 无反应需先确认光标位于可折叠结构首行且语言模式正确;Ctrl+K,Ctrl+N 按作用域嵌套深度折叠;fold_by_level 可精准控制函数级折叠;选区折叠 fold_selection 最稳定且不依赖语法。

Ctrl+Shift+[ 没反应?先确认光标和语法是否就位
这个快捷键不是“选中就折”,它只对光标所在行的**最内层可折叠结构**生效。按了没反应,90% 是因为:
• 光标停在空行、注释行、函数体内部某行(如 print("x")),而不是 def、if、function 或 { 所在行
• 右下角状态栏显示 Plain Text,不是 Python、JavaScript 等真实语言名
• 按 Ctrl+Shift+P → 输入 Developer: Show Scope Name,状态栏若只显示 source.python,说明作用域链未识别到 meta.function 或 meta.block
Ctrl+K, Ctrl+N 折叠层级到底怎么算?
这里的 N 不是缩进空格数,而是语法定义中的 **作用域嵌套深度(scope level)**。同一语言里不同结构可能同属一层,比如 Python 的 def 和 class 常都在 level 1,而 JS 中 function 和 { 块也可能共享同一层。
• Ctrl+K, Ctrl+0:调用 fold_all,无视层级,强制折叠所有已识别块
• Ctrl+K, Ctrl+1:只折 scope depth = 1 的结构(如顶层 def、import、if __name__ == "__main__":)
• Ctrl+K, Ctrl+2:再往里一层(如类内部方法、函数体内 for / if 块)
• 注意:必须先按住 Ctrl+K 松开,再按数字键;输错数字不会报错,只是静默失败
想只折函数,别碰 if/class?试试 fold_by_level
Sublime 没有原生“仅函数”命令,Ctrl+K, Ctrl+0 会把 if、class、顶层注释全收走。真正可控的是 fold_by_level 命令,但它依赖实测:
• 先确保一个 def 行能被 Ctrl+Shift+[ 正常折叠
• Ctrl+Shift+P → 输入 fold_by_level → 回车 → 依次试 2、3、1(Python 文件通常从 2 开始)
• 装饰器跨行(如 @decorator 换行写在 def 上方)或 docstring 紧贴 def 行会导致跳过,加空行可修复
• 嵌套函数(如 def outer(): def inner():)需额外执行一次 fold_by_level 3
任意几行都要收起来?手动选区折叠最稳
当语法失效、语言不支持、或你只想临时藏一段 JSON 配置/日志/测试数据时,fold_selection 是唯一不挑条件的方案:
• 鼠标拖选或多行选中(Ctrl+L 连续选行)
• Windows/Linux 按 Ctrl+Shift+Alt+[,macOS 按 Cmd+Ctrl+Option+[
• 左侧边栏会出现独立三角图标,点击即展开,不影响其他自动折叠块
• 该折叠仅存于当前会话,关闭文件即丢失;它不读 fold_comments、不校验缩进、不依赖语法包——哪怕你在 .env 文件里也能立刻收起
真正麻烦的不是怎么折,而是什么时候该信语法、什么时候该绕开语法。比如右下角显示 Plain Text 时,所有基于作用域的命令都失效;又比如混用 Tab 和空格,会让 Python 的部分 def 行彻底掉出 meta.function 作用域——这些细节不爆出来,光记快捷键根本没用。

















