为什么在Emacs中有些Unicode字符是看不见的?

11

我一直在利用Emacs的Unicode支持进行一些技巧操作,大部分情况下都很顺利。然而,并非所有的Unicode字符都能显示,即使它们在字体中也是如此。例如:

→ ‽ ← 这里应该有个感叹疑问号

上面这段文字(如果它被正确地呈现出来)包括普通的ASCII字符,几个Unicode箭头以及Unicode感叹疑问号(这是一个非常有用的字形,需要更广泛的使用)。但无论如何,即使我使用DejaVu Sans字体(它确实有正确的字形),Emacs也无法显示感叹疑问号。OpenOffice可以打开文件并显示字形,但无论我尝试什么,我都无法让Emacs显示它。

我使用的是Mac上的Emacs 24.1.1。

2个回答

7

尝试使用unicode-fonts包。您可以通过M-x package-install unicode-fonts进行安装,然后将以下内容放入您的.emacs文件中:

(require 'unicode-fonts)
(unicode-fonts-setup)

大多数unicode字体现在对我来说都可以使用了。但有些像啤酒杯这样的符号仍然无法显示。我还在使用emacs(v24.3安装在Mac上,使用homebrew)。

编辑:显然,由于这个 bug,某些符号仍无法显示。


在Windows下,DejaVu Sans Mono可以正常显示Unicode字符,但Courier New或Consolas无法显示它们(这就是我注意到问题的原因)。通过您的答案解决了这个问题,并且我确认Win上的Emacs没有受到相同的错误影响(如错误链接中清楚描述的那样)。 - Charles Roberto Canato
对我来说不起作用:这个字符“`”仍然无法在Emacs中显示。 - Hi-Angel
1
好的,对我有用的是更新到正在开发中的Emacs版本29.0.50.150941。现在即使我没有安装unicode-fonts包,Unicode字符也显示正确。 - Hi-Angel

0
  1. 升级emacs到版本>= 28
  2. 在您的系统上安装支持这些字形的字体(例如NerdFonts之一)
  3. 配置emacs将其用作默认框架字体在您的.emacs中,例如:(set-frame-font "FiraCode Nerd Font 12" nil t)

将emacs升级到版本>=28。这个问题是9年前提出的,我认为这个“更新”建议不会帮助未来遇到同样问题的用户。 - Shmiel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接