minibuffer-setup-hook
จะใช้เฉพาะเมื่อมีการตั้งค่า minibuffer เช่นเปิดใช้งานไม่ใช่เมื่อปิดใช้งาน
minibuffer-exit-hook
จะมีผลเมื่อออกจาก minibuffer minibuffer-inactive-mode-hook
นอกจากนี้ยังมี
แต่ถึงแม้ว่าสิ่งเหล่านั้นจะเริ่มต้นการเปลี่ยนสี (ดังแสดงโดยการเพิ่ม(debug)
ที่จุดเริ่มต้นของฟังก์ชั่นขอและจากนั้นผ่านการดีบักด้วยd
) ดูเหมือนว่าkill-local-variables
จะลบสีที่เพิ่มเข้ามาในบางจุด ตอนนี้ฉันไม่มีเวลาตรวจสอบเพิ่มเติม แต่บางทีคุณสามารถทำได้หรือบางทีคนอื่นอาจมีวิธีแก้ปัญหาอย่างรวดเร็ว ขออภัยที่ให้ข้อมูลที่ไม่สมบูรณ์เท่านั้น
ต้องไปตอนนี้ - \` \*Minibuf-[0-9]+\*\'
แต่อย่างรวดเร็วฉันคาดเดาว่าบางทีคุณอาจไม่จำเป็นต้องซอกับตะขอที่ทั้งหมดและคุณก็สามารถทำใบหน้าแมปสำหรับบัฟเฟอร์ทั้งหมดที่มีชื่อการจับคู่
FWIW ฉันใช้กรอบ minibuffer แยกต่างหากและฉันใส่มันลงใน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)))))))