Как выделить текущую строку только в выбранном окне?

12

Q : есть ли способ hl-line-modeвыделить текущую строку только в выбранном окне?

Когда у меня есть несколько окон, показывающих буферы с включенным hl-line-mode , трудно сразу определить, какое окно является текущим.

У меня есть переменная cursor-in-non-selected-windowsнабор для , nilчтобы показать курсор только в текущем окне, но визуальный сигнал завален на подсвеченные линии в окнах.

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

PS: да, я могу посмотреть на строку режима, чтобы сказать, какое окно активно, но это отвлекает меня от того, что я делаю, и нарушает мою концентрацию.

Дэн
источник
Кажется, что если вы активируете hl-line-mode с помощью global-hl-line-mode(вместо вызова hl-line-mode для каждого буфера), то будет выделена только строка выбранного окна.
Икбал Ансари
@IqbalAnsari: интересно! К сожалению, я только хочу , чтобы использовать hl-line-modeв нескольких типах буфера ( occur, mu4eи т.д.). Я покопаюсь в исходном коде, когда получу момент.
Дан

Ответы:

9

Вы можете установить hl-line-sticky-flagнаnil

hl-line-sticky-flag - это переменная, определенная в hl-line.el.

Не ноль означает, что подсветка режима HL-Line появляется во всех окнах. В противном случае режим Hl-Line будет выделен только в выбранном окне. Установка этой переменной вступит в силу при следующем использовании команды hl-line-modeдля включения режима Hl-Line.

Эта переменная не действует в режиме Global Highlight Line. Для этого используйте global-hl-line-sticky-flag.

ChillarAnand
источник
1
Ха! Я не знал, что это был вариант, и в итоге написал свой собственный: emacs.stackexchange.com/a/14658/780 . Я полагаю, что этот подход имеет то преимущество, что вы можете выбрать другой цвет для неактивных окон, но я, вероятно, переключусь на это гораздо более простое решение.
glucas