Emacs 字体设置

Emacs 的字体设置比较繁杂, 还能对不同的字符集设置不同的字体, 一些技巧记录于此.

调出字体设置菜单

  1. Shift+鼠标左键, 对当前buffer的字体, 改变、增大、减小、恢复默认.

<S-down-mouse-1> (translated from <S-mouse-1>) at that spot runs the command mouse-appearance-menu (found in global-map), which is an interactive compiled Lisp function in ‘mouse.el’.

It is bound to <S-down-mouse-1>.

(mouse-appearance-menu EVENT)

Show a menu for changing the default face in the current buffer.

  1. 菜单 “Options-> Set Default Font”

中英文只设置一种字体

把光标放到你所在的字体上,命令 M-x describe-font 来查看你当前使用的字体名称、 字号大小. 显示的信息是相对古老的描述方式, 字号也采用emacs自己的大小

把字体信息拷贝, 写入如下代码:

1
(set-default-font "-outline-Yahei Mono-normal-normal-normal-mono-20-*-*-*-c-*-iso8859-1")

实际上 set-default-font 函数在 emacs 23 已经过时, 使用 set-frame-font 代替, 字体信息也可以使用更现代的方式:

1
(set-frame-font "Yahei Mono-12")

“Yahei Mono”是在菜单 “Options-> Set Default Font” 看到的字体名称, “-12” 是字号大小.

使用这种方法设置字体, 在等高或者等宽方面, 总不舒服, 而且在C-x C-= 或者 C-x C-- 增大减小字体时, 只有英文变化.

进阶设置

参考文章:

emacs文档: font selection 解释: emacs在把一个字符编码绘制到屏幕前, 会根据它的face属性(文档 ), 选择字体.

无论是Wiki还是能找到的资料,对于Face的定义都是”关于要显示出来的东西的外在属性的定义“,包括font的属性(family,width,slant等等),还有颜色、下划线等等等等(Emacs wiki上甚至说“我们需要一个明确的定义”)。话句话说,face指定了我们会看到什么东西。

同一节指出了合并face的属性的优先级。其中最低的优先级是default face,也就是我一开始查到的命令所设置的东西,使用 M-h f set-face-attribute可以得到

…待续

end here