当前行背景不显示是因为配色方案未定义linehighlight规则,需在.sublime-color-scheme的rules中添加{"name":"current line","scope":"region.line","background":"hsla(210,10%,85%,0.2)"}。

当前行背景不显示,大概率不是设置没开,而是颜色被吃掉了——highlight_line 只是开关,真起作用得靠配色方案里的 lineHighlight 规则。
怎么确认 highlight_line 已启用
这个选项必须显式打开,Sublime 不会默认开启。它不控制颜色,只决定是否渲染高亮层。
- 按
Ctrl+,(Win/Linux)或Cmd+,(macOS)打开Preferences.sublime-settings - 在右侧用户设置中添加:
"highlight_line": true - 保存后立即生效,无需重启;如果仍无反应,说明高亮逻辑已触发,但视觉上“看不见”
- 注意:命令面板、查找框、侧边栏等非编辑视图区域不会应用该高亮
为什么开了 highlight_line 却没颜色
最常见原因是当前配色方案(.sublime-color-scheme)没定义 lineHighlight,或者定义了但被 UI 主题/插件覆盖。
- 菜单 →
Preferences → Color Scheme,记下当前方案名(如Monokai.sublime-color-scheme) - 用
PackageResourceViewer: Open Resource命令打开该文件,搜索"lineHighlight" - 若搜不到,说明主题压根没声明该规则——即使
highlight_line为true,也无背景可画 - 某些 UI 主题(如
Adaptive)会重绘 gutter 区域,导致高亮背景无法穿透到正文行;临时切换为Default主题验证 - 插件如
BracketHighlighter或自定义Widget.sublime-settings中的gutter样式也可能压制高亮层
怎么修改当前行背景色
颜色只能在配色方案文件里改,改 Preferences.sublime-settings 或 UI 主题文件都无效。
- 在打开的
.sublime-color-scheme文件中,找到"rules"数组 - 插入新规则(注意 JSON 格式,逗号不能多也不能少):
{"name": "Current Line", "scope": "region.line", "background": "hsla(210, 10%, 85%, 0.2)"} - 支持格式:十六进制(
#RRGGBB或#RRGGBBAA)、hsla()、rgb();不支持命名色(如red) - ST4 可实时刷新,ST3 建议保存后手动按
Ctrl+R或重启 Sublime - 若已有同名
"scope": "line"规则,你的新规则可能被覆盖——把它放在"rules"数组最前面更稳妥
悬停行号时高亮整行?原生不支持
Sublime Text 没有 highlight_on_gutter_hover 这类内置选项。所谓“鼠标移到行号就高亮那行”,全是第三方插件模拟行为。
- 原生
highlight_line只响应光标位置,和鼠标是否悬停在 gutter 无关 - 要实现该效果,需安装插件如
Highlight Line,它通过监听on_hover事件动态注入样式 - 这类插件会接管高亮逻辑,可能屏蔽原生
lineHighlight规则;若颜色异常,先禁用插件排查 - 注意:插件高亮和原生高亮使用不同 scope(如
region.linevsline),混用时容易冲突
真正容易被忽略的是 scope 的匹配精度:region.line 和 line 在部分主题中表现不同;有些主题用前者,有些用后者,改错 scope 就等于白改。动手前先用 Ctrl+Shift+P → Developer: Show Scope Name 看当前光标所在行的实际 scope 是什么。











