Ctrl+Shift+]只对已折叠块的起始行生效,光标须位于def/function/{等折叠行,否则无反应;手动fold_selection折叠需点击gutter三角图标或移至起始行再操作。

Ctrl+Shift+] 没反应?先确认是否真处于折叠状态
这个快捷键只对「已折叠的块」生效,且光标必须落在该块的折叠起始行(比如 def 行、function 行、{ 行)上——不是任意位置点一下就能展开。如果按了没反应,大概率是:
• 当前光标所在行根本没被折叠(比如函数体内部某行、空行、注释行)
• 该块是用 fold_selection 手动折叠的,但光标没停在折叠标记行(即左侧 gutter 出现 ▶ 的那行)
• 右下角显示的是 Plain Text,整个折叠系统未激活
展开被 fold_selection 折叠的选区
手动选中后按 Ctrl+Shift+Alt+[(Windows/Linux)或 Cmd+Ctrl+Option+[(macOS)产生的折叠,不会响应 Ctrl+Shift+]。它只认一个动作:
• 鼠标点击左侧 gutter 中对应的小三角图标(▶ 或 ▼)即可展开
• 或把光标移到该折叠块的**第一行**(即你当初拖选的起始行),再按 Ctrl+Shift+]
• 注意:这种折叠不写入文件,关闭再打开就没了,也**不会被 Ctrl+K, Ctrl+J(unfold_all)还原**
为什么有时 Ctrl+Shift+] 展开的是外层而不是当前块
Sublime 的展开逻辑是“向上找最近的已折叠父级”,不是“展开光标正下方那个”。常见误判场景:
• 光标停在嵌套函数的 def inner(): 行,但外层 def outer(): 也被折叠了 → 按一次先展开外层
• 多层 if 块嵌套,光标在最内层 if 行,但中间某层已折叠 → 优先展开中间层
• 使用 fold_by_level 折叠后,作用域层级和视觉层级不一致,Ctrl+Shift+] 仍按语法 scope 展开,不是按缩进行数
更可靠的展开方式:用命令面板精准触发
当快捷键行为不符合预期时,直接调用命令更可控:
• 按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)
• 输入 unfold,选择 Unfold All、Unfold Level 2 或 Unfold Current
• Unfold Current 是最接近“展开光标处”的命令,但它仍要求光标落在折叠起始行;若不确定,先用 Developer: Show Scope Name 看当前行是否含 meta.folded 或类似 scope
• 所有 unfold 命令都不影响手动折叠的 fold_selection 区域,它们得单独点 gutter 图标
真正容易被忽略的一点:Sublime 不会自动把光标“跳转”到折叠起始行。你得自己挪上去——哪怕只是多按一次 ↑ 回到 def 那行,Ctrl+Shift+] 就立刻能用了。

















