我老是忘了怎么配置字体,就此记录一下。
首先,要知道你现在用的字体信息,只需要在 *scratch* buffer 中输入并执行:
(face-attribute 'default :font)
就会你的 minibuffer 中显示字体信息了。我建议你把这个默认值从 *Messages* buffer中提取出来放到 *scratch* buffer 中并注释起来(你在设置字体的时候可能会用到)。
然后我们可以设置默认字体了,在 *scratch* buffer中执行以下语句:
(set-face-attribute 'default nil :font "-outline-Monaco-normal-normal-normal-mono-16-*-*-*-c-*-iso8859-1" )
会发现字体已经发生改变了,而且根据 wiki(link:https://www.emacswiki.org/emacs/SetFonts) 上说的,这种方法 不仅改变了当前 frame 的默认字体,而且也会影响后面打开的 frame。
如果你不想更改当前 frame 的字体,那么运行
(set-face-attribute 'default t :font "-outline-Monaco-normal-normal-normal-mono-16-*-*-*-c-*-iso8859-1" )
而 reddit(link:https://www.reddit.com/r/emacs/comments/5m0nig/notes_on_how_to_change_fonts_in_emacs_without/),eli-zaretskii(link:https://www.reddit.com/user/eli-zaretskii) 的建议是用:
(add-to-list 'default-frame-alist '(font . "your-font-name-here"))
我试了一下,确实有用,只是似乎对当前 buffer 没有效果。
用这种方法,你就可以不用重启就能实验不同字体的显示笑过了。
另外说明一下,字体信息中的 16 指的是字体大小,我个人觉得 20 会好一点,不过这并不重要。
如果你想尝试一下其他字体,可以看看 这里(link:https://www.emacswiki.org/emacs/GoodFonts)。
一旦你找到了想要的字体,就把该配置加到 init.el 中去吧,这样每次启动 emacs 都会用新字体显示了。

