Estou usando o hl-mode como um modo menor para habilidoso. Como faço para que a linha destacada mude de cor (por exemplo, para cinza) quando a janela hábil não é a janela atual e depois para a cor de destaque padrão quando a janela hábil se torna a janela atual novamente?
window
highlighting
focus
Shankar
fonte
fonte
Respostas:
Eu implementei isso
hl-line-mode
usando obuffer-list-update-hook
. Aqui está o código:O que esse código está fazendo:
hl-line-inactive
a ser usada em janelas inativas. Você pode usarM-x customize-face
para modificar os atributos dessa face ao seu gosto.buffer-list-update-hook
isso chamahl-line-update-face
todas as janelas visíveis.Resposta antiga
O código acima (que eu estou usando no meu próprio
init
arquivo) é muito mais simples do que o que eu originalmente publiquei. Obrigado @Drew pela sugestão de usowalk-windows
. Também li mais sobre o remapeamento de rosto (consulte Remapeamento de rosto no Emacs Lisp Manual) e percebi que poderia remover muito do código.Para a posteridade, aqui está o que eu postei originalmente:
fonte
walk-windows
, que você pode usar para iterar sobre as janelas de quadros visíveis etc. (E +1 parabuffer-list-update-hook
, o que é chamado porselect-window
).global-hl-line-mode
. Parece queglobal-hl-line-mode
não carregahl-line-mode
para cada buffer. Ele usa uma sobreposição em vez de usar ahl-line
face. Estou brincando com isso há um tempo, sem sorte. Alguma sugestão? Devo abrir uma pergunta separada?