折叠箭头不显示是因为主题文件未定义"fold_button"类;需在启用的主题.sublime-theme中搜索并添加该class规则,调整layer0.texture、tint等参数定制图标。

折叠箭头图标不显示?先确认主题里有没有 fold_button 定义
Sublime 不从 Preferences.sublime-settings 读取折叠图标样式,所有视觉控制都在当前启用的 .sublime-theme 文件里。如果你改了 "fold_buttons": true 却没看到侧边栏小三角,大概率是主题压根没定义 "class": "fold_button" 这条规则。
打开 Packages/ 路径(Preferences → Browse Packages),找到你用的主题,比如:Packages/Theme - Default/Default.sublime-theme 或 Packages/User/YourTheme.sublime-theme。搜索 "class": "fold_button" —— 如果整份文件里找不到,图标就不可能出现。
别直接改 Theme - Default/ 下的文件,升级会被覆盖;建议复制一份到 User/ 目录下再编辑。
- 确保
rule数组里有且仅有一个"class": "fold_button"条目;重复、嵌套错层或被其他 rule 意外覆盖都会导致失效 - 如果主题用了
layer0.tint(ST4+ 常见),但layer0.texture没设为null,图标可能半透明、错位或完全不可见 - 检查是否误加了
"content_margin"或负"offset",会让箭头偏出 gutter 区域
想换颜色/大小/方向?改 theme 文件里的 layer 配置
折叠箭头本质是 theme 中一个带图层(layer)的 UI 元素,不是纯 CSS。修改它要动 layer0 到 layer2 的组合参数,常见调整点:
-
"layer0.texture":指向一张 PNG 图片路径(如"res/icons/fold.png"),替换成你自己的图标即可;设为null则走纯色方案 -
"layer0.tint":控制颜色,值为十六进制色值(如"#666"),对纯色图标生效 -
"content_margin":微调箭头在 gutter 中的上下左右留白,单位是像素(如[2, 2, 2, 2]) -
"layer0.opacity":避免设得太低(
示例片段(加在 rule 内):
{
"class": "fold_button",
"layer0.texture": null,
"layer0.tint": "#999",
"content_margin": [3, 3, 3, 3]
}
为什么改完没变化?常见静默失效原因
Sublime 对 theme 修改非常“安静”——错一个字段、少一个逗号、路径不存在,都不会报错,只是图标消失或回退默认样式。
- 主题文件语法必须是合法 JSON:末尾不能多逗号,字符串必须双引号,布尔值不能写成字符串(如
"true") -
"layer0.texture"路径必须可访问:相对路径以res/为根,比如"res/icons/arrow-down.png";若放错位置或拼错名,就当没这行 - 改的是 User 主题,但当前实际启用的是 Default 主题(检查 Preferences → Theme 里选的是哪个)
- 同时启用了多个主题插件(如 Adaptive 或 Aprosopo),它们可能动态覆盖了你的
fold_button规则
调试技巧:临时把 "layer0.tint" 改成 "#f00",如果看到红点,说明 rule 生效;没红点,说明 rule 没加载或 class 名不对。
缩进线(indent guides)和折叠箭头是两套系统,别混着调
很多人搜“折叠线”结果去调 draw_indent_guides,这是垂直对齐线,和侧边栏折叠箭头无关。二者配置完全独立:
-
draw_indent_guides控制的是代码区内的竖线(靠缩进层级渲染) -
fold_button是 gutter 区域的独立 UI 元素(靠 theme 渲染) - 即使关掉
draw_indent_guides,折叠箭头照样显示;反之亦然
真正容易被忽略的复杂点在于:theme 中 fold_button 的 layer 配置和 gutter 的整体高度、字体行高、DPI 缩放都有关联。同一套配置在 100% 和 125% 缩放下可能错位,需手动微调 content_margin 或 layer0.offset —— 这个细节几乎没人提,但实际调试时最耗时间。


















