Jak podświetlić bieżącą linię tylko w wybranym oknie?

12

P : Czy istnieje sposób, aby hl-line-modepodświetlić bieżącą linię tylko w wybranym oknie?

Kiedy mam wiele okien z hl-line-mode włączonymi buforami , trudno jest na pierwszy rzut oka stwierdzić, które okno jest aktualne.

Mam zmienną cursor-in-non-selected-windowsustawioną tak, nilaby pokazywała kursor tylko w bieżącym oknie, ale ta wizualna wskazówka jest zatłoczona przez podświetlone linie w oknach.

Czy istnieje podobne ustawienie pozwalające hl-line-modewyświetlać podświetloną linię tylko w bieżącym oknie? Co więcej, czy istnieje sposób, aby wyróżnić linie inną twarz, gdy są one w nieaktywnych oknach (analogicznie do mode-line-inactive)?

PS: tak, mogę spojrzeć na linię trybu, aby stwierdzić, które okno jest aktywne, ale robi to oderwałem wzrok od tego, co robię i przerywa koncentrację.

Dan
źródło
Wydaje się, że jeśli aktywujesz tryb linii-hl za pomocą global-hl-line-mode(zamiast wywoływania trybu linii-hl dla każdego bufora), wówczas podświetlona zostanie tylko linia w wybranym oknie.
Iqbal Ansari
@IqbalAnsari: ciekawe! Niestety, chcę tylko, aby korzystać hl-line-modew kilku typach bufor ( occur, mu4e, itd.). Zaraz zacznę szukać w kodzie źródłowym.
Dan

Odpowiedzi:

9

Możesz ustawić hl-line-sticky-flagnanil

hl-line-sticky-flag to zmienna zdefiniowana w hl-line.el.

Brak wartości oznacza, że ​​podświetlenie trybu HL-Line pojawia się we wszystkich oknach. W przeciwnym razie tryb Hl-Line podświetli się tylko w wybranym oknie. Ustawienie tej zmiennej zaczyna obowiązywać przy następnym użyciu polecenia, hl-line-modeaby włączyć tryb Hl-Line.

Ta zmienna nie działa w trybie Global Highlight Line. W tym celu użyj global-hl-line-sticky-flag.

ChillarAnand
źródło
1
Ha! Nie wiedziałem, że to jest opcja i ostatecznie napisałem własną: emacs.stackexchange.com/a/14658/780 . Myślę, że takie podejście ma tę zaletę, że pozwala wybrać inny kolor dla nieaktywnych okien, ale prawdopodobnie przejdę na to znacznie prostsze rozwiązanie.
glucas