Respostas:
Isso é realmente uma questão de opinião, mas sempre achei que hl-line
é melhor fazer com que o fundo seja um pouco mais escuro do que o padrão.
Eu gostaria de manter o destaque da sintaxe, que foi quebrado nas minhas tentativas.
Se você deseja manter o realce da sintaxe, verifique se hl-line
o :foreground
atributo da face é nulo e defina o :background
atributo como desejar.
Aqui está o que parece para mim com essas configurações:
(set-face-attribute 'default nil :background "gray15")
(set-face-attribute 'hl-line nil :foreground nil :background "gray5")
Pelo que parece, você não deseja cores codificadas porque estará mudando os temas. Você pode fazer com que o emacs defina automaticamente :background
a hl-line
face com uma cor um pouco mais escura que o padrão atual :background
como este:
(require 'color)
(defun set-hl-line-color-based-on-theme ()
"Sets the hl-line face to have no foregorund and a background
that is 10% darker than the default face's background."
(set-face-attribute 'hl-line nil
:foreground nil
:background (color-darken-name (face-background 'default) 10)))
(add-hook 'global-hl-line-mode-hook 'set-hl-line-color-based-on-theme)
Isso definirá o fundo do rosto com uma cor 10% mais escura que o fundo padrão sempre que você ativar global-hl-line-mode
global-hl-line-mode
? Em suma, especifique a pergunta com mais clareza - isso ajudará as pessoas a ajudá-lo.