sublime text 原生不支持 // region 折叠,因折叠依赖语法文件中的 foldingstartmarker 和 foldingstopmarker;需确保顶格书写、配对出现、语言正确(如 python 用 # region)、右下角非 plain text,并配置 "fold_comments": true 与 "fold_by_level": true。

Sublime Text 原生不支持 // region 或 #region 这类折叠标记,直接写进去不会触发折叠——必须手动配置语法定义或启用特定机制,否则纯属无效注释。
为什么 // region 写了也不折叠?
因为 Sublime 的折叠逻辑完全依赖当前语言的 .sublime-syntax 文件中是否定义了 foldingStartMarker 和 foldingStopMarker。Python、JavaScript 等默认包虽预留了注释折叠入口,但对 // region 的匹配有硬性限制:
- 必须顶格书写(行首不能有空格或 Tab)
- 必须配对出现(
// region和// endregion一一对应) - 默认 Python 语法只认
# region,JS 默认只认/* region */,// region在 JS 中甚至不是合法注释 - 若右下角显示
Plain Text,整个折叠系统不启动,标记再标准也无效
启用 #region 折叠的最小可行配置
不用改语法文件,靠用户级设置 + 语法特异性启用即可。以 Python 为例:
- 点击右下角语言名 → 选择
Python(确保不是Python Improved或其他插件语法) - 菜单栏
Preferences → Settings – Syntax Specific - 在右侧用户设置中加入:
{
"fold_comments": true,
"fold_by_level": true
}
保存后,以下写法即可折叠:
# region 数据处理逻辑
def clean_data(x):
return x.strip().lower()
# endregion
注意:fold_comments 是开关,fold_by_level 让缩进层级参与折叠判断(避免单行 # region 被忽略);两者缺一不可。
JSON/HTML/Markdown 怎么加 <!-- fold -->?
这些语言原生不支持注释折叠,但可通过语法特异性配置“骗过”折叠引擎:
- 打开一个
.json文件 →Preferences → Settings – Syntax Specific - 加入:
{
"fold_comments": true,
"comment_string": "//"
}
然后在 JSON 里这样写(虽不符合 JSON 规范,但仅用于视觉折叠):
// <!-- fold -->
{
"config": { "timeout": 5000 },
"flags": ["debug", "verbose"]
}
// <!-- endfold -->
关键点:comment_string 告诉 Sublime “把 // 当作注释来识别”,fold_comments 才会扫描它;HTML 和 Markdown 同理,但需对应设为











