Bagaimana saya bisa mengubah warna latar belakang buffer emacs tunggal?

8

Saya ingin membuat buffer interaktif SQL yang terhubung ke DB produksi sangat, sangat jelas, jadi pemikiran saya adalah untuk mengubah latar belakang buffer ke warna merah gelap.

set-background-colortidak bekerja; itu mengatur warna semua frame ke warna yang ditentukan.

Bagaimana saya bisa mengubah latar belakang hanya satu buffer?

Chris R
sumber

Jawaban:

9

Saya telah membuat paket emacs lisp untuk ini: https://github.com/vic/color-theme-buffer-local ia menggunakan pemetaan ulang Emacs 'Face untuk menginstal wajah tema secara lokal.


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

vic
sumber
6

Kamu tidak bisa

Warna latar belakang umumnya khusus bingkai.

Anda dapat mengatur warna latar belakang defaultwajah menjadi frame spesifik menggunakan set-face-background, seperti:

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

Kustomisasi frame umumnya dikontrol melalui parameter frame . Sekarang, jika Anda melihat dekat background-coloruntuk parameter frame , Anda akan melihat bahwa warna latar belakang default diambil dari defaultwajah - itulah sebabnya elisp di atas memiliki efek.

Melewati itu, sepertinya penutupan Anda dapat sampai ke warna latar belakang penyangga adalah dengan menggunakan mode minor buffer-face-mode(ditambahkan pada 23.1) - namun itu hanya mengubah latar belakang untuk teks dari buffer, dan bukan seluruh latar belakang.

Trey Jackson
sumber