Câu trả lời:
buffer-face-set
và buffer-face-mode
trong Emacs 23 trở lên được thiết kế cho chính xác điều này. Từ wiki 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)
Bạn có thể thực hiện thay đổi bằng cách sử dụng org-mode-hook
, như thế này
(add-hook 'org-mode-hook (lambda () (set-frame-font "Inconsolata" t)))
Mà sẽ thay đổi phông chữ bất cứ khi nào bạn vào chế độ org. Nhược điểm là nó không thay đổi phông chữ trở lại sau khi bạn rời khỏi chế độ org.
Chỉnh sửa: như Ryan đã chỉ ra , bạn có thể làm theo lời khuyên trên trang wiki này để thực hiện trên mỗi bộ đệm. Tôi đã không thử nghiệm rộng rãi, nhưng điều này dường như hoạt động
(add-hook 'org-mode-hook (lambda ()
(setq buffer-face-mode-face '(:family "Inconsolata"))
(buffer-face-mode)))
Nó có thể có vấn đề nếu bạn muốn sử dụng buffer-face-mode
trong các bộ đệm khác, nhưng nếu bạn chỉ sử dụng nó cho việc này thì nó sẽ hoạt động.
buffer-face-set
chưa Trang wiki này cho biết bạn có thể làm điều tương tự trên mỗi bộ đệm thay vì mỗi khung.