是否有方法可以根据主要模式更改字体?如果是这样,怎么样?我通常使用比例字体,但仅用于弄清模式和外壳模式,我想切换到非比例字体。这些模式对它们没有特殊的面孔,只需使用默认的脸,因此不能仅通过设置字体面来完成。我希望能够根据主要模式自动切换,也许是使用钩子。
使用模式钩,使用面部重新映射功能钩住当前缓冲区的面部的功能:
(defun use-monospace ()
"Switch the current buffer to a monospace font."
(face-remap-add-relative 'default '(:family "Monospace")))
(add-hook 'dired-mode-hook 'use-monospace)
...
以上定义自己的函数的另一种替代方法是使用 buffer-face-mode
。通常,这将使用 variable-pitch
用于启用其启用的缓冲区,但是由于您想将可变音调字体用作默认值,因此可以将其更改为 fixed-pitch
:
(setq buffer-face-mode-face 'fixed-pitch)
(add-hook 'dired-mode-hook 'buffer-face-mode)
(add-hook 'shell-mode-hook 'buffer-face-mode)