Ctrl+Shift+[ 无反应是因为文件未被识别为代码语言或光标位置错误:右下角显示 Plain Text、光标不在可折叠结构起始行(如 def/class 行)、作用域未命中(如仅 source.python 无 meta.function)均会导致失效。

Ctrl+Shift+[ 没反应,不是快捷键坏了,而是 Sublime 根本没把当前文件当代码处理——90% 的情况是右下角显示 Plain Text,或光标停在不可折叠的位置。
为什么 Ctrl+Shift+[ 一点动静都没有
这个快捷键只对「光标所在行的最内层可折叠结构起点」生效,不是选中就折,也不是任意位置都能触发:
- 光标必须停在
def、class、if(带冒号和缩进块)、function、{所在行——这些行左侧 gutter 才会出现 ▶ 图标 - 光标停在函数体内部某行(比如
print("x"))、空行、注释行、字符串里,Ctrl+Shift+[会静默失败 - 右下角状态栏显示
Plain Text,所有语法级折叠逻辑直接关闭;哪怕文件名是main.py,没识别语法也白搭 - 按
Ctrl+Shift+P→ 输入Developer: Show Scope Name,若状态栏只显示source.python而不含meta.function,说明作用域未命中,折叠起点丢失
Ctrl+K, Ctrl+0 折不全或折错层级
它调用的是 fold_all,但不是“把所有缩进块都收起来”,而是按语法定义中声明的 作用域嵌套深度(scope level) 逐级执行:
-
Ctrl+K, Ctrl+0:强制折叠所有已识别的折叠点,但前提是文件已被正确识别为对应语言;输错数字(比如按了Ctrl+K, Ctrl+8)不会报错,只是没反应 -
Ctrl+K, Ctrl+1:只折 scope depth = 1 的结构,Python 中通常是顶层def和class,JS 中可能是function声明或模块级{块 -
Ctrl+K, Ctrl+2:再往里一层,比如函数体内的for、if、with块——但若某函数只有单行return,无更深嵌套,则不会被影响 - 操作顺序必须是:先按住
Ctrl+K松开,再按数字键;三键同时按无效
想折任意几行(JSON/日志/配置段)怎么办
别等语法支持,fold_selection 是唯一绕过语法解析、缩进校验和 fold rules 的方式,适合临时整理非标准内容:
- 鼠标拖选任意行(包括空行、注释、JSON 对象、base64 字符串)
- Windows/Linux 按
Ctrl+Shift+Alt+[,macOS 按Cmd+Ctrl+Option+[ - 侧边栏立刻出现独立三角图标,点击即可展开,不影响其他自动折叠块
- 该折叠仅存于当前会话,关文件即丢,不写入磁盘;不能和
fold_all混用:Ctrl+K, Ctrl+J(unfold_all)不会还原它
region 注释折叠不起作用
原生支持 // region / # region,但有两个硬性条件必须同时满足:
-
// region description必须顶格书写,前面不能有空格或 Tab,否则语法高亮引擎直接忽略整行 - 仅部分语言默认启用:
JavaScript、TypeScript、C++、PHP支持;Python默认支持# region,但需确保用的是官方Python语法(不是Python Improved或Python 3插件) - 如果写了仍不生效:
Ctrl+Shift+P→Set Syntax: Python强制切回原生语法;检查Preferences → Settings是否有"fold_enable": false或"fold_buttons": false - 不要混用
// region和/* region */,后者不被原生识别
真正容易被忽略的是:折叠功能从不依赖文件后缀,只认右下角那个小小的语言标识;而 region 折叠的正则匹配不能跨行,# region.*?# endregion 这种写法永远无效。


















