Sublime代码折叠需右下角显示Python等语法名才生效,Plain Text下全部失效;fold_buttons必须为true才能显示侧边折叠按钮;Ctrl+K,Ctrl+0仅折语法定义结构,任意行折叠用Ctrl+Shift+Alt+[(Windows/Linux)或Cmd+Ctrl+Option+[(macOS)。

Ctrl+Shift+[ 没反应?先看右下角是不是 Plain Text
Sublime 的代码折叠不是“设置完就自动生效”的功能,它根本不会启动,除非右下角状态栏显示的是 Python、JavaScript、JSON 这类被明确识别的语法名。如果显示 Plain Text,所有折叠逻辑(包括快捷键、侧边按钮、fold_by_level)全部静默失效。
解决方法很简单:
- 点击右下角文字 → 从列表中手动选
Python或对应语言 - 保存文件时带正确扩展名(如
main.py、config.json),Sublime 才会自动关联语法 - 若仍不生效,临时禁用可疑插件(比如旧版
Vue Syntax Highlighter),它们可能覆盖原生语法定义
折叠按钮不显示?检查 fold_buttons 是否为 true
即使快捷键能用,侧边栏没 ▶ 图标,说明 UI 层被关了。这不是 bug,是设置项控制的。
打开 Preferences → Settings,在右侧用户设置中确认包含:
"fold_buttons": true, "fade_fold_buttons": false
常见干扰项:
- 某些插件悄悄写入
"fold_enable": false—— 删除这行或改为true - 如果同时存在
"fold_buttons": false,必须改成true,否则三角图标永不出现 - 改完无需重启,但建议切换一次标签页或重新加载语法(如切到其他文件再切回)
想折函数/类/导入块?别只靠 Ctrl+K, Ctrl+0
Ctrl+K, Ctrl+0 调用的是 fold_all,但它只折语法定义中声明的可折叠结构(如 meta.function、meta.class),不是按缩进层级暴力收起。所以:
- Python 文件里,它通常不会折
if或for块,除非语法包把它们也标记为同级作用域 - JSON 或 HTML 文件默认折叠能力有限,
Ctrl+K, Ctrl+0可能只折{}或<div>,对import或#include完全无效 - 要折导入区块,得装
CodeFold插件,或手动加<!-- fold -->/#region注释(需确保顶格、配对、语法支持)
任意几行都要收起来?用 fold_selection 最可靠
这是唯一不依赖语法识别、缩进规则、正则匹配的兜底方案。适合临时折叠日志、配置段、测试数据、甚至乱码行。
操作步骤:
- 鼠标拖选目标连续多行(空行、注释、JSON 对象、base64 字符串都行)
- Windows/Linux 按
Ctrl+Shift+Alt+[,macOS 按Cmd+Ctrl+Option+[ - 侧边栏立刻出现独立小箭头,点击即可展开/收起
注意:这种折叠只存在于当前会话,关闭文件即消失;它不写入磁盘,也不影响其他自动折叠块;Ctrl+K, Ctrl+J(unfold_all)不会还原它,必须单独点侧边栏箭头。
真正容易被忽略的是:光标位置和作用域识别——哪怕设置全对,光标停在 print() 行或字符串内部,Ctrl+Shift+[ 也会静默失败;验证方式永远是 Ctrl+Shift+P → Developer: Show Scope Name,看输出里有没有 meta.function 这类关键 scope。

















