J'utilise le mode hl comme mode mineur pour habile. Comment puis-je changer la couleur de la ligne en surbrillance (par exemple en gris) lorsque la fenêtre habile n'est pas la fenêtre actuelle, puis revenir à la couleur de surbrillance par défaut lorsque la fenêtre habile redevient la fenêtre actuelle?
window
highlighting
focus
Shankar
la source
la source
Réponses:
J'ai implémenté cela pour
hl-line-mode
utiliser lebuffer-list-update-hook
. Voici le code:Que fait ce code:
hl-line-inactive
à utiliser dans les fenêtres inactives. Vous pouvez utiliserM-x customize-face
pour modifier les attributs de ce visage à votre goût.buffer-list-update-hook
cela qui appellehl-line-update-face
toutes les fenêtres visibles.Ancienne réponse
Le code ci-dessus (que j'utilise dans mon propre
init
fichier) est beaucoup plus simple que ce que j'ai initialement publié. Merci @Drew pour la suggestion à utiliserwalk-windows
. J'ai également lu plus sur le remappage de visage (voir Remappage de visage dans le manuel Emacs Lisp) et j'ai réalisé que je pouvais supprimer une grande partie du code.Pour la postérité, voici ce que j'ai initialement publié:
la source
walk-windows
, que vous pouvez utiliser pour parcourir les fenêtres des cadres visibles, etc. (Et +1 pourbuffer-list-update-hook
, qui est appelé parselect-window
.)global-hl-line-mode
. Il semble queglobal-hl-line-mode
cela ne se charge pashl-line-mode
pour chaque tampon. Il utilise une superposition au lieu d'utiliser lehl-line
visage. Je joue avec ça depuis un moment sans chance. Aucune suggestion? Dois-je ouvrir une question distincte?