Sublime需手动配置代码折叠:CodeFold支持import/#include正则折叠,fold_by_level依赖缩进,fold_selection为纯手动行选折叠,禁用失效插件可恢复原生折叠。

Sublime 默认不带代码折叠插件,所谓“再长的代码也能理清结构”,得靠手动装、配、调——不是开箱即用,而是按需补能力。
CodeFold 是目前唯一稳定支持 import/#include 自动折叠的插件
它不依赖语法定义,而是靠正则匹配行首关键词(如 import、from.*import、#include)来识别并折叠整段导入区块。规则存在 Packages/CodeFold/folds.json 里,可自由增删:
- Python 文件里写
from utils import *,会被自动收进一个折叠块 - JS 文件中
import { foo } from './bar.js'同样生效 - C/C++ 的
#include <stdio.h>也支持,只需在 folds.json 加一行"^\s*#include\b" - 注意:文件必须被正确识别为对应语言(右下角显示
Python而非Plain Text),否则插件不触发
fold_by_level 配合注释标记,适合 Python/YAML 等缩进语言
启用后,Sublime 会把相同缩进层级的连续代码块视为可折叠单元,配合 # region 这类注释能模拟区域折叠效果,但本质还是靠缩进,不是真解析注释对:
- 在
Preferences → Settings – Syntax Specific中加:{"fold_by_level": true, "fold_comments": true} - 写法示例:
# region utilsdef helper(): ...# endregion—— 后者不会被识别,真正起作用的是缩进一致的代码段 - 不适用于 JS/TS:它们靠
{}折叠,fold_by_level会和原生折叠冲突,反而让function块无法折叠
别碰 AdvancedNewFile 和旧版 CodeFolding
这两个插件已停止维护或设计缺陷明显:
-
AdvancedNewFile:2024 年起不再更新,其折叠逻辑与 Sublime 4+ 的.sublime-syntax机制不兼容,常导致Ctrl+Shift+[在函数体上失效 -
CodeFolding:会覆盖原生fold命令,把fold_level完全忽略,结果是 class/function 折不了,只剩缩进折叠 - BracketHighlighter 默认不干预折叠,但如果启用了
bracket_highlighter.fold_enabled,它会强制用缩进折叠,同样绕过语法定义
fold_selection 是最不该被忽略的手动方案
它不读语法、不认作用域、不依赖插件,纯粹按行号区间操作,适合临时收起 JSON、日志、大段注释或测试代码:
- 鼠标拖选或多行选中(
Ctrl+L连续选行)→ 按Ctrl+Shift+[(Win/Linux)或Cmd+Shift+[(macOS) - 折叠后,光标移到行号左侧 ▶ 上按
Enter可展开 - 再次按快捷键会尝试向上扩展折叠范围(比如从 5 行扩到包含父级的 8 行),但只限当前视图内可见行
- 这是唯一能在
Plain Text或未定义折叠规则的 DSL 文件里可靠工作的方案
真正卡住人的,往往不是“怎么装插件”,而是装完发现 Ctrl+Shift+[ 还是没反应——八成是右下角语法名不对,或者某个插件悄悄改了 fold_flags。先禁用所有折叠相关插件,确认原生行为是否恢复,再逐个启用排查。

















