Saya menggunakan mode-hl sebagai mode minor untuk cekatan. Bagaimana cara membuat garis yang disorot berubah warna (misalnya menjadi abu-abu) ketika jendela cekatan bukan jendela saat ini, dan kemudian kembali ke warna sorot default ketika jendela cekatan menjadi jendela saat ini lagi?
window
highlighting
focus
Shankar
sumber
sumber
Jawaban:
Saya sudah menerapkan ini untuk
hl-line-mode
menggunakanbuffer-list-update-hook
. Berikut kodenya:Apa yang dilakukan kode ini:
hl-line-inactive
untuk digunakan di windows tidak aktif. Anda dapat menggunakannyaM-x customize-face
untuk memodifikasi atribut wajah ini sesuai selera Anda.buffer-list-update-hook
panggilan ituhl-line-update-face
untuk semua jendela yang terlihat.Jawaban lama
Kode di atas (yang saya gunakan dalam
init
file saya sendiri ) jauh lebih sederhana daripada apa yang saya posting sebelumnya. Terima kasih @Drew atas saran untuk digunakanwalk-windows
. Saya juga membaca lebih lanjut tentang remapping wajah (lihat Face Remapping dalam Manual Emacs Lisp) dan menyadari bahwa saya dapat menghapus banyak kode.Untuk anak cucu, inilah yang awalnya saya posting:
sumber
walk-windows
, yang dapat Anda gunakan untuk beralih ke jendela-jendela bingkai yang terlihat, dll. (Dan +1 untukbuffer-list-update-hook
, yang dipanggil olehselect-window
.)global-hl-line-mode
. Tampaknyaglobal-hl-line-mode
tidak memuathl-line-mode
untuk setiap buffer. Ia menggunakan overlay alih-alih menggunakanhl-line
wajah. Saya sudah mengotak-atiknya untuk sementara waktu tanpa hasil. Ada saran? Haruskah saya membuka pertanyaan terpisah?