Sesuaikan ukuran teks secara sementara dalam garis mode dan minibuffer?

10

Saat bekerja dengan orang lain di sekitar monitor bersama atau melalui berbagi layar (mis. Google Hangout), saya sering menggunakan text-scale-adjust( C-x C-+) untuk membuat orang lain lebih mudah membaca layar saya.

Saya ingin dapat juga secara sementara meningkatkan ukuran teks dari baris mode dan minibuffer dalam bingkai yang dipilih. Apakah kemampuan seperti itu sudah ada? Jika tidak, saya bisa mencari tahu bagaimana menulisnya sendiri ... akhirnya.

Colin Fraizer
sumber

Jawaban:

9

Penskalaan teks memperbesar teks buffer tertentu, di mana pun buffer ditampilkan.

Yang ingin Anda lakukan adalah memperbesar bingkai tertentu dan tidak hanya skala teks dari buffer tertentu.

Perintah zoom-in,, zoom-outdan zoom-in/out perpustakaan zoom-frm.elmemungkinkan Anda melakukan kedua hal ini dengan mudah dan bertahap.

Dari keyboard, perintahlah zoom-in/outyang Anda butuhkan - gunakan sebagai pengganti text-scale-adjust:

(define-key ctl-x-map [(control ?+)] 'zoom-in/out)
(define-key ctl-x-map [(control ?-)] 'zoom-in/out)
(define-key ctl-x-map [(control ?=)] 'zoom-in/out)
(define-key ctl-x-map [(control ?0)] 'zoom-in/out)

Anda dapat mengikat zoom-indan zoom-outuntuk rotasi tikus-wheel :

(global-set-key (vector (list 'control mouse-wheel-down-event)) 'zoom-in)
(global-set-key (vector (list 'control mouse-wheel-up-event))   'zoom-out)

Saya mengikat ini juga, untuk memperbesar dengan mengklik mouse :

(global-set-key [S-mouse-1]    'zoom-in)
(global-set-key [C-S-mouse-1]  'zoom-out)
;; Get rid of `mouse-set-font' or `mouse-appearance-menu':
(global-set-key [S-down-mouse-1] nil)

The zoom-frm.elperintah dapat berperilaku seperti text-scale-adjust, zooming penyangga mana pun ditampilkan, atau mereka dapat tampilannya seluruh frame (semua jendela, termasuk minibuffers; lini modenya; scroll bar-nya; dll).

Tekan C-ukapan saja saat menggunakan perintah ini untuk beralih antara zoom penyangga dan zoom bingkai . Jenis pembesaran (penyangga atau bingkai) yang Anda peroleh secara default ditentukan oleh opsi zoom-frame/buffer. C-udengan perintah zoom matikan opsi.

Drew
sumber
5

C-x C-0/-/=Binding default melakukan pekerjaan yang sangat baik untuk mengubah ukuran font. Tetapi mereka hanya berlaku untuk buffer di mana mereka digunakan. Mereka tidak mengubah ukuran font untuk teks di luar buffer, misalnya dalam mode-line, buffer mini atau buffer lainnya.

Fungsi di bawah ini juga mengubah ukuran font di area tersebut, secara global.

Anda dapat menggunakan default-font-size-ptvariabel untuk mengatur ukuran font default untuk setiap sesi emacs.

(setq default-font-size-pt 12)

(defun modi/font-size-adj (&optional arg)
  "The default C-x C-0/-/= bindings do an excellent job of font resizing.
They, though, do not change the font sizes for the text outside the buffer,
example in mode-line. Below function changes the font size in those areas too.

M-<NUM> M-x modi/font-size-adj increases font size by NUM points if NUM is +ve,
                               decreases font size by NUM points if NUM is -ve
                               resets    font size if NUM is 0."
  (interactive "p")
  (if (= arg 0)
      (setq font-size-pt default-font-size-pt)
    (setq font-size-pt (+ font-size-pt arg)))
  ;; The internal font size value is 10x the font size in points unit.
  ;; So a 10pt font size is equal to 100 in internal font size value.
  (set-face-attribute 'default nil :height (* font-size-pt 10)))

(defun modi/font-size-incr ()  (interactive) (modi/font-size-adj +1))
(defun modi/font-size-decr ()  (interactive) (modi/font-size-adj -1))
(defun modi/font-size-reset () (interactive) (modi/font-size-adj 0))

(modi/font-size-reset) ; Initialize font-size-pt var to the default value

Penyesuaian font dapat dilakukan dengan mudah dengan bantuan hydrapaket.

(require 'hydra)
(defhydra hydra-font-resize
    (global-map "C-M-=")
  "font-resize"
  ("-"   modi/font-size-decr  "Decrease")
  ("="   modi/font-size-incr  "Increase")
  ("0"   modi/font-size-reset "Reset to default size"))

Contoh penggunaan:

  • Tambah font sebanyak 4 poin C-M-= = = = =
  • Kurangi font sebanyak 6 poin C-M-= - - - - - -
  • Atur ulang font ke ukuran titik default yang ditetapkan C-M-= 0
  • Anda tidak yakin seberapa besar atau kecil font yang Anda inginkan :) C-M-= = = = - - = = - - 0 - - = =

Jangan ragu untuk mengubah C-M-=awalan ke hal lain yang Anda sukai.

Kaushal Modi
sumber