การใช้แบบอักษรที่แตกต่างกันสำหรับแต่ละโหมดหลัก


19

เป็นไปได้ไหมที่จะตั้งค่าแบบอักษรต่าง ๆ ตามโหมดหลัก? พูดInconsolata-12ในorg-modeบัฟเฟอร์และSymbola-12ในโหมดที่เหลือทั้งหมด หรืออย่างน้อยก็เป็นไปได้ที่จะทำ

(set-frame-font "Inconsolata" t)

หลังจากเปลี่ยนไปใช้org-modeบัฟเฟอร์?

คำตอบ:


21

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)

4

คุณสามารถทำการเปลี่ยนแปลงได้โดยใช้ตัวเลือก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ในบัฟเฟอร์อื่น ๆ แต่ถ้าคุณใช้เพียงแค่นี้สิ่งนี้ก็ควรใช้งานได้


4
มีคุณดูbuffer-face-set? หน้าวิกินี้แสดงว่าคุณสามารถทำสิ่งเดียวกันต่อบัฟเฟอร์แทนที่จะเป็นต่อเฟรม
Ryan

1
เยี่ยมมากขอบคุณนี่คือสิ่งที่ฉันกำลังมองหา ชุมชนนี้ไม่ธรรมดา
csantosb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.