Textgröße in Moduszeile und Minibuffer vorübergehend anpassen?

10

Wenn ich mit anderen an einem freigegebenen Monitor oder über die Bildschirmfreigabe (z. B. Google Hangout) arbeite, verwende ich häufig text-scale-adjust( C-x C-+), damit andere meinen Bildschirm leichter lesen können.

Ich würde gerne in der Lage sein, auch die Textgröße der Moduszeile und des Minibuffers im ausgewählten Frame vorübergehend zu erhöhen. Gibt es eine solche Fähigkeit bereits? Wenn nicht, könnte ich mir überlegen, wie ich es selbst schreiben soll ... irgendwann.

Colin Fraizer
quelle

Antworten:

9

Durch die Textskalierung wird der Text eines bestimmten Puffers überall dort vergrößert, wo der Puffer angezeigt wird.

Sie möchten einen bestimmten Frame zoomen und nicht nur den Text eines bestimmten Puffers skalieren.

Befehle zoom-in, zoom-outund zoom-in/out die Bibliothek zoom-frm.elkönnen Sie diese beiden Dinge einfach und schrittweise tun.

Über die Tastatur ist der Befehl zoom-in/outalles, was Sie brauchen - verwenden Sie ihn als Ersatz für 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)

Sie können zoom-inund zoom-outan Mausraddrehungen binden :

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

Ich binde diese auch zum Zoomen per Mausklick :

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

Die zoom-frm.elBefehle können sich so verhalten text-scale-adjust, als würden sie einen Puffer überall dort zoomen, wo er angezeigt wird, oder sie können einen gesamten einzelnen Frame zoomen (alle Fenster, einschließlich Minibuffer, die Moduszeile, die Bildlaufleisten usw.).

Drücken Sie C-ujederzeit, während Sie mit diesen Befehlen zwischen Pufferzoom und Bildzoom wechseln . Die Art des Zooms (Puffer oder Frame), die Sie standardmäßig erhalten, wird durch die Option definiert zoom-frame/buffer. C-uMit einem Zoom-Befehl wird die Option umgeschaltet.

Drew
quelle
5

Die Standardbindungen C-x C-0/-/=eignen sich hervorragend zum Ändern der Schriftgröße. Sie gelten jedoch nur für den Puffer, in dem sie verwendet werden. Sie ändern nicht die Schriftgrößen für den Text außerhalb des Puffers, z. B. in der Moduszeile, im Minipuffer oder in anderen Puffern.

Die folgende Funktion ändert die Schriftgröße auch in diesen Bereichen global.

Mit der default-font-size-ptVariablen können Sie die Standardschriftgröße für jede Emacs-Sitzung festlegen.

(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

Die Schriftanpassung kann mit Hilfe des hydraPakets zum Kinderspiel gemacht werden.

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

Anwendungsbeispiele:

  • Erhöhen Sie die Schrift um 4 Punkte C-M-= = = = =
  • Verringern Sie die Schrift um 6 Punkte C-M-= - - - - - -
  • Setzen Sie die Schriftart auf die festgelegte Standardpunktgröße zurück C-M-= 0
  • Sie sind sich nicht ganz sicher, wie groß oder klein die Schriftarten sein sollen :) C-M-= = = = - - = = - - 0 - - = =

Sie können das C-M-=Präfix jederzeit nach Belieben ändern .

Kaushal Modi
quelle