应直接修改 styles.less 文件自定义高亮,而非安装已停更的 highlight-line 插件;在文件末尾添加 .atom-text-editor::shadow .line.cursor-line { background-color: rgba(255, 220, 120, 0.1) !important; border-left: 3px solid #ffcc00 !important; } 即可生效。

直接改 styles.less,别装 highlight-line
插件 highlight-line 已彻底失效,2019 年后没更新,Atom v1.38 以上全报 Cannot read property 'onDidChangeActivePaneItem' of undefined——这不是你配错了,是 API 断了。现在唯一可靠的方式,是手动编辑 ~/.atom/styles.less。
打开 Atom → Atom → Stylesheet…(macOS)或 Edit → Stylesheet…(Windows/Linux),在文件末尾加:
.atom-text-editor::shadow .line.cursor-line {
background-color: rgba(255, 220, 120, 0.1) !important;
border-left: 3px solid #ffcc00 !important;
}
::shadow 是旧 Shadow DOM 语法,当前 Atom 版本仍依赖它,删掉会失效;!important 必须保留,否则被主题样式覆盖。
border-left 比 background-color 更稳,尤其在折叠代码时
用纯背景色高亮(比如 background-color: #333)在代码折叠区域容易错位或消失,因为折叠后 DOM 结构变化,.line 的高度和定位可能失准。而边框是绝对定位的装饰层,受折叠影响小。
- 推荐优先设
border-left或border-right,宽度建议2px–4px,太细看不清,太粗挤占编辑空间 - 颜色别用纯白/纯黑,尤其深色主题下:比如
#ff6b6b、#4ecdc4这类带灰度的亮色更协调 - 若想只高亮当前行不干扰光标,把
background-color的 alpha 值压到0.05–0.1,避免遮挡文字
多光标编辑时边框只显示一次,这是正常行为
.cursor-line 类只绑定到「当前活动 pane item」的光标所在行,不是每个光标都渲染一个边框。所以当你按住 Ctrl(macOS 是 Cmd)+ 鼠标多点,只有最后一个激活的光标所在行有边框——这不是 bug,是 Atom 渲染机制决定的。
如果真要多行同时高亮边框,得靠 highlight-selected 配合手动触发:
关掉它的 Clear highlights when cursor moves,然后 Ctrl+点击关键词,再用 styles.less 单独定义 .highlight-selected .region 的边框样式。
换主题后边框消失?检查语法主题是否重置了 ::shadow 规则
某些第三方语法主题(如 seti-syntax)会在自己的 CSS 里重写 .atom-text-editor::shadow 下的所有规则,把你加的 .cursor-line 覆盖掉。
验证方法:临时切回官方 one-dark-syntax,看边框是否恢复。确认是主题冲突后,有两个解法:
- 在
styles.less里把选择器写得更暴力:html .atom-text-editor::shadow .line.cursor-line - 或者直接卸载问题主题,换
base16-tomorrow-dark-theme这类轻量级主题,它们通常不干涉编辑器底层样式
真正容易被忽略的是:边框颜色和编辑器背景亮度必须匹配。设了 border-left: 3px solid #fff 在 #121212 背景上看着刺眼,但换成 #aaaaaa 就刚好——调色不是选“好看”,而是选“能看清”。

















