sublime text 默认不支持自动折叠多行注释,因其原生语法未将 / ... / 视为可折叠区块;需通过修改语法文件添加 fold 指令或使用 commentfold 插件实现。

Sublime Text 默认不支持自动折叠多行注释
这不是你配置错了,是 Sublime Text 原生语法高亮和折叠规则压根没把 /* ... */ 当作可折叠区块处理。它只认代码结构(如函数、类、if 块)或显式标记(如 fold: true 的自定义规则),注释本身不在默认折叠范围内。
用 syntax-specific 设置 + 自定义 fold level 实现“伪自动”折叠
核心思路:让 Sublime 在打开 .c / .cpp / .js 等文件时,把所有 /* 开头的多行注释块识别为「可折叠段落」。这需要两步:
- 在对应语言的
syntax-specific设置里启用"fold_buttons": true和"auto_fold_level": 2 - 给该语言的
.sublime-syntax文件(或通过 PackageResourceViewer 编辑)添加一条fold指令,匹配/\*到\*/之间的内容 - 注意:修改语法文件后必须重启 Sublime,且每次升级语言包都可能覆盖你的改动
简单验证:打开一个含 /* ... */ 的 JS 文件,按 Ctrl+Shift+[(Windows/Linux)或 Cmd+Shift+[(macOS)看是否能手动折叠——如果能,说明底层支持已就位;不能则语法定义缺失。
更稳妥的替代方案:用插件 CommentFold
它不依赖语法定义,而是用正则扫描文件,专治各种注释格式(/* */、//、#、""")。安装后无需额外配置,开箱即用,但要注意:
- 折叠行为是「手动触发」:需选中注释块再按快捷键,或右键菜单选择
Fold Comment - 不会自动展开/收起——比如滚动到新注释不会自动折叠,得自己按一次
- 对超长注释(比如 500 行文档注释)响应略慢,CPU 占用会短暂升高
- 支持自定义快捷键,推荐绑定到
Alt+/避免和原生注释快捷键冲突
为什么不用 fold_by_level 或 fold_all?
这两个命令管的是缩进层级和代码块嵌套,跟注释无关。执行 fold_all 后,/* ... */ 依然平铺在那里——因为 Sublime 根本没把它当「折叠单元」看待。强行用插件模拟层级折叠(比如把注释前加空格假装是子块)会导致光标跳转错乱、代码跳转失效,属于本末倒置。
真正干净的做法,是接受「注释折叠必须显式声明」这个事实:要么改语法定义(稳定但维护成本高),要么用 CommentFold(灵活但非全自动)。别在 Preferences → Settings – Syntax Specific 里瞎调 fold_enable,它只控制按钮显示,不改变折叠逻辑。










