Sublime Text 4 原生不支持自动折叠 import 或注释块,需依赖插件(如 CodeFold)或手动正则匹配;CodeFold 通过行首正则识别 import/#include,支持多语言且可自定义规则,但需确保语法正确、正则严谨;fold_comments 仅对标准注释生效,docstring 可能误折;#region 不被原生支持;自动折叠不存在,须手动触发;混合结构建议分治处理:CodeFold 管导入,fold_selection 清注释,其余人工判断。

Sublime Text 4 原生不支持自动折叠 import 块或注释块,所谓“自动”必须靠插件、正则匹配或手动标记实现;开箱即用的 fold_comments 或 fold_all 对这两类内容基本无效。
CodeFold 插件是唯一能真正识别并折叠 import/#include 的方案
它不依赖语法作用域,而是用正则扫描行首匹配,对 Python/JS/C++ 等语言开箱即用:
- 安装后默认启用规则,例如
^\s*import\b、^\s*from\s+\S+\s+import、^\s*#include\b - 规则存于
Packages/CodeFold/folds.json,可直接编辑添加自定义模式(如加^\s*require\(\)支持旧版 Node) - 若折叠失效,先确认右下角显示的是
Python而非Plain Text—— 插件只在正确语法上下文中运行 - 正则务必带
^和\b,否则可能误折字符串里的"import"或变量名
fold_comments 设置只对部分语言生效,且不隔离纯注释
它不是“折叠所有注释块”,而是让语法解析器把注释行标记为可折叠起点——但 Sublime 不会为注释单独建折叠单元:
- 在
Preferences → Settings – Syntax Specific中加"fold_comments": true,仅对//、#、/* */等标准单行/块注释起效 - Python 的
"""docstring"""可能被误判为注释并折叠,导致代码段消失 -
#region类标记完全不被原生支持,必须装插件(如CodeFolding)或手动配正则 - 即使开启,也不会“打开文件时自动折叠”,仍需手动触发
Ctrl+Shift+[或点击 gutter
手动选中 + fold_selection 是最可控的临时方案
当插件不适用、语法未识别,或你只想临时收起一段日志、配置 JSON、大段注释时,纯文本层操作反而最稳:
-
Ctrl+F打开查找 → 输入正则^[ \t]*(//|#|/\*|\'\'\'|"""),勾选Regex -
Find All高亮所有注释行,再按Ctrl+Shift+L为每行生成光标 - 微调选区(删掉混入的空行或带代码的注释行),最后按
Ctrl+Shift+[ - 这样折叠的区块独立于语法层级,不会被
fold_all或unfold_all影响,只能点 gutter 或运行unfold_selection展开
真正难处理的是混合结构:比如头部同时有 import、const config = {...}、/** @module */ 注释。这时插件规则容易冲突,fold_by_level 又会连带折掉常量块。最保险的做法是——别追求全自动,用 CodeFold 管理导入,用 fold_selection 临时清理注释,其余靠人工判断。


















