gpt4 book ai didi

emacs - 是否可以在 Emacs 中设置每个模式/缓冲区和每个字符集的字体?

转载 作者:行者123 更新时间:2023-12-05 08:01:28 27 4
gpt4 key购买 nike

我想在Emacs中根据主要模式和字符集设置字体,例如,当我打开一个org文件时,我希望看到ASCII字符显示为“Consolas”字体,中文或日文字符显示字体为“Microsoft Yahei”。

目前我使用一个名为buffer-face-mode 的次要模式,可以使字体更改对应于主要模式:

(add-hook 'org-mode-hook (lambda ()
(setq buffer-face-mode-face '(:font "Consolas-10.5"))
(buffer-face-mode)))

我查看了 this page但似乎没有任何我可以设置或更改的字体的字符集属性,所以我无法继续根据不同的字符集设置字体。

而且我知道还有一个函数set-fontset-font可以根据charset设置字体,但是它只能应用于frame,不能应用于buffer和mode。

那么,有没有一种方法可以使用 buffer-face-mode 将不同的字体设置为不同的字符集,或者有一种解决方法来实现我的原始请求?

提前致谢

开尔文

最佳答案

这里有一些搜索线索:在 Emacs22 之前,我曾经定义过一些个人字体集,我不确定这是否仍然是一种有效的方法。

  • 创建一个新的字体集,描述编码列表和字体之间的映射以呈现它们中的每一个
  • 将那个字体/字体集与 default-frame-alist 一起使用,我不知道如何将它仅关联到特定模式
(create-fontset-from-fontset-spec
"-*-consolas-*-*-*-*-12-*-*-*-*-*-fontset-consolas,
ascii:-*-consolas-*-*-*-*-12-*-*-*-*-*-iso8859-1,
latin-iso8859-1:-*-consolas-*-*-*-*-12-*-*-*-*-*-iso8859-1,
latin-iso8859-15:-*-consolas-*-*-*-*-12-*-*-*-*-*-iso8859-15")

(setq default-frame-alist '((width . 100)
(height . 44)
(top . 50) ;pixels
(left . 50) ;pixels
(font . "fontset-consolas")
))

这里我总是为几种编码关联相同的字体,但是你可以使用不同的字体。

关于emacs - 是否可以在 Emacs 中设置每个模式/缓冲区和每个字符集的字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13878341/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com