如何更改 Emacs 的默认字体大小和字体类型?
Posted
技术标签:
【中文标题】如何更改 Emacs 的默认字体大小和字体类型?【英文标题】:How do I change Emacs' default font size and font type? 【发布时间】:2011-08-26 23:17:24 【问题描述】:我正在使用 Emacs 23.3。如何更改字体大小和字体类型?
【问题讨论】:
关于更改默认字体大小并将其保存为.emacs
的类似问题:***.com/q/294664/94687
【参考方案1】:
您可以使用菜单栏。转至Options
->Set Default Font...
。
选择字体后,别忘了按Options
->Save Options
——否则关闭 Emacs 后新字体将不会保存。
【讨论】:
这不起作用(也许它曾经是?)它只会更改当前帧的字体,并且不会为将来的会话保存。请参阅this answer 了解有效的方法。 @alexis:它在 Emacs-24.2 上仍然适用于我。这是screenshot。 (对不起,可怕的字体选择:P。)当我重新启动 Emacs 时,它也正确保存了。也许您的配置有所不同? 我的版本几乎没有什么不同:我在 OS X 上安装了 GNU Emacs 24.3.1,但它不起作用。显然有些不同,但另请参阅the answer I linked to 的问题和讨论。这种方法为我节省了一天。我猜结论是“YMMV”。 也不适用于 OS X 10.10.5 上的 Emacs 24.4。但直接更改为 ~/.emacs 是可行的。 如果您隐藏了菜单栏但仍想使用带有预览的 GUI 字体选择器,您可以使用M-x menu-set-font
。【参考方案2】:
您还可以在 .emacs
文件中执行以下操作。
Emacs 23.1
(set-frame-font "Inconsolata 12" nil t)
旧版本的 Emacs
(set-default-font "Inconsolata 12" nil t)
【讨论】:
(set-default-font Fontname-Size) 现在已弃用 (set-frame-font Fontname-Size) 您还应该将FRAMES
参数设置为t
以影响所有帧,而不仅仅是当前帧。 (set-frame-font Fontname-Size nil t)
您也可以运行describe-font
来确定当前字体(例如,如果它是通过自定义设置的)或找出“全名”的可能选项【参考方案3】:
要获取自定义的扩展列表,请使用
M-x custom-face RET
【讨论】:
【参考方案4】:如果您使用 Linux/X11,您可能需要在 ~/.Xdefaults
中进行设置。一世
已在此处设置字体,因为此处的其他答案无效。
我可以通过在 Emacs 中运行来查看可用的字体设置:
helm-select-xfont
然后我开始输入Conso
,我看到如下条目:
-Consolas-normal-normal-normal-*-*-*-*-*-m-0-iso10646-1
...
然后我把它放入~/.Xdefaults
,设置大小12
为:
Emacs.font: xft:-*-Consolas-normal-normal-normal-*-12-*-*-*-m-0-iso10646-1
然后重启 Emacs。
【讨论】:
【参考方案5】:macOS 上的 Emacs 25.1 默认使用 Menlo 12。我想增加尺寸。
C-x C-f
~/.emacs
将此添加到~/.emacs
文件的末尾:
(set-default-font "Menlo 14")
留在~/.emacs
时看到更改立即生效:
M-x eval-buffer [RET]
【讨论】:
这适用于我在启动 emacs 时打开的第一个文件,但随后的缓冲区再次使用较小的字体。【参考方案6】:在我的回答中,我将专注于通过 X 资源设置默认字体大小。提到~/.Xdefaults
的答案中已经提到了X资源的使用;我会给出更多细节(我已经在https://unix.stackexchange.com/a/426914/4319中描述过。除了Emacs中“默认”“face”的高度外,还可以类似地设置其他字体参数。
要为 Emacs 设置特定的默认字体高度,我已输入 /etc/X11/Xresources-site
(/etc/X11/Xresources
也可以,但可以被您的发行版覆盖):
Emacs.default.attributeHeight: 94
这也会影响作为 Emacs 的远程 X 客户端(例如,通过 ssh 在远程主机上启动的 emacs)。
/etc/X11/Xresources-site
和 /etc/X11/Xresources
(可能还有 ~/.Xresources
和 ~/.Xdefaults
)通常在 X 会话开始时读取;要立即影响您当前的 X 资源,请运行 xrdb -merge /etc/X11/Xresources-site
之类的内容。 X资源可以xrdb -query
查看。
实际上,就我而言,/etc/X11/Xresources-site
正在被读取,这要归功于/etc/X11/Xresources
中的一行(由启动脚本读取):
#include "/etc/X11/Xresources-site"
所以/etc/X11/Xresources
是肯定会读到的东西。
还有一些语法相同的文件,每次启动像 emacs 这样的 X 程序时都会读取这些文件。就我而言,它们是:~/.Xdefaults-MY_HOST_NAME
、/etc/X11/app-defaults/Emacs
(仅适用于 emacs-athena,不适用于 emacs-gtk3)、/usr/share/X11/app-defaults/Emacs
等(但我更喜欢加载 X 资源的想法——用 @987654342 显示@; 以便远程 X 客户端读取相同的 X 资源。)
Emacs 理解的其他 X 资源在https://www.gnu.org/software/emacs/manual/html_node/emacs/Table-of-Resources.html#Table-of-Resources 中描述。
Emacs 24.3 具有a bug,这使得它不支持来自 X 资源的默认面的属性,例如在我上面的示例中。这是fixed,从 24.4 开始。
【讨论】:
【参考方案7】:只需按M-x
,然后输入set-frame-font
。将显示您机器中存在的所有可用字体。
选择你要找的那个。我用这种方式简单地改变了我的 Emacs 中的字体类型;而不是更改.spacemacs
或.emacs
文件。
【讨论】:
【参考方案8】:我在init.el
中有以下设置:
(set-face-attribute 'default nil :font "Menlo" :height 160)
注意:如果您预设了窗口大小(宽度和高度),则字体的height
属性会干扰该布局。
【讨论】:
在 Ubuntu 20.04.2 emacs 27.2 上例如:(set-face-attribute 'default nil :font "Ubuntu Medium" :height 160)
。使用M-x menu-set-font
弹出一个窗口并查看您安装的可用字体。【参考方案9】:
Emacs 方式
-
M-x
customize-group
输入faces
点击“基本面孔”
打开/展开“默认”
更改字体名称(如“Inconsolata”)并取消选择“foundry”
点击“应用并保存”
【讨论】:
是什么使它成为 Emacs 的方式,特别是?以上是关于如何更改 Emacs 的默认字体大小和字体类型?的主要内容,如果未能解决你的问题,请参考以下文章