Ctrl+Shift+[ 仅对可折叠结构起始行生效,光标需位于 def 等作用域起始行首;若状态栏显示 Plain Text 或缩进混用,则折叠系统未启动;手动选中后按 Ctrl+Shift+Alt+[ 可强制折叠任意行。

Ctrl+Shift+[ 没反应?先确认光标停在哪儿
这个快捷键只对「可折叠结构的起始行」生效,不是选中就折,也不是任意位置按了都有反应。常见失效场景包括:
- 光标停在
def行中间、空行、注释行、字符串内部,或}/:后面的缩进行上 - 右下角状态栏显示
Plain Text—— 折叠系统压根没启动 - 缩进混用 Tab 和空格,导致 Python/YAML 作用域解析中断,
meta.function根本不出现
验证是否被识别:光标停在 def foo(): 行,按 Ctrl+Shift+P → 输入 Developer: Show Scope Name,状态栏若只显示 source.python,说明语法未命中折叠作用域。
手动选中任意几行,立刻折叠(零配置兜底方案)
当你处理 JSON 配置、日志块、测试数据、HTML 片段,或当前文件语法根本不支持折叠时,这是最稳的方式:
- 鼠标拖选目标行(支持跨注释、空行、base64 字符串)
- Windows/Linux 按
Ctrl+Shift+Alt+[;macOS 按Cmd+Ctrl+Option+[ - 侧边栏立即出现独立三角图标,点击即可展开/收起
该操作调用的是 fold_selection 命令,完全绕过语法定义、缩进校验和 fold_comments 设置,但注意:关闭文件后折叠即丢失,不写入磁盘。
想用 #region 或 // region?得先开开关再守规矩
Sublime 不原生支持 #region,必须满足三个条件才可能生效:
- 当前文件语法已正确切换(右下角显示
Python或JavaScript,非Plain Text) - 用户设置或语法专属设置中启用了
"fold_comments": true - 注释格式严格合规:
#region utils(Python,顶格、独占一行)、// region helpers(JS/TS,不能带冒号或空格后缀)
配错一个字符(比如 # region utils 多了个空格)或写了 // region: utils,折叠就会静默失败。更可靠的做法是直接用 fold_selection 替代。
Ctrl+K, Ctrl+2 折的不是缩进层数,而是作用域深度
很多人以为 “2” 指缩进两个 Tab,其实它匹配的是语法定义中 scope level = 2 的结构,比如 Python 中的函数体(meta.function.python),而非所有缩进两层的代码块。
- 装饰器跨行(
@cache单独一行紧贴def)会导致作用域链断裂,Ctrl+K, Ctrl+2失效 -
def行紧挨 docstring(如def f():"""doc""")也会干扰识别,加空行可修复 - 输错数字无提示,静默失败;建议按
Ctrl+Shift+P→fold_by_level后依次试 1、2、3,实测为准
真正容易被忽略的是:作用域层级由语法包定义,不同插件(如 Python Improved)可能重写规则,导致同一份代码在不同环境里 Ctrl+K, Ctrl+2 行为不一致。


















