Sublime Text 不支持真实边框,所谓“边框”实为背景色与编辑器底色的视觉落差;需用半透明 background(alpha 0.3–0.5)、调整色相/明度、设置 foreground 及 corner_radius 分别控制 selection 与 region 圆角,并确保启用的是 User 目录下修改后的主题文件。

Sublime Text 不支持给选中文本加真实边框(border),所谓“边框感”只能靠 background 的透明度、色值对比和边缘柔和过渡来模拟。
为什么改了 selection 还是没出现边框效果?
因为 Sublime 原生不提供 border_width、border_color 这类配置项,所有尝试在 .sublime-color-scheme 里写 CSS 风格边框的写法都会被忽略。你看到的“边框”,其实是背景色与编辑器底色之间的视觉落差。
- 误以为能用
"border": "1px solid #ff0"—— 这种写法完全无效,JSON 解析会报错或静默丢弃 - 改的是
Packages/Color Scheme - Default/下的只读文件,没复制到Packages/User/目录下覆盖 - 文件保存为
xxx.sublime-color-scheme.txt或含中文/空格,Sublime 加载失败 - 主题中存在多条
"name": "Selection",但只改了前面那条;实际生效的是最后一条
怎么让 selection 看起来像带“内边框”或柔边?
核心思路是降低 background 透明度,并微调色相/明度,让它和 editor 背景形成轻微色差,而非硬切块。
- 用
hsla(210, 20%, 30%, 0.4)或rgba(58, 64, 90, 0.4)替代纯 hex,alpha 控制在0.3–0.5区间较安全 - 避免
"#000000"或"#FFFFFF"作background,否则会盖住foreground文字 - 显式设置
"foreground",比如"#ffffff",尤其当background较暗时提升可读性 - 略微提高
background的明度(lightness)或降低饱和度(saturation),制造“褪晕”边缘感
region 和 selection 的圆角能统一吗?
可以,但要注意二者控制范围不同:selection 管鼠标拖选/快捷键选中的文本块;region 管搜索高亮、括号匹配、插件标记等。它们都支持 corner_radius,但必须分别设置。
-
selection规则里加"corner_radius": 4,适用于普通选区 -
region规则里也加同值,才能让 Find 高亮、Bookmarks 等有同样圆角 -
corner_radius是像素值,不随 UI 缩放变化;高分屏建议设为6或8才明显 - 某些主题把搜索高亮归到
region.redish,此时只改通用region不生效,得单独补一条
真正容易被忽略的是:改完 .sublime-color-scheme 后,必须确认当前启用的主题就是你编辑的那个文件——菜单 Preferences → Color Scheme 里显示的名称要完全一致,且不能是只读路径下的原文件。

















