minibuffer-setup-hook
इसका उपयोग केवल तभी किया जाता है जब मिनीबफ़र को सेट किया जाता है, अर्थात, सक्रिय किया जाता है, जब इसे निष्क्रिय नहीं किया जाता है।
minibuffer-exit-hook
मिनीबफ़र से बाहर निकलने पर प्रभावी होता है। भी है minibuffer-inactive-mode-hook
।
लेकिन हालांकि वे रंग परिवर्तन की शुरुआत करते हैं (जैसा (debug)
कि हुक फ़ंक्शन की शुरुआत में जोड़कर दिखाया जाता है , और फिर डिबगर के साथ कदम रखते हुए d
), ऐसा लगता है कि kill-local-variables
कुछ बिंदु पर जोड़ा गया रंग निकाल देता है। मेरे पास अभी और जाँच करने का समय नहीं है, लेकिन शायद आप कर सकते हैं, या शायद किसी और के पास त्वरित समाधान है। केवल अधूरी जानकारी प्रदान करने के लिए क्षमा करें।
अब जाना होगा - लेकिन जल्दी से, मैं अनुमान लगा रहा हूं कि शायद आपको हुक के साथ फिडेल करने की आवश्यकता नहीं है, और आप बस नाम मिलान के साथ सभी बफ़र्स के लिए चेहरे का रीमैपिंग कर सकते हैं \` \*Minibuf-[0-9]+\*\'
।
FWIW, मैं एक अलग मिनीबफ़र फ्रेम का उपयोग करता हूं , और मैंने इसे minibuffer-exit-hook
फ्रेम बैकग्राउंड को कलर करने के लिए रखा है :
(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)))))))