请教一个关于字体设置(fixed-pitch)的疑惑

我按下面设置了字体,为什么程序代码用的是 default 字体,而不是 fixed-pitch。这样设置的 fixed-pitch 字体会在什么地方使用?

 (set-face-attribute 'default nil
                      :family "Cascadia Code" :height 160)
  (set-face-attribute 'fixed-pitch nil
                      :family "Source Code Pro" :height 1.0)
  (set-face-attribute 'variable-pitch nil
                      :family "Iosevka Aile" :height 1.0)

以下回答来自ChatGPT:


在您的代码中,固定宽度字体设置似乎没有明确的用途,因此代码文本仍然使用默认字体(default)。如果您想在代码中使用固定宽度字体,可以在适当的上下文中将字体设置为 fixed-pitch

例如,您可以将以下代码添加到 Emacs 配置文件中,以将固定宽度字体应用于代码模式(如 prog-mode):

(add-hook 'prog-mode-hook
          (lambda ()
            (variable-pitch-mode 0)
            (setq buffer-face-mode-face '(:family "Source Code Pro" :height 1.0))
            (buffer-face-mode)))

这将在代码编辑模式下将字体设置为 “Source Code Pro” 字体,并且文本将以固定宽度显示。请根据您的需要和偏好进行相应的调整。

fixed-pitch 这个face会被一些特殊的face继承,例如org-mode的code block,默认字体确实是default

结合前面两位朋友的答复,我添加了下面的配置:

(add-hook
 'prog-mode-hook
 (lambda ()
   (setq buffer-face-mode-face 'fixed-pitch)
   (buffer-face-mode))
 )
  

这样在prog-mode就使用的fixed-pitch字体了,我这样做,主要是因为代码的字体和minibuffer的字体一样,在我这看着不太协调,现在就好看多了。谢谢各位。

1 个赞