minibuffer-setup-hook
wird nur verwendet, wenn der Minibuffer eingerichtet, dh aktiviert ist, nicht, wenn er deaktiviert ist.
minibuffer-exit-hook
wird wirksam, wenn der Minibuffer beendet wird. Es gibt auch minibuffer-inactive-mode-hook
.
Obwohl diese die Farbänderung initiieren (wie durch Hinzufügen (debug)
am Anfang der Hook-Funktion und anschließendes Durchlaufen des Debuggers mit gezeigt d
), scheint es, dass kill-local-variables
die hinzugefügte Farbe irgendwann entfernt wird. Ich habe jetzt keine Zeit, weiter zu prüfen, aber vielleicht können Sie es, oder vielleicht hat jemand anderes eine schnelle Lösung. Entschuldigung, dass Sie nur unvollständige Informationen angegeben haben.
Ich muss jetzt gehen - aber schnell, ich vermute, dass Sie vielleicht überhaupt nicht mit Haken herumspielen müssen, und Sie können einfach das Gesicht für alle Puffer mit passenden Namen neu zuordnen \` \*Minibuf-[0-9]+\*\'
.
FWIW, ich verwende einen separaten Minibuffer-Rahmen und lege diesen an minibuffer-exit-hook
, um den Rahmenhintergrund einzufärben :
(defun 1on1-color-minibuffer-frame-on-exit ()
"Change background of minibuffer frame to reflect the minibuffer depth.
Use this when reducing the minibuffer recursion depth."
(when 1on1-minibuffer-frame
(save-window-excursion
(select-frame 1on1-minibuffer-frame)
(cond ((= (minibuffer-depth) 2)
(set-background-color 1on1-active-minibuffer-frame-background))
((< (minibuffer-depth) 2)
(set-background-color 1on1-inactive-minibuffer-frame-background))
(t
(set-background-color (hexrgb-increment-hue ; Change bg hue slightly.
(frame-parameter nil 'background-color)
1on1-color-minibuffer-frame-on-exit-increment)))))))