Respostas:
buffer-face-set
e buffer-face-mode
no Emacs 23 ou posterior foi projetado exatamente para isso. No wiki do 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)
Você pode fazer a alteração usando o org-mode-hook
, assim
(add-hook 'org-mode-hook (lambda () (set-frame-font "Inconsolata" t)))
O que mudará a fonte sempre que você entrar no modo organizacional. A desvantagem é que ela não altera a fonte novamente depois que você sai do modo organizacional.
Edit: como indicado por Ryan , você pode seguir os conselhos desta página wiki para fazê-lo por buffer. Não testei extensivamente, mas isso parece funcionar
(add-hook 'org-mode-hook (lambda ()
(setq buffer-face-mode-face '(:family "Inconsolata"))
(buffer-face-mode)))
Pode haver problemas se você deseja usar buffer-face-mode
em outros buffers, mas se você o usar apenas para isso, ele deverá funcionar.
buffer-face-set
? Esta página da wiki indica que você pode fazer a mesma coisa por buffer, em vez de por quadro.