如何更改 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 的默认字体大小和字体类型?的主要内容,如果未能解决你的问题,请参考以下文章

修改 PowerShell 脚本以更改 Outlook 的默认字体类型和大小

设置 Emacs 默认字体 par-buffer/mode

如何更改 Python 文档字符串的 Emacs 字体?

如何在安装在gentoo的emacs 24中设置字体大小

使用 Ctrl 键和鼠标滚动调整 Emacs 字体大小

绑定键以增加/减少emacs中的字体大小