I use (global-hl-line-mode 1) in order to highlight the current line. This changes the text colours of the highlighted line. Is it possible to highlight while keeping the current syntax highlighting colours (so changing only the background)?
3 Answers
Just for reference, try
(set-face-attribute 'hl-line nil :inherit nil :background "gray6")
-
1Please consider elaborating, explaining how this answers the question.– DrewCommented Jun 8, 2018 at 14:05
-
This is the case by default for me: hl-line-mode
by default uses a face which only specifies a background color. That face is hl-line
which by default just inherits from highlight
. So maybe the problem is simply your that highlight
face specifies both a background and a foreground color. I recommend you M-x customize-face
and either change your highlight
face or your hl-line
face so as to keep its foreground color unspecified.
This works for me, with this in my .emacs. See how the syntax colours are nicely preserved? (thx Yadoo86)
;; highlight line with the cursor, preserving the colours.
(set-face-attribute 'hl-line nil :inherit nil :background "gray80")
(global-hl-line-mode 1)
hl-line-mode
) always overrides text-property highlighting (e.g. font-lock). See the question this is a duplicate of.