折叠区域不生效需先确认语法和作用域:文件类型必须正确(如js/python而非plain text),region注释须顶格无空格,且scope中含comment.line或meta.region;无效写法包括带冒号、缩进或尾部符号;无语法支持时可用选中折叠(ctrl+shift+alt+[);全局启用需修改语法定义或安装codefold插件。

折叠区域不生效?先确认语法和作用域
Sublime Text 不会自动识别 // region 或 # region 这类注释为可折叠块——它只响应语言语法文件中明确定义的 foldingStartMarker 和 foldingStopMarker。如果你写了 // region utils 却折不了,大概率是因为:
当前文件右下角显示的是 Plain Text,不是 JavaScript 或 Python;
光标没停在 // region 所在行(必须顶格、无空格);
按 Ctrl+Shift+P → Developer: Show Scope Name,输出里没有 comment.line 或 meta.region 类 scope。
手动加注释标记:哪些写法真正有效
原生支持 // region 的语言(如 JS/TS/CSS)要求严格格式,以下写法才被识别:
-
// region utils✅(顶格,无空格,无冒号) -
// endregion✅(必须配对,同样顶格) -
# region config✅(Python,顶格,#后一个空格) -
# endregion✅ -
// region: utils❌(冒号破坏匹配) -
// region utils❌(前面有空格,scope 不匹配) -
// region utils //❌(末尾多余符号干扰正则)
折叠后左侧 gutter 显示整行内容,不会提取 utils 作为标签名;也不支持嵌套(// region 里再写 // region 会被忽略)。
没语法支持?用选中折叠最稳
当语言包没定义 region 规则(比如 YAML、TOML、自定义 DSL),或你只想临时收起几行日志、配置、测试数据,直接绕过语法层:
- 鼠标拖选任意连续多行(哪怕全是空行或注释)
- 按
Ctrl+Shift+Alt+[(Windows/Linux)或Cmd+Ctrl+Option+[(macOS) - 侧边栏出现独立小箭头,点击即可展开/收起
这种折叠不保存、不依赖语法、不校验作用域,关闭文件即消失,但 100% 可控。注意:快捷键若冲突,可在 Preferences → Key Bindings 搜索 fold_selection 确认绑定。
想全局启用 region?得改语法定义或装插件
硬要让非默认语言(比如 .env 或 .md)支持 // region,有两个路径:
- 复制对应语言的
.sublime-syntax文件到Packages/User/,添加foldingStartMarker正则(如^s*//s*region),但 Sublime 4 起只认新格式,老.tmLanguage的foldings块已失效 - 装
CodeFold插件,它通过独立规则匹配// region,不依赖语法文件,且支持自定义正则(如加"^s*#\s*region"支持 Shell 注释)
真正容易被忽略的是:region 折叠和语法级折叠(def、{)共存时,Sublime 会优先响应更具体的 scope;如果 // region 行同时被识别为 comment.line 和 source.python,但语法文件没声明 fold_comment,那 region 就永远不生效。











