Utilisation d'une police différente pour chaque mode principal

19

Est-il possible de définir différentes polices en suivant le mode principal? Dites Inconsolata-12dans les org-modetampons et Symbola-12dans tous les modes restants. Ou du moins, est-il possible de faire un

(set-frame-font "Inconsolata" t)

après le passage aux org-modetampons?

csantosb
la source

Réponses:

21

buffer-face-setet buffer-face-modedans Emacs 23 ou version ultérieure est conçu exactement pour cela. Du wiki 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
la source
4

Vous pouvez effectuer le changement en utilisant le org-mode-hook, comme ceci

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

Ce qui changera la police chaque fois que vous entrerez en mode org. L'inconvénient est qu'il ne change pas la police après avoir quitté le mode org.

Edit: comme l'a souligné Ryan , vous pouvez suivre les conseils sur cette page wiki pour le faire par tampon. Je n'ai pas testé intensivement, mais cela semble fonctionner

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

Il peut avoir des problèmes si vous souhaitez l'utiliser buffer-face-modedans d'autres tampons, mais si vous ne l'utilisez que pour cela, cela devrait fonctionner.

resueman
la source
4
Avez-vous regardé buffer-face-set? Cette page wiki indique que vous pouvez faire la même chose par tampon au lieu de par image.
Ryan
1
Super, merci, c'est exactement ce que je cherchais. Cette communauté est extraordinaire.
csantosb