Usando una fuente diferente para cada modo principal

19

¿Es posible configurar diferentes fuentes siguiendo el modo principal? Digamos Inconsolata-12en org-modebuffers y Symbola-12en todos los modos restantes. O al menos, ¿es posible hacer un

(set-frame-font "Inconsolata" t)

después de cambiar a org-modebuffers?

csantosb
fuente

Respuestas:

21

buffer-face-sety buffer-face-modeen Emacs 23 o posterior está diseñado exactamente para esto. Del wiki de Emacs :

;; Use variable width font faces in current buffer
 (defun my-buffer-face-mode-variable ()
   "Set font to a variable width (proportional) fonts in current buffer"
   (interactive)
   (setq buffer-face-mode-face '(:family "Symbola" :height 100 :width semi-condensed))
   (buffer-face-mode))

 ;; Use monospaced font faces in current buffer
 (defun my-buffer-face-mode-fixed ()
   "Sets a fixed width (monospace) font in current buffer"
   (interactive)
   (setq buffer-face-mode-face '(:family "Inconsolata" :height 100))
   (buffer-face-mode))

 ;; Set default font faces for Info and ERC modes
 (add-hook 'erc-mode-hook 'my-buffer-face-mode-variable)
 (add-hook 'Info-mode-hook 'my-buffer-face-mode-variable)
Ryan
fuente
4

Puedes hacer el cambio usando org-mode-hook, como este

(add-hook 'org-mode-hook (lambda () (set-frame-font "Inconsolata" t)))

Lo que cambiará la fuente cada vez que ingrese al modo org. La desventaja es que no vuelve a cambiar la fuente después de salir del modo organización.

Editar: como señaló Ryan , puede seguir los consejos de esta página wiki para hacerlo por búfer. No lo he probado extensamente, pero esto parece funcionar

(add-hook 'org-mode-hook (lambda ()
                            (setq buffer-face-mode-face '(:family "Inconsolata"))
                            (buffer-face-mode)))

Puede tener problemas si desea usarlo buffer-face-modeen otros buffers, pero si solo lo usa para esto, entonces debería funcionar.

resueman
fuente
44
¿Has mirado buffer-face-set? Esta página wiki indica que puede hacer lo mismo por búfer en lugar de por cuadro.
Ryan
1
Genial, gracias, esto es exactamente lo que estaba buscando. Esta comunidad es extraordinaria.
csantosb