Bagaimana saya bisa mengatur ukuran font yang berbeda untuk buffer dan untuk mode-line?

14

Saya memiliki baris ini di file init.el saya untuk mengatur ukuran font di semua bingkai:

(push '(font . "DejaVu Sans Mono-10") default-frame-alist)

Ini berfungsi tetapi saya ingin memiliki font yang lebih besar di semua buffer sambil menjaga yang lebih kecil untuk baris mode (sehingga bisa muat lebih banyak informasi dan tidak terlalu mengganggu). Idenya adalah untuk memiliki set ini secara otomatis tanpa harus mengubah ukuran font dengan Cx C- + untuk setiap buffer terbuka.

Saya menggunakan Emacs 25.0.50.1 yang dikompilasi dari trunk pada sistem GNU / Linux.

Sunting: baru saja menambahkan jawaban yang menunjukkan bagaimana hal itu dapat dilakukan.

undostres
sumber

Jawaban:

14

Coba ganti kode untuk mengatur ukuran font dengan ini:

(set-face-attribute 'default nil :font "DejaVu Sans Mono-14")
(set-face-attribute 'mode-line nil :font "DejaVu Sans Mono-10")

Tentu saja, Anda ingin mengubah ukuran ( 14dan 10) ke nilai yang Anda sukai.


Jika Anda ingin menyesuaikan wajah tertentu dan tidak tahu namanya, coba lakukan

M-x list-faces-display RET

Ini akan memberi Anda daftar semua wajah (dengan pratinjau) yang dapat Anda cari dengan kata kunci tertentu.

itu hanya
sumber
1
Terima kasih, itu dia. Fungsi daftar-wajah-tampilan terbukti sangat berguna karena ada 5 wajah terkait garis mode yang dapat dimodifikasi.
undostres
@undostres Sama-sama :)
itsjeyd
Apakah ada cara untuk menentukan font relatif terhadap tema default? Menentukan ukuran font tertentu menghentikan font dari penskalaan saat menggunakan peningkatan / penurunan skala teks
jr0cket
7

Berkat jawaban yang diberikan oleh itsjeyd saya berhasil menulis ekspresi pendek untuk mengubah ukuran semua wajah terkait mode-line untuk semua frame saat ini dan masa depan.

Jika Anda menggunakan tema lain selain yang default (seperti zenburn, dll.), Kode harus diletakkan setelah Anda menyatakan tema; yaitu, setelah baris ini:

(load-theme 'solarized-light t)

Dengan asumsi ukuran font default Anda adalah lebih dari 10, kodenya adalah:

(let ((faces '(mode-line
               mode-line-buffer-id
               mode-line-emphasis
               mode-line-highlight
               mode-line-inactive)))
     (mapc
      (lambda (face) (set-face-attribute face nil :font "DejaVu Sans Mono-10"))
      faces))

Untuk font yang lebih kecil, tetapkan nilai yang lebih kecil ("DejaVu Sans Mono-9"). Font lain dapat digunakan: inconsolata, dll.

Edit: menambahkan tangkapan layar yang menunjukkan hasil. Ukuran font pada mode-line adalah 10 sedangkan sisanya (buffer, dll.) Adalah 12.

Font mode-line yang lebih kecil

undostres
sumber