Como destacar a linha atual apenas na janela selecionada?

12

P : existe uma maneira de hl-line-modedestacar a linha atual apenas na janela selecionada?

Quando eu tenho várias janelas mostrando buffers ativados hl-line-mode , é difícil dizer, de relance, qual janela está atual.

Eu tenho a variável cursor-in-non-selected-windowsconfigurada para nilmostrar o cursor apenas na janela atual, mas essa sugestão visual é inundada pelas linhas destacadas nas janelas.

Existe uma configuração semelhante para permitir que eu hl-line-modemostre a linha destacada apenas na janela atual? Melhor ainda, existe uma maneira de dar às linhas destacadas uma face diferente quando estão em janelas inativas (análoga a mode-line-inactive)?

PS: sim, posso olhar para a linha de modo para saber qual janela está ativa, mas isso tira meus olhos do que estou fazendo e interrompe minha concentração.

Dan
fonte
Parece que se você ativar o modo hl-line com global-hl-line-mode(em vez de chamar o modo hl-line para cada buffer), apenas a linha da janela selecionada será realçada.
Iqbal Ansari
@IqbalAnsari: interessante! Infelizmente, eu só quer usar hl-line-modeem alguns tipos de buffer ( occur, mu4e, etc.). Vou procurar o código-fonte quando chegar um momento.
Dan

Respostas:

9

Você pode definir hl-line-sticky-flagcomonil

hl-line-sticky-flag é uma variável definida em hl-line.el.

Diferente de zero significa que o destaque do modo HL-Line aparece em todas as janelas. Caso contrário, o modo Hl-Line será destacado apenas na janela selecionada. A configuração dessa variável entra em vigor na próxima vez que você usar o comando hl-line-modepara ativar o modo Hl-Line.

Essa variável não tem efeito no modo Linha de destaque global. Para isso, use global-hl-line-sticky-flag.

ChillarAnand
fonte
1
Ha! Eu não sabia que isso era uma opção e acabei escrevendo o meu: emacs.stackexchange.com/a/14658/780 . Acho que essa abordagem tem o benefício de permitir que você escolha uma cor diferente para janelas inativas, mas provavelmente mudarei para essa solução muito mais simples.
glucas