Emacs中hl-line/hl-line+覆盖已有高亮背景色如何解决?
解决方案
方案1:使用原生 hl-line 无需额外安装包
通过钩子修改hl-line覆盖层的优先级,使其低于符号高亮的默认优先级即可,配置如下:
(require 'hl-line) ;; 调整hl-line覆盖层优先级为-50,低于常规高亮优先级 (defun my-adjust-hl-line-priority () (when hl-line-overlay (overlay-put hl-line-overlay 'priority -50))) (add-hook 'hl-line-mode-hook #'my-adjust-hl-line-priority) (global-hl-line-mode 1)
方案2:修正 hl-line+ 配置
你之前的配置未生效是因为使用了setq-default且配置顺序有误,调整为如下配置即可:
(add-to-list 'load-path (expand-file-name "~/.emacs.d/packages/hl-line+/")) (require 'hl-line+) ;; 直接设置全局优先级,不要用setq-default (setq hl-line-overlay-priority -50) ;; 优先级设置完成后再开启全局模式 (global-hl-line-mode 1)
额外排查项
如果修改后仍存在覆盖问题,检查你的hl-line face配置,删除:inverse-video、:weight这类会强制覆盖其他样式的属性,仅保留:background背景色设置即可。
内容的提问来源于stack exchange,提问作者ed56
相关产品推荐
相关产品推荐

