Sublime Text大文件代码折叠需语法识别、作用域标记和操作路径三者齐备;右下角显示Plain Text等会导致折叠失效;fold_by_level和fold_selection是精准折叠的关键方案。

Sublime Text 对大文件的代码折叠不是靠“开启高级模式”生效的,而是必须满足语法识别、作用域标记和操作路径三者齐备;Ctrl+K, Ctrl+0 在 >10MB 文件中会延迟响应但依然有效,真正卡住的原因往往是右下角显示 Plain Text 或混用了 Tab/Space 缩进。
Ctrl+K, Ctrl+0 折叠全部却没反应?先盯住右下角语言名
这个命令调用 fold_all,但它不校验光标位置,只依赖当前视图是否被正确解析为某语言。一旦右下角显示 Plain Text、Unknown Syntax 或空白,整个折叠系统静默关闭。
- 点击右下角文字 → 手动选为
Python、JavaScript、JSON等原生支持语言 - 保存文件并带扩展名(如
server.py),否则 Sublime 不自动关联语法 - 检查是否装了冲突插件(如旧版 Vue 插件、Python Improved),临时禁用后重启验证
- Mac 用户务必用
Cmd+K, Cmd+0,不是Ctrl键
大文件里想只看函数签名?别信 Ctrl+K, Ctrl+1,用 fold_by_level 实测
Ctrl+K, Ctrl+1 折的是 scope depth = 1 的结构,但在 Python 中它可能把 if __name__ == "__main__": 和 __all__ = [] 一起收走,根本不是“仅函数”。真正可控的是 fold_by_level 命令,但它不认语言,只认 meta.function 实际嵌套深度。
- 先确保一个
def行能被Ctrl+Shift+[正常折叠(左侧 gutter 出现 ▶) -
Ctrl+Shift+P→ 输入fold_by_level→ 回车 - 依次试
2、3、1:Python 文件通常从2开始有效,JS 常是3 - 装饰器跨行(如
@cache换行写在def上方)或 docstring 紧贴def行会导致跳过,加空行可修复
JSON 配置、日志块、base64 字符串…任意几行都要收?fold_selection 最稳
当语法不支持、文件无扩展名、或你只想临时藏一段非代码内容时,fold_selection 是唯一绕过语法解析、缩进校验和 fold rules 的方式。
- 鼠标拖选任意多行(包括空行、注释、JSON 对象、base64 字符串)
- Windows/Linux 按
Ctrl+Shift+Alt+[,macOS 按Cmd+Ctrl+Option+[ - 侧边栏立刻出现独立三角图标,点击即可展开,不影响其他自动折叠块
- 该折叠仅存于当前会话,关闭文件即丢,不写入磁盘,也不依赖任何设置
折叠按钮不显示?不是 UI bug,是 "fold_buttons": false 覆盖了
即使快捷键全都能用,侧边栏没三角图标会让手动折叠和区域定位变得极不方便——这不是界面渲染问题,而是设置被覆盖。
- 打开
Preferences → Settings,右侧用户设置中必须有:"fold_buttons": true - 加上
"fade_fold_buttons": false可避免按钮悬停才显示 - 检查是否误写了
"fold_enable": false,删掉或改为true - 修改后无需重启,但需切换一次标签页或重新加载语法(如切到其他文件再切回)
真正容易被忽略的是:折叠状态从不保存到磁盘,也从不跨会话延续;哪怕你刚折完所有函数,关掉再打开文件,一切重来。另外,fold_selection 创建的折叠不会被 Ctrl+K, Ctrl+J(unfold_all)还原,得单独点侧边栏箭头。

















