如何仅在选定窗口中突出显示当前行?


12

:是否有办法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在几个缓冲区类型(occurmu4e,等)。一会儿,我将在源代码中进行深入研究。

Answers:


9

您可以设置hl-line-sticky-flagnil

hl-line-sticky-flag是在中定义的变量hl-line.el

不为零表示HL-Line模式高亮显示在所有窗口中。否则,在线模式将仅在所选窗口中突出显示。设置此变量将在您下次使用该命令hl-line-mode打开高压线模式时生效。

此变量在“全局高亮显示线”模式下无效。为此,请使用global-hl-line-sticky-flag


1
哈!我不知道这是一个选择,最终自己写了一个:emacs.stackexchange.com/a/14658/780。我猜这种方法的好处是可以让您为不活动的窗口选择不同的颜色,但是我可能会改用这种简单得多的解决方案。
glucas
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.