回答:
buffer-face-set
そしてbuffer-face-mode
Emacsで23以降は、まさにこのために設計されています。Emacs wikiから:
;; 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)))
組織モードに入ると、フォントが変更されます。欠点は、組織モードを終了してもフォントが元に戻らないことです。
編集:Ryanが指摘したように、このwikiページのアドバイスに従って、バッファーごとに行うことができます。私は広範囲にテストしていませんが、これはうまくいくようです
(add-hook 'org-mode-hook (lambda ()
(setq buffer-face-mode-face '(:family "Inconsolata"))
(buffer-face-mode)))
buffer-face-mode
他のバッファで使用したい場合は問題が発生する可能性がありますが、これだけに使用する場合は機能します。
buffer-face-set
ますか?このWikiページは、フレームごとではなくバッファごとに同じことができることを示しています。