Sublime Text侧边栏无折叠三角图标,通常因"fold_buttons": true未启用、插件覆盖语法定义或右下角语法识别为Plain Text;需在用户设置中开启该选项并确保语法正确、缩进统一。

Sublime Text 默认就支持代码折叠预览,但「预览」不是指悬停看内容,而是通过侧边栏三角图标和折叠行末尾的省略号(...)直观看到哪些区域可收起——前提是语法识别正确、设置没关、光标位置对。
为什么侧边栏没出现折叠三角图标
这通常不是功能缺失,而是 UI 层被禁用了:"fold_buttons": true 没开,或者被插件覆盖。Sublime 不会默认隐藏这个按钮,它只会在折叠能力就绪时才显示。
- 打开
Preferences → Settings,在右侧用户设置中确认存在"fold_buttons": true - 如果同时写了
"fade_fold_buttons": false,能避免按钮自动淡出,更易发现 - 某些旧插件(如 Vue Syntax Highlighter v2.x)会重写语法定义,导致折叠作用域丢失;临时禁用插件后重启 Sublime,看三角是否回归
- 右下角语言标识必须是有效语法名(如
Python),不是Plain Text或空值——否则整个折叠逻辑不加载,按钮自然不出现
Ctrl+Shift+[ 按了没反应?先查光标在哪
这个快捷键不是“选中就折”,它只响应「当前可折叠块的起始行」。光标停错位置,命令就静默失效。
- 必须落在起始标记行:比如
def func():、function foo() {、if x:、{所在行 - 不能在
}行、空行、注释行、字符串内部、或缩进不一致的行上 - 不确定当前行是否被识别为可折叠?按
Ctrl+Shift+P→ 输入show_scope_name回车,看状态栏是否含meta.function、meta.block等带meta.的作用域 - 缩进混用(tab + 空格)会让 Python/YAML 解析中断,函数作用域直接消失——统一用空格:菜单
View → Indentation → Convert Indentation to Spaces
想让任意代码段都可折叠,别硬套 #region
#region 和 // region 不是 Sublime 原生特性,强行写进去却没效果,大概率是因为没启用 fold_comments,或正则没匹配上。
- 最稳的手动方式:鼠标拖选目标代码 → 按
Ctrl+Shift+Alt+[(Windows/Linux)或Cmd+Ctrl+Option+[(Mac) - 该操作创建的是 session-level 折叠,关闭文件即消失,但 100% 可控,不依赖语法定义
- 若坚持用注释标记,先在
Preferences → Settings – Syntax Specific(针对当前文件类型)中加"fold_comments": true - 再用语言合规的格式:
#region utils(Python)、/* region helpers */(JS/JSON)、<!-- fold -->(HTML)——注意独占一行,后面不能跟其他字符
Ctrl+K, Ctrl+0 折完全黑了?别慌,这是正常行为
fold_all 命令(即 Ctrl+K, Ctrl+0)会递归折叠所有已识别的顶层结构,包括函数、类、模块级 if、甚至大段多行注释。它不区分“要不要留点东西”,只管执行。
- 展开全部用
Ctrl+K, Ctrl+J,不是Ctrl+Shift+]—— 后者只展开光标所在块 - 如果文件里有大量 docstring 或 JSON 字段,
fold_all可能一次折掉整屏,视觉上像“全黑”,实际只是折叠层级深 - 大文件(>5MB)执行
fold_all会有 1–2 秒卡顿,属 Sublime 原生行为,不是崩溃 - 真正容易被忽略的是:折叠状态从不持久。关掉文件再打开,一切恢复展开——这不是 bug,是设计如此;需要持久化得靠插件(如
CodeFold)或外部工具


















