minibuffer-setup-hook
chỉ được sử dụng khi thiết bị thu nhỏ được thiết lập, tức là được kích hoạt chứ không phải khi nó bị vô hiệu hóa.
minibuffer-exit-hook
có hiệu lực khi thoát khỏi xe buýt nhỏ. Cũng có minibuffer-inactive-mode-hook
.
Nhưng mặc dù những thứ này bắt đầu thay đổi màu sắc (như được hiển thị bằng cách thêm (debug)
vào lúc bắt đầu chức năng hook, và sau đó bước qua trình gỡ lỗi với d
), có vẻ như nó kill-local-variables
sẽ loại bỏ màu được thêm vào tại một số điểm. Bây giờ tôi không có thời gian để kiểm tra thêm, nhưng có lẽ bạn có thể, hoặc có lẽ ai đó có giải pháp nhanh chóng. Xin lỗi vì chỉ cung cấp thông tin không đầy đủ.
Phải đi ngay bây giờ - nhưng nhanh chóng, tôi đoán rằng có lẽ bạn không cần phải nghịch ngợm với móc, và bạn chỉ có thể thực hiện ánh xạ lại khuôn mặt cho tất cả các bộ đệm có khớp tên \` \*Minibuf-[0-9]+\*\'
.
FWIW, tôi sử dụng một khung hình nhỏ gọn riêng biệt và tôi đặt nó lên minibuffer-exit-hook
để tô màu nền khung:
(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)))))))