ctrl+k, ctrl+j 是 sublime 中展开语法定义折叠块的唯一原生命令,但仅在文件有正确语法识别、已保存、且折叠由语法驱动时生效;手动折叠、html 属性折叠、层级折叠等需对应命令展开;重启后折叠自动消失,无需恢复。

Sublime 中“恢复折叠的代码”不是还原误删内容,而是展开已折叠的代码块——Ctrl+K, Ctrl+J 是唯一可靠的一键展开当前文件全部折叠内容的原生命令,但它的生效前提常被忽略。
为什么 Ctrl+K, Ctrl+J 按了没反应?
这不是快捷键失效,而是它根本没触发折叠系统:
- 右下角状态栏显示
Plain Text或空白:语法未识别,unfold_all命令静默跳过 - 文件是 untitled(未保存、无扩展名):Sublime 不加载任何语言折叠规则
- 手动用
fold_selection折叠的区域(比如选中后按Ctrl+Shift+Alt+[):这类折叠不归Ctrl+K, Ctrl+J管理,必须单独点击侧边栏三角图标展开 - 插件劫持了快捷键:如
BracketHighlighter或某些旧版语法包,临时禁用插件可验证
展开所有 ≠ 展开全部可见块
Ctrl+K, Ctrl+J 只还原由语法定义驱动的自动折叠(函数、类、// region 等),不处理以下情况:
- 用
Ctrl+Shift+[逐块手动折叠的代码:需用Ctrl+Shift+]逐个展开,或光标停在折叠标记上再按 - HTML 属性折叠(
Ctrl+K, Ctrl+T):得用Ctrl+K, Ctrl+U单独展开,Ctrl+K, Ctrl+J对它无效 - 层级折叠(
Ctrl+K, Ctrl+1~Ctrl+K, Ctrl+9):只能用对应层级命令反向操作,比如Ctrl+K, Ctrl+1折到一级,就得用Ctrl+K, Ctrl+2或更高层数逐步展开
想一次展开所有标签页里的折叠内容?没有内置方案
Sublime 原生只作用于当前活动视图。所谓“全局恢复”需依赖插件:
- 安装
ExpandAll插件(通过Package Control: Install Package) - 调出命令面板(
Ctrl+Shift+P),输入Expand All并执行 - 它会遍历所有已打开标签页,对每个视图分别运行
unfold_all - 注意:
ExpandAll同样无法展开fold_selection创建的手动折叠块
最易被忽略的一点:折叠状态从不持久化。重启 Sublime、关闭再重开文件,所有折叠都会自动消失——你不需要“恢复”,它本来就会重置;真正需要主动干预的,只是当前会话里那些你亲手折起来、又忘了怎么展开的块。











