¿Cómo resaltar la línea actual solo en la ventana seleccionada?

12

P : ¿hay alguna manera de hl-line-moderesaltar la línea actual solo en la ventana seleccionada?

Cuando tengo varias ventanas que muestran buffers con activado hl-line-mode , es difícil decir, de un vistazo, qué ventana está actualizada.

Tengo la variable cursor-in-non-selected-windowsconfigurada para nilmostrar el cursor solo en la ventana actual, pero esa señal visual está inundada por las líneas resaltadas en las ventanas.

¿Existe una configuración similar que me permita hl-line-modemostrar la línea resaltada solo en la ventana actual? Aún mejor, ¿hay alguna manera de dar a las líneas resaltadas una cara diferente cuando están en ventanas inactivas (análogas a mode-line-inactive)?

PD: sí, puedo mirar la línea de modo para saber qué ventana está activa, pero al hacerlo, me quito los ojos de lo que estoy haciendo y me rompe la concentración.

Dan
fuente
Parece que si activa hl-line-mode con global-hl-line-mode(en lugar de llamar a hl-line-mode para cada búfer), solo se alinea la ventana seleccionada.
Iqbal Ansari
@IqbalAnsari: ¡interesante! Desafortunadamente, sólo quiero usar hl-line-modeen unos pocos tipos de tampón ( occur, mu4e, etc.). Buscaré el código fuente cuando tenga un momento.
Dan

Respuestas:

9

Puedes configurar hl-line-sticky-flaganil

hl-line-sticky-flag es una variable definida en hl-line.el.

No nulo significa que el resaltado del modo HL-Line aparece en todas las ventanas. De lo contrario, el modo Hl-Line solo se resaltará en la ventana seleccionada. La configuración de esta variable surte efecto la próxima vez que use el comando hl-line-modepara activar el modo Hl-Line.

Esta variable no tiene efecto en el modo Global Highlight Line. Para eso, use global-hl-line-sticky-flag.

ChillarAnand
fuente
1
¡Decir ah! No sabía que esta era una opción, y terminé escribiendo la mía: emacs.stackexchange.com/a/14658/780 . Supongo que ese enfoque tiene el beneficio de permitirle elegir un color diferente para ventanas inactivas, pero probablemente cambiaré a esta solución mucho más simple.
glucas