Modeline saya berantakan. Bisakah saya membuatnya menampilkan gambar alih-alih nama mode?
Saya dapat menggunakan unicode Emoji (seperti 🐍 untuk Python atau 🐓 untuk Coq), tetapi beberapa mesin yang saya gunakan konfigurasi Emacs saya tidak memiliki font yang tepat yang sudah diinstal sebelumnya (idealnya, saya juga ingin menggunakan kembali teknik ini dalam mode yang saya tulis, jadi saya tidak bisa mengharapkan pengguna memiliki pengaturan font yang tepat).
Saya mencoba menambahkan :image
properti tampilan ke pemantik modelin mainan-mode kecil, tetapi tidak ada yang muncul di modeline:
(define-minor-mode my/test-mode
"Test mode."
:lighter (propertize " 🐓" 'display '(image :type imagemagick
:file "/home/clement/.emacs.d/rooster.png")))
mode-line
images
text-properties
Sejuk
sumber
sumber
Jawaban:
Baris mode diberikan dari daftar segmen, yang masing-masing datang dengan aturan khusus mereka sendiri. Lihat Data Baris Mode untuk detailnya. Bagian simbol berisi petunjuk penting untuk membuat kode Anda berfungsi:
Saya curiga nyan-mode melakukannya dengan cara yang kurang ideal , jadi inilah contoh minimal saya:
Alasan mengapa saya menggunakan daftar spasi dan gambar adalah karena ini adalah kebiasaan untuk memulai pemantik dengan ruang untuk memisahkannya dari yang sebelumnya.
sumber
emacs -Q
? Ini bekerja sangat baik dengan mode-pintar diaktifkan, tetapi saya tidak bisa membuatnya bekerja ketika saya mulai dari Emacs telanjang.:propertize
dari standarmode-line-format
.Pertanyaan bagus.
Anda dapat mencoba menggunakan sesuatu seperti ini sebagai pemantik:, di
(concat " " (propertize " " 'display (create-image img-file)))
manaimg-file
nama file gambar Anda. (Char ruang pertama hanya untuk memisahkan korek api ini dari yang sebelumnya.)Yah, saya baru saja mencoba, menggunakan kode ini, tetapi tidak berhasil untuk saya. Anda mungkin mencoba sedikit mengotak-atiknya. Entah apakah itu mungkin.
Pemantik hanya menunjukkan sebagai char ruang biasa -
display
properti tampaknya tidak dihormati.Jika Anda tidak mendapatkan jawaban yang baik untuk pertanyaan ini, pertimbangkan untuk mengajukan permintaan peningkatan Emacs, menggunakan
M-x report-emacs-bug
.Satu hal yang pasti dapat Anda lakukan adalah menggunakan satu atau dua karakter Unicode dalam string mode-line. Dan Anda dapat menggunakan karakter yang, pada dasarnya, grafik.
sumber