Как определить хорошую подсветку лица

9

Я хотел бы использовать global-hl-line-mode, но некоторые из моих тем лишены хорошего лица. Есть ли общий способ определить один (это не обратный цвет)? Я хотел бы сохранить подсветку синтаксиса, которая сломалась в моих попытках.

Максимум
источник
Что именно вы подразумеваете под «способ определения»? Вы спрашиваете о предложениях для появления? О том, как определить лицо, которое дает данный вид? О том, как сделать определение лица заменяющим эффект определения лица темы? Вы пытались настроить лицо, используемое global-hl-line-mode? В итоге, пожалуйста, уточните вопрос - это поможет людям помочь вам.
Дрю

Ответы:

17

Это действительно вопрос мнения, но я всегда обнаруживал, что hl-lineлучше сделать фон с немного темнее, чем по умолчанию.

Я хотел бы сохранить подсветку синтаксиса, которая сломалась в моих попытках.

Если вы хотите сохранить подсветку синтаксиса, убедитесь, что атрибут hl-lineлица :foregroundравен nil, а затем установите для :backgroundатрибута то, что вам нужно.

Вот как это выглядит для меня с этими настройками:

(set-face-attribute 'default nil :background "gray15")
(set-face-attribute 'hl-line nil :foreground nil :background "gray5")

введите описание изображения здесь

Судя по всему, вам не нужны жестко заданные цвета, потому что вы будете менять темы. Вы можете иметь Emacs автоматически установить :backgroundна hl-lineлицо , чтобы цвет немного темнее , чем текущий по умолчанию , :backgroundкак это:

(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)

Это позволит установить цвет фона на 10% темнее, чем фон по умолчанию при каждом включении. global-hl-line-mode

Джордон Биондо
источник