Sublime Text 默认仅对 def/class、function/{}、/ 等语法结构自动折叠;注释块(如 #region)需手动修改 .sublime-syntax 文件添加匹配规则;折叠失效常见原因包括语法类型识别错误、插件冲突或代码语法不规范。

Sublime 中哪些代码能自动折叠
Sublime Text 默认只对特定语法结构支持折叠,比如 Python 的 常见误区是以为选中几行按 折叠当前光标所在层级的代码块(比如一个函数体、一个 if 分支): 注意: 原生 Sublime 不支持 打开 重启后,含 折叠没反应?大概率是以下原因之一: 折叠能力依赖语法高亮引擎的解析结果,不是纯文本操作。写得越规范,折叠越可靠。def、class,JavaScript 的 function、{} 块,HTML 的 等。它不识别注释块或自定义标记(如 // region),除非你手动配置或装插件。Ctrl+Shift+[ 就能任意折叠——实际只有被语法解析器识别为“可折叠单元”的代码段才响应这个快捷键。用快捷键快速折叠/展开代码块
Ctrl+Shift+[(Windows/Linux)或 Cmd+Shift+[(macOS):折叠Ctrl+Shift+] 或 Cmd+Shift+]:展开Ctrl+K, Ctrl+0:折叠全部Ctrl+K, Ctrl+J:展开全部Ctrl+K 是组合前导键,按完要松开再按后续键;误按 Ctrl+K, Ctrl+K 会清空当前行,不是折叠操作。让注释块也能折叠(#region / // region)
#region 这类标记,但可通过修改语法定义实现。以 Python 为例:Preferences → Browse Packages → Python,复制 Python.sublime-syntax 到 User 目录,重命名为 Python.sublime-syntax(覆盖或新建),在 contexts 下添加:
- match: '#\s*region\b'
push:
- meta_scope: meta.region.python
- match: '#\s*endregion\b'
pop: true
# region 和 # endregion 的块就能用快捷键折叠了。其他语言同理,需对应修改其 .sublime-syntax 文件。折叠失效时优先检查这三件事
Python、JavaScript 等,点它手动切换CodeFolding 插件会和原生折叠冲突,建议禁用










