sublime text 当前行背景色由 line_highlight 控制,需在配色方案的 globals 中设置,如 "line_highlight": "hsl(210, 10%, 90%)";它与 selection(选中文本)完全独立,改错 key 将无效。

Sublime Text 怎么改选中行的背景色
选中行(即光标所在行)的高亮色由 line_highlight 控制,不是靠修改「选中文字」的颜色配置。很多人搜“选中行颜色”,实际想调的是当前行背景——结果去改 selection 或 foreground,完全无效。
实操建议:
- 打开
Preferences → Color Scheme… → Edit Colors(或直接编辑当前主题的.sublime-color-scheme文件) - 在
globals区块里加或改这一项:"line_highlight": "hsl(210, 10%, 90%)"
(值可以是十六进制、hsl、rgb,但必须是字符串) - 如果用的是经典
.tmTheme格式(旧主题),则要找<key>lineHighlight</key>对应的<string></string> - 改完保存,Sublime 会自动重载;若没生效,检查是否被插件(如 BracketHighlighter)覆盖了高亮层
为什么改了 line_highlight 还没变
常见错误现象:配色文件里写了 line_highlight,重启 Sublime 也没反应——大概率是主题没加载对,或者被更高优先级样式劫持。
排查路径:
- 确认当前使用的主题是「你正在编辑的那个」:
Preferences → Color Scheme里显示的名称要和文件名一致 - 检查是否有插件启用了「行高亮增强」功能(比如
Highlight Line插件默认开启,会屏蔽原生line_highlight) -
line_highlight不支持透明度(alpha),写成rgba(0,0,0,0.1)会被忽略,必须用 hsla 或十六进制带 alpha(如#0000001a) - 某些 UI 主题(如
Adaptive)会强制覆盖代码区样式,此时需在Preferences → Settings – UI中禁用"theme": "adaptive.sublime-theme"或换 UI 主题
Sublime 当前行高亮和选中文本高亮的区别
这两个概念常被混为一谈,但底层控制完全独立,改错地方就白折腾。
关键差异:
-
line_highlight:只影响光标所在整行的背景,不随多光标变化,也不影响折叠区域 -
selection:控制鼠标拖选或Ctrl+D多选时的背景色,只作用于文本范围,不影响行边距或空行 -
selection_border:可选,给选中文本加描边,但仅在部分主题下生效 - 如果同时想弱化当前行、强化选中内容,得两个都调;只调一个,视觉上容易误判「哪行是光标所在行」
macOS / Windows 下 line_highlight 的兼容性注意点
同一份配色方案,在不同系统上渲染效果可能不一致,尤其涉及字体抗锯齿和亚像素渲染时。
实操建议:
- 避免用过浅的灰(如
#f8f8f8)作line_highlight,macOS 暗色模式下可能和背景融为一体 - Windows 上若启用 ClearType,hsl 值比 hex 更稳定;推荐优先用
hsl(210, 5%, 95%)类写法 - 不要依赖系统级高亮(比如 Windows 的 caret blink 效果),Sublime 的
line_highlight是纯绘制层,不受系统设置影响 - 如果用远程开发(如 WSL + VS Code Remote 风格插件),Sublime 本身不走远程渲染,所以这个配置只在本地生效
真正麻烦的不是怎么写那行配置,而是得先分清自己要改的是「当前行」还是「选中内容」——很多人调了一小时,发现根本没动对那个 key。











