唯一可靠方式是手动编辑 ~/.atom/styles.less,在末尾添加含 ::shadow 的 CSS 代码以高亮当前光标行,其他方法均因 API 不兼容或逻辑缺陷失效。

直接改 styles.less 是唯一可靠方式
Atom 已于 2022 年底终止支持,highlight-line 插件早在 2019 年就停止更新,现在装了大概率报 Cannot read property 'onDidChangeActivePaneItem' of undefined——这不是你配置错,是插件和当前 Atom 核心 API 完全不兼容。
别折腾 fork 版(比如 highlight-line-plus),它们没重写监听逻辑,依赖的 atom-utils 也已废弃,强行启用后高亮常错位(尤其在折叠代码块或多光标时)。
真正能用的路径只有一条:手动编辑 ~/.atom/styles.less。
- 打开 Atom → Atom → Stylesheet…(macOS)或 Edit → Stylesheet…(Windows/Linux)
- 在文件末尾加这段 CSS:
.atom-text-editor::shadow .line.cursor-line { background-color: rgba(255, 220, 120, 0.1) !important; border-left: 3px solid #ffcc00 !important; } - 保存即生效,无需重启
::shadow 必须保留,不能改成 ::part 或删掉
Atom 当前版本仍基于旧 Shadow DOM 实现,::shadow 是硬性要求。换成现代 CSS 伪元素(如 ::part(line))或直接删掉,样式完全不生效。
这个选择器匹配的是“当前光标所在行”的 DOM 节点,不是整块编辑区,也不是某类语法 token。
-
.line.cursor-line是 Atom 内置 class,专指活动行,别试图用.highlight-line或其他自定义 class 替代 - 若想高亮多行(比如第 5、12、47 行),CSS 无法做到——它没有行号选择器,
:nth-of-type()在<div class="line">上无效 - 需要精确行号高亮?得换编辑器,VS Code 支持
editor.highlightLine扩展或自定义装饰器 API
颜色和边框参数影响实际可见性
深色主题下,background-color 的 alpha 值低于 0.2 就几乎看不见;浅色主题则容易被文字覆盖。边框太细(border-left: 1px)在高 DPI 屏幕上会糊成一条线。
- 推荐值:
rgba(255, 204, 0, 0.15)+border-left: 2px solid #ffcc00 - 避免用纯色背景(如
#ffff00),会遮挡语法高亮;透明度建议控制在0.1–0.3区间 - 如果光标文字被背景盖住,调低 alpha 或换更淡的主色(比如
#ffeb3b)
别指望它跨文件或响应式更新
这个高亮只作用于当前焦点标签页的活动行,切换标签页、打开新文件、甚至拖动窗口大小都不会触发重绘——它不监听任何事件,纯靠 Atom 渲染引擎自动应用 class。
如果你需要“在调试时临时标记某几行”,它做不到;如果希望“保存后下次打开还亮着”,也不行。它的定位就是视觉辅助,不是标注工具。
真要持久标记,要么用注释(// TODO: 这里要重构),要么导出到 VS Code 用 TODO Highlight 插件——Atom 的生态里,这类需求早就没人维护了。

















