ChatGPT解决这个技术问题 Extra ChatGPT

如何更改 Emacs 的默认字体大小和字体类型?

我正在使用 Emacs 23.3。如何更改字体大小和字体类型?

关于更改默认字体大小将其保存到 .emacs 的类似问题:stackoverflow.com/q/294664/94687

N
Nick McCurdy

您还可以在 .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 来确定当前字体(例如,如果它是通过自定义设置的)或找出“全名”的可能选项
T
Tikhon Jelvis

您可以使用菜单栏。转到 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
S
Saurabh

通过以下方式获取当前字体:M-x describe-font

(如果您看到 Font name (default current choice for ASCII chars): ,请点击 Enter

这将显示可以在 init.el 中设置的属性列表。查看值后,将消息缓冲区最小化 C-x 1

现在执行 M-x customize-face 并:

向下滚动到“默认”部分更改“字体系列”的值更改“高度”的值在“状态”上按 Enter,然后 1 = 保存以备将来使用

或者,在 init.el 中,您可以使用以下内容:

(set-face-attribute 'default nil :font "Monospace" :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 获取弹出窗口并查看您安装的可用字体。
J
Jin

要获取自定义使用的扩展列表

Mx custom-face RET


i
imz -- Ivan Zakharyaschev

在我的回答中,我将专注于通过 X 资源设置默认字体大小。提到~/.Xdefaults的答案中已经提到了X资源的使用;我将提供更多细节(我已经在 https://unix.stackexchange.com/a/426914/4319 中描述过。除了 Emacs 中“默认”“面”的高度外,还可以类似地设置其他字体参数。

要为 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 之类的内容。 xrdb -query可以查看X资源。

实际上,就我而言,由于 /etc/X11/Xresources 中的一行(由启动脚本读取),正在读取 /etc/X11/Xresources-site

#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 资源的想法 - 显示为 {4 }; 以便远程 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 资源的默认面的属性,例如在我上面的示例中。这是自 24.4 以来的 fixed


P
Peter Mortensen

macOS 上的 Emacs 25.1 默认使用 Menlo 12。我想增加尺寸。

C-x C-f ~/.emacs

将此添加到 ~/.emacs 文件的末尾:

(设置默认字体“Menlo 14”)

要在停留在 ~/.emacs 时看到更改立即生效:

M-x eval-buffer [RET]


这适用于我在启动 emacs 时打开的第一个文件,但随后的缓冲区再次使用较小的字体。
M
Micah Elliott

如果您使用 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。


y
yPhil

Emacs 方式

Mx customize-group Enter faces 点击“Basic Faces” 打开/展开“Default” 更改字体名称(如“Inconsolata”)并取消选择“foundry” 点击“Apply and save”


是什么让它成为 Emacs 的方式,特别是?
P
Peter Mortensen

只需按 M-x,然后输入 set-frame-font。将显示您机器中存在的所有可用字体。

选择你要找的那个。我用这种方式简单地改变了我的 Emacs 中的字体类型;而不是更改 .spacemacs.emacs 文件。