ฉันจะเปลี่ยนสีพื้นหลังของบัฟเฟอร์ emacs เดียวได้อย่างไร


8

ฉันต้องการให้บัฟเฟอร์ SQL แบบโต้ตอบที่เชื่อมต่อกับฐานข้อมูลการผลิตชัดเจนมากดังนั้นความคิดของฉันคือการเปลี่ยนพื้นหลังของบัฟเฟอร์เป็นสีแดงเข้ม

set-background-colorไม่ทำงานแม้ว่า; มันตั้งค่าสีของเฟรมทั้งหมดเป็นสีที่ระบุ

ฉันจะเปลี่ยนพื้นหลังของบัฟเฟอร์เดียวได้อย่างไร

คำตอบ:


9

ฉันได้สร้างแพ็คเกจ lisp ของ emacs สำหรับสิ่งนี้: https://github.com/vic/color-theme-buffer-local โดยใช้ Emacs 'Face remapping เพื่อติดตั้งธีมใบหน้าในเครื่อง


(require 'color-theme-buffer-local)
(add-hook 'java-mode-hook (lambda nil (color-theme-buffer-local 'color-theme-robin-hood (current-buffer)) ))


6

คุณทำไม่ได้

สีพื้นหลังโดยทั่วไปจะเป็นแบบเฉพาะเฟรม

คุณสามารถตั้งค่าสีพื้นหลังของdefaultใบหน้าให้เป็นเฟรมโดยใช้set-face-backgroundเช่น:

(set-face-background 'default "#CCCCCC" (window-frame (frame-selected-window))

การปรับแต่งกรอบจะถูกควบคุมโดยทั่วไปผ่านพารามิเตอร์กรอบ ทีนี้ถ้าคุณดูbackground-colorพารามิเตอร์เฟรมอย่างใกล้ชิดคุณจะเห็นว่าสีพื้นหลังเริ่มต้นมาจากdefaultใบหน้าซึ่งเป็นสาเหตุที่ elisp ด้านบนมีผล

ที่ผ่านมาดูเหมือนว่าการปิดที่คุณสามารถมากับสีพื้นหลังของบัฟเฟอร์คือโดยใช้โหมดรองbuffer-face-mode(เพิ่มใน 23.1) - อย่างไรก็ตามจะเปลี่ยนเฉพาะพื้นหลังสำหรับข้อความของบัฟเฟอร์ไม่ใช่พื้นหลังทั้งหมด


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.