Przejściowo dostosować rozmiar tekstu w wierszu trybu i minibuforze?

10

Pracując z innymi przy wspólnym monitorze lub udostępniając ekran (np. Google Hangout), często używam text-scale-adjust( C-x C-+), aby inni mogli łatwiej czytać mój ekran.

Bardzo chciałbym móc przejściowo zwiększyć rozmiar tekstu linii trybu i minibufora w wybranej ramce. Czy takie możliwości już istnieją? Jeśli nie, mogę wymyślić, jak sam to napisać ... ostatecznie.

Colin Fraizer
źródło

Odpowiedzi:

9

Skalowanie tekstu powiększa tekst określonego bufora, wszędzie tam, gdzie bufor jest wyświetlany.

To, co chcesz zrobić, to powiększyć konkretną klatkę, a nie tylko skalować tekst określonego bufora.

Komendy zoom-in, zoom-outoraz zoom-in/out biblioteki zoom-frm.elpozwalają robić obie te rzeczy łatwo i stopniowo.

Z klawiatury zoom-in/outwystarczy polecenie - użyj go jako zamiennika dla 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)

Można powiązać zoom-ini zoom-outdo obrotów kół myszy :

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

Te również wiążę, aby powiększyć, klikając myszką :

(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)

Te zoom-frm.elkomendy mogą zachowywać się jak text-scale-adjust, powiększanie bufor wszędzie tam, gdzie jest wyświetlany lub mogą przybliżyć całą pojedynczą klatkę (wszystkie z oknami, w tym minibuffers; linię trybu; jego suwakami, itd.).

Naciśnij C-uw dowolnym momencie, używając tych poleceń, aby przełączać między powiększaniem bufora a powiększaniem ramki . Rodzaj powiększenia (bufor lub ramka), który otrzymujesz domyślnie, jest definiowany przez opcję zoom-frame/buffer. C-uza pomocą polecenia zoom przełącza opcję.

Rysował
źródło
5

Domyślne C-x C-0/-/=wiązania doskonale zmieniają rozmiar czcionki. Ale dotyczą one tylko bufora, w którym są używane. Nie zmieniają rozmiarów czcionek tekstu poza buforem, na przykład w linii trybu, mini-buforze lub innych buforach.

Funkcja poniżej zmienia rozmiar czcionki również w tych obszarach, globalnie.

Możesz użyć tej default-font-size-ptzmiennej, aby ustawić domyślny rozmiar czcionki dla każdej sesji 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

Dostosowywanie czcionek może być bardzo proste dzięki hydrapakietowi.

(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"))

Przykłady użycia:

  • Zwiększ czcionkę o 4 punkty C-M-= = = = =
  • Zmniejsz czcionkę o 6 punktów C-M-= - - - - - -
  • Zresetuj czcionkę do ustawionego domyślnego rozmiaru punktu C-M-= 0
  • Nie masz pewności, jak duże lub małe mają być czcionki :) C-M-= = = = - - = = - - 0 - - = =

Zmień C-M-=prefiks na dowolny inny.

Kaushal Modi
źródło