4

我是 Emacs 的长期用户(26 年),从 TECO Emacs 一直到适用于 MacOS X 的 GNU Emacs 23.4。我可以破解 Lisp 宏并且通常会找到自己的方法。

Emacs 变得非常庞大。并且非常丰富多彩。

有没有一种简单的方法可以确保 Emacs 永远不会改变字体大小或颜色?

4

3 回答 3

2

您可以使用 .emacs 中的以下行关闭所有字体颜色和其他装饰:

(global-font-lock-mode 0)
于 2013-09-26T19:31:33.510 回答
2

Emacs 有一些不受font-lock-mode.

这是Juri Linkov 在 2007 年发布到 Emacs Dev 邮件列表的解决方案:

I use the following trick to post-process faces immediately after they
get created.  I also modified this code to not reset mode line faces:

(defun my-faces-fix (&optional frame)
  "Fix defined faces."
  (interactive)
  ;; Check if this function is called by `custom-define-hook' from
  ;; `custom-declare-face' where the variable `face' is bound locally.
  (when (boundp 'face)
    (dolist (face (face-list))
      (unless (memq face '(mode-line mode-line-highlight mode-line-inactive))
        ;; Reset all face attributes
        (modify-face face)))))

;; 1. Fix existing faces
(let ((face t)) (my-faces-fix))

;; 2. Call `my-faces-fix' every time some new face gets defined
(add-to-list 'custom-define-hook 'my-faces-fix)
于 2013-09-26T20:47:46.817 回答
1

这是我两年来一直在使用的:

(custom-set-faces
 '(default ((t (:inherit nil :height 113 :family "DejaVu Sans Mono"))))
 '(font-lock-builtin-face ((nil (:foreground "#7F0055" :weight bold))))
 '(font-lock-keyword-face ((nil (:foreground "#7F0055" :weight bold))))
 '(font-lock-comment-face ((nil (:foreground "#3F7F5F"))))
 '(font-lock-string-face ((nil (:foreground "#2A00FF"))))
 '(font-lock-type-face ((t (:underline t :slant italic :foreground "#000000"))))
 '(font-lock-constant-face ((t (:foreground "#110099"))))
 '(font-lock-variable-name-face ((nil nil)))
 '(font-lock-function-name-face ((t (:weight bold)))))

您也可以自定义一堆其他面孔:只需调用M-x customize-face. 它将自动选择当前面。

于 2013-09-26T19:15:39.950 回答