折叠图标不显示的根本原因是主题文件未定义 fold_button 类,需在 User/ 主题中添加含 layer0.texture: null 和宽高的配置,并确保 color scheme 定义 fold_marker scope。

折叠图标不显示?先查 theme 文件里有没有 fold_button
Sublime 不从 Preferences.sublime-settings 读取折叠图标配置,所有样式控制都在当前启用的 .sublime-theme 文件里。如果你改了设置但箭头还是没出来,大概率是 theme 没定义 fold_button 这个 class。
打开 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"条目,重复或嵌套错层会导致失效 - 如果主题用了 layer0.tint 方案(ST4+),但
layer0.texture没设为null,图片和纯色会打架,图标可能半透明或错位
想换颜色或大小?优先用 layer0.tint + width/height
ST4 开始支持纯色折叠按钮,比 PNG 更稳、更适配高 DPI 屏幕。关键不是调颜色,而是显式关闭图片并补全尺寸:
[
{
"class": "fold_button",
"layer0.texture": null,
"layer0.tint": [160, 160, 160],
"layer0.opacity": 0.85,
"content_margin": [2, 2],
"width": 14,
"height": 14
}
]注意:width 和 height 必须写,否则按钮会塌成一条线;content_margin 控制图标与边框间距,太小会贴边,太大则点击区域变窄。
-
layer0.tint是 RGB 数组,值范围 0–255;[0,0,0] 是黑,[255,255,255] 是白,中间值按需微调 - 如果希望图标随 color scheme 的
fold_marker颜色动态变化,得把layer0.tint改成"layer0.color": "fold_marker"(需 color scheme 显式定义该 scope) - 高 DPI 屏上图标模糊?不是缩放问题,是
font_options里开了"subpixel_antialias"——关掉它,或者换用"directwrite"(Windows)
自定义 PNG 图标时,路径和尺寸必须严格匹配
用图片方案时,layer0.texture 的路径是相对于 Packages/ 目录的,不是绝对路径,也不是相对 theme 文件的位置。
比如你想放一张 fold.png,应该放在:Packages/User/fold.png,然后写:"layer0.texture": "User/fold.png"。
- PNG 必须带 alpha 通道,否则背景色会糊成一团
- 推荐尺寸:12×12 或 16×16 像素;更大尺寸在高 DPI 下也不自动缩放,只会拉伸变形
- 文件名别含空格或中文,路径里也别用反斜杠
\(Windows 下也要用正斜杠/) - 改完保存后,不用重启 Sublime,但要切到别的 tab 再切回来,theme 才会热重载
折叠图标颜色不随主题变?检查 color scheme 是否定义了 fold_marker
即使 theme 里写了 "layer0.color": "fold_marker",如果当前 color scheme(.sublime-color-scheme 文件)没声明 fold_marker 这个 scope,图标照样是默认灰或完全透明。
打开你用的 color scheme 文件,在 rules 数组里加一条:
{
"scope": "fold_marker",
"foreground": "color(#a0a0a0)"
}注意:foreground 值必须是合法颜色字符串,color() 函数写法在 ST4+ 支持,老版本请用十六进制如 "#a0a0a0"。
- 别指望 syntax-specific 设置能覆盖 fold_marker 颜色——它只作用于代码文本,不作用于折叠控件
- 某些第三方 color scheme(比如 Monokai Extended)压根没定义这个 scope,得手动补
- 改完 color scheme 后,需要重新加载语法(比如切换一下语言再切回来),图标才会响应新颜色
折叠图标的真正复杂点不在怎么换,而在于 theme、color scheme、DPI 缩放、font_options 四者之间隐式的耦合关系——任何一个环节没对齐,图标就可能消失、错位、模糊或颜色失控。动手前先确认这四样东西的状态,比反复试错快得多。

















