Emacs: конфликты hl-line-mode с выделенной фразой
Я выделяю текущую строку, оценивая:
(hl-line-mode)
Он также может быть установлен глобально:
(global-hl-line-mode nil)
Проблема заключается в том, что выделение строки подчеркивает highlight-phrase
. Поэтому мой вопрос: "как выделить как текущую строку, так и данную фразу в этой строке?"
Ответы
Ответ 1
Оба highlight-phrase
и hl-line
применяют лица, у которых есть фоновый цвет. hl-line
выигрывает, потому что использует оверлей, а overlays всегда переопределяет текстовые свойства, которые highlight-phrase
использует. Я предлагаю вам обойти это, настроив лицо hi-yellow
, чтобы использовать яркий цвет переднего плана вместо цвета фона или даже окна.
Ответ 2
Итак, вот некоторые, безусловно, не идеальные решения. У:
M-x customize-face
emacs затем спрашивает вас, какой из них, и я сделал
hl-line
Затем я отключил флаг "наследовать" (последний) и включил флаг "переднего плана", - он говорил "черный" - я сделал его красным. После этого вы должны сохранить все в верхней части страницы - либо - только для этого seccion, либо для будущих сеансов.
Что это! Таким образом, текущий текст строки не соответствует красному шрифту, а highlight-phrase
выделяет фразу с желтым цветом.
Ответ 3
Изменить: предыдущее решение, которое я написал, не работает, но это нужно.
Выделение имеет два режима: один для буферов с блокировкой шрифтов (который использует блокировку шрифтов) и один для без (который использует наложение). Решение, которое я нашел, состояло в том, чтобы просто заставить подсветку использовать оверлей все время и, следовательно, иметь более высокий приоритет над hl-строкой (поскольку более короткие оверлеи имеют неявно более высокий приоритет, учитывая одно и то же значение priority
).
Чтобы сделать это, я вошел в hi-lock.el
и заменил каждый экземпляр font-lock-fontified
на nil
. Обязательно M-x byte-compile-file
затем обновить hi-lock.elc
.