Tôi phải trả lời một phần vì quá phức tạp để tìm ra tại chỗ và tôi đã thổi ngân sách thời gian của mình.
Khuôn mặt là thuộc tính khung. Một khung có thể hiển thị nhiều bộ đệm cùng một lúc. Chế độ là thuộc tính bộ đệm. Bạn hỏi làm thế nào để thay đổi khuôn mặt trên cơ sở cho mỗi chế độ. Kết hợp tất cả điều này, có vẻ như câu hỏi không thể không có một câu trả lời hoàn toàn chính xác.
Bạn có thể ước tính câu trả lời mong muốn nếu bạn cho rằng một khung nhất định sẽ không bao giờ hiển thị nhiều hơn một bộ đệm. Bạn có thể thực sự thực hiện điều đó với một cái gì đó như thế này, nhưng sửa đổi để sử dụng đặc biệt-hiển thị-regexps và một tập hợp các regexps phù hợp với tên đệm chế độ markdown của bạn.
(append special-display-buffer-names
'("*VC-log*"
"*Help*"
("*Completions*"
(height . 25)
(font . "8x13"))))
Tuy nhiên, điều này có lẽ không phải là điều bạn muốn. Câu hỏi của bạn dường như ngụ ý thay đổi các đặc tính khuôn mặt của một khung hình duy nhất.
Một lần nữa giả định rằng khung sẽ không bao giờ hiển thị nhiều bộ đệm cùng một lúc, bạn có thể thử thông báo chuyển sang bộ đệm. Nhưng điều đó có thể không đủ thấp và nó có thể quá chậm. (Chưa được kiểm tra)
(defadvice switch-to-buffer (after switch-to-buffer activate compile)
"change the frame's default face after switch-to-buffer"
(doSomethingToChangePropertiesOfDefaultFace))
Và bây giờ cho thực tế (không đầy đủ) Câu trả lời của tôi ...
Một tốt hơn, mặc dù phức tạp hơn, cách tiếp cận sẽ hướng dẫn markdown chế độ sử dụng một diện mạo mới cho tất cả các vùng mà không phải là đã được gán một trong các khuôn mặt dựng sẵn. Bạn có thể tạo một khuôn mặt mới với bản sao mặt và cung cấp cho nó các thuộc tính thú vị với set-face- *.
Sửa đổi mặc định phông chữ khóa của chế độ đánh dấu để ghi đè chức năng phông chữ-khóa-fontify-region mặc định như được mô tả trong khối chú thích gần dòng 946 của font-lock.el bắt đầu, "Chức năng phông chữ".Có thể bạn có thể sử dụng một phông chữ-lock-mặc-fontify vùng rất chút thay đổi mà không chỉ là một phụ bước ngay sau nó:
(unless font-lock-keywords-only
(font-lock-fontify-syntactically-region beg end loudly))
Bước thêm phân tích các khu vực tương tự với những gì font-lock-fontify- vùng cú pháp, phá vỡ khu vực thành các tiểu vùng "thú vị". Nhưng lần này bạn tìm thấy các vùng phụ có khuôn mặt mặc định và bạn đặt văn bản thuộc tính các vùng con đó vào khuôn mặt mới mà bạn đã tạo trước đây.
Trong tất cả điều này, cảm giác như nó chỉ là một vài dòng trong tập tin .emacs của bạn, cộng thêm một bản sao của phông chữ-lock-mặc định-fontify-khu vực mà chỉ có một khác biệt nhỏ so với bản gốc (gọi một chức năng mới), cộng với tạo một bản sao của font-lock-fontify-syntactically-region và sửa đổi nó để thực hiện việc đặt giá thầu của bạn (phần khó nhất).
Trên thực tế, nếu bạn "sau" tư vấn cho phông chữ-khóa-fontify-cú pháp-khu vực thì bạn có thể thậm chí không cần phải sửa đổi mặc định phông chữ-khóa hoặc font-lock-mặc định-fontify-khu vực.
Nếu có một số biến kiểm soát khuôn mặt mặc định thì bạn có thể bản địa hóa nó cho bộ đệm hiện tại chỉ trong một móc được gọi trong khi mở tệp w/markdown. – jfs
Câu hỏi được hỏi theo cách tổng quát, sau đó một ví dụ cụ thể được thực hiện và câu trả lời xoay quanh ví dụ cụ thể này. Nếu bạn thực sự cần "** Đặt Emacs defaut font face per-mode **", hãy xem [Sử dụng một phông chữ khác cho mỗi chế độ chính - Emacs Stack Exchange] (http://emacs.stackexchange.com/questions/3038/ Sử dụng-một-khác-font-cho-mỗi-chính-mode/3042 # 3042) –