Używanie innej czcionki dla każdego trybu głównego

19

Czy możliwe jest ustawienie różnych czcionek w trybie głównym? Powiedz Inconsolata-12w org-modebuforach i Symbola-12we wszystkich pozostałych trybach. A przynajmniej czy można to zrobić

(set-frame-font "Inconsolata" t)

po przejściu na org-modebufory?

csantosb
źródło

Odpowiedzi:

21

buffer-face-seta buffer-face-modew Emacsie 23 lub nowszym jest przeznaczony właśnie do tego. Z wiki Emacsa :

;; 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
źródło
4

Możesz dokonać zmiany za pomocą org-mode-hook, w ten sposób

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

Co zmieni czcionkę po każdym przejściu do trybu organizacji. Minusem jest to, że nie zmienia ona czcionki po wyjściu z trybu org.

Edycja: jak wskazał Ryan , możesz postępować zgodnie z radami na tej stronie wiki, aby zrobić to dla każdego bufora. Nie testowałem dokładnie, ale wydaje się, że to działa

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

Może mieć problemy, jeśli chcesz używać buffer-face-modew innych buforach, ale jeśli używasz go tylko do tego, to powinno działać.

ratownik
źródło
4
Czy spojrzał buffer-face-set? Ta strona wiki wskazuje, że możesz zrobić to samo dla bufora zamiast dla ramki.
Ryan
1
Świetnie, dzięki, właśnie tego szukałem. Ta społeczność jest niezwykła.
csantosb