เป็นไปได้ไหมที่จะตั้งค่าแบบอักษรต่าง ๆ ตามโหมดหลัก? พูดInconsolata-12
ในorg-mode
บัฟเฟอร์และSymbola-12
ในโหมดที่เหลือทั้งหมด หรืออย่างน้อยก็เป็นไปได้ที่จะทำ
(set-frame-font "Inconsolata" t)
หลังจากเปลี่ยนไปใช้org-mode
บัฟเฟอร์?
เป็นไปได้ไหมที่จะตั้งค่าแบบอักษรต่าง ๆ ตามโหมดหลัก? พูดInconsolata-12
ในorg-mode
บัฟเฟอร์และSymbola-12
ในโหมดที่เหลือทั้งหมด หรืออย่างน้อยก็เป็นไปได้ที่จะทำ
(set-frame-font "Inconsolata" t)
หลังจากเปลี่ยนไปใช้org-mode
บัฟเฟอร์?
คำตอบ:
buffer-face-set
และbuffer-face-mode
ใน Emacs 23 หรือใหม่กว่านั้นได้รับการออกแบบมาเพื่อสิ่งนี้ จาก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)
คุณสามารถทำการเปลี่ยนแปลงได้โดยใช้ตัวเลือกorg-mode-hook
เช่นนี้
(add-hook 'org-mode-hook (lambda () (set-frame-font "Inconsolata" t)))
ซึ่งจะเปลี่ยนแบบอักษรเมื่อใดก็ตามที่คุณเข้าสู่โหมดองค์กร ข้อเสียคือมันจะไม่เปลี่ยนแบบอักษรกลับมาหลังจากที่คุณออกจากโหมด org
แก้ไข: ตามที่Ryanชี้ให้เห็นคุณสามารถทำตามคำแนะนำในหน้าวิกินี้เพื่อทำต่อบัฟเฟอร์ ฉันไม่ได้ทดสอบอย่างกว้างขวาง แต่ดูเหมือนว่าจะใช้ได้
(add-hook 'org-mode-hook (lambda ()
(setq buffer-face-mode-face '(:family "Inconsolata"))
(buffer-face-mode)))
มันอาจมีปัญหาหากคุณต้องการใช้buffer-face-mode
ในบัฟเฟอร์อื่น ๆ แต่ถ้าคุณใช้เพียงแค่นี้สิ่งนี้ก็ควรใช้งานได้
buffer-face-set
? หน้าวิกินี้แสดงว่าคุณสามารถทำสิ่งเดียวกันต่อบัฟเฟอร์แทนที่จะเป็นต่อเฟรม