¿Ajustar transitoriamente el tamaño del texto en la línea de modo y minibúfer?

10

Cuando trabajo con otras personas alrededor de un monitor compartido o mediante el uso compartido de pantalla (por ejemplo, Google Hangout), a menudo uso text-scale-adjust( C-x C-+) para permitir que otros lean más fácilmente mi pantalla.

Me encantaría poder aumentar también transitoriamente el tamaño del texto de la línea de modo y el minibúfer en el cuadro seleccionado. ¿Ya existe tal capacidad? Si no, podría descifrar cómo escribirlo yo mismo ... eventualmente.

Frain Colin
fuente

Respuestas:

9

La escala de texto amplía el texto de un búfer en particular, en todas partes donde se muestra el búfer.

Lo que desea hacer es hacer zoom en un cuadro en particular y no solo escalar el texto de un búfer en particular.

Comandos zoom-in, zoom-outy zoom-in/out de la biblioteca zoom-frm.elle permiten hacer las dos cosas con facilidad y de forma incremental.

Desde el teclado, el comando zoom-in/outes todo lo que necesita: úselo como reemplazo de 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)

Puede enlazar zoom-iny zoom-outhacer rotaciones con la rueda del mouse :

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

También los ato, para hacer zoom haciendo clic con el 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)

Los zoom-frm.elcomandos pueden comportarse como text-scale-adjust, haciendo zoom en un búfer donde sea que se muestre, o pueden hacer zoom en un solo cuadro completo (todas sus ventanas, incluidos los minibúfer; su línea de modo; sus barras de desplazamiento; etc.).

Presione C-uen cualquier momento mientras usa estos comandos para alternar entre el zoom del búfer y el zoom del marco . El tipo de zoom (búfer o marco) que obtiene por defecto está definido por la opción zoom-frame/buffer. C-ucon un comando de zoom alterna la opción.

Dibujó
fuente
5

Los C-x C-0/-/=enlaces predeterminados hacen un excelente trabajo de cambio de tamaño de fuente. Pero se aplican solo al búfer donde se usan. No cambian los tamaños de fuente para el texto fuera del búfer, por ejemplo, en la línea de modo, mini-búfer u otros búferes.

La siguiente función cambia el tamaño de fuente en esas áreas también, globalmente.

Puede usar la default-font-size-ptvariable para establecer el tamaño de fuente predeterminado para cada sesión de 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

El ajuste de la fuente se puede hacer muy fácil con la ayuda del hydrapaquete.

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

Ejemplos de uso:

  • Aumenta la fuente en 4 puntos C-M-= = = = =
  • Disminuye la fuente en 6 puntos C-M-= - - - - - -
  • Restablezca la fuente al tamaño de punto predeterminado establecido C-M-= 0
  • No estás exactamente seguro de cuán grande o pequeño quieres que sean las fuentes :) C-M-= = = = - - = = - - 0 - - = =

Siéntase libre de cambiar el C-M-=prefijo a cualquier otra cosa que le guste.

Kaushal Modi
fuente