Odpowiedzi:
buffer-face-set
a buffer-face-mode
w 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)
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-mode
w innych buforach, ale jeśli używasz go tylko do tego, to powinno działać.
buffer-face-set
? Ta strona wiki wskazuje, że możesz zrobić to samo dla bufora zamiast dla ramki.