Ответы:
buffer-face-set
а buffer-face-mode
в Emacs 23 или новее предназначен именно для этого. Из вики 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)
Вы можете внести изменения, используя org-mode-hook
, как это
(add-hook 'org-mode-hook (lambda () (set-frame-font "Inconsolata" t)))
Который будет менять шрифт всякий раз, когда вы входите в режим орг. Недостатком является то, что он не меняет шрифт обратно после выхода из режима орг.
Редактировать: как указано Райаном , вы можете следовать советам на этой вики-странице, чтобы сделать это для каждого буфера. Я не тестировал подробно, но это похоже на работу
(add-hook 'org-mode-hook (lambda ()
(setq buffer-face-mode-face '(:family "Inconsolata"))
(buffer-face-mode)))
Могут возникнуть проблемы, если вы хотите использовать buffer-face-mode
другие буферы, но если вы используете его только для этого, он должен работать.
buffer-face-set
? Эта вики-страница указывает, что вы можете делать то же самое для каждого буфера, а не для каждого кадра.