在OS X下的Emacs中显示所有Unicode字符

9
首先,请查看这个屏幕截图 GUI vs iTerm 我已经通过Homebrew在左侧安装了GUI Emacs,并在右侧使用-nw选项在iTerm2内运行了另一个Emacs。它们都使用Droid Sans Mono字体。
但是,正如您所见,右侧的Emacs可以完美处理所有Unicode字符。我认为iTerm2在这里有所帮助:
  • 左侧的display显示没有可用的字体
  • 右侧的display等于terminal code #xF0 #x9F #x8D #xBA
我怎样才能在GUI Emacs中实现与iTerm2相同的结果呢?
1个回答

11

好的,我最终通过我的emacs配置文件中的以下几行代码解决了这个问题:

;; set proper language (fixes cyrillic letters in ansi-term)
(setenv "LANG" "ru_RU.UTF-8")

;; default font
(set-face-attribute 'default nil :family "Droid Sans Mono")

;; font for all unicode characters
(set-fontset-font t 'unicode "Symbola" nil 'prepend)

;; override font for cyrillic characters
(set-fontset-font t 'cyrillic "Droid Sans Mono")

第一行可以忽略,因为它只是为了在ansi-term中修复西里尔字母。
步骤如下:
  • 使用set-face-attribute设置默认字体
  • 然后通过set-fontset-font为特定字符集设置不同的字体
当然,我需要为Symbola字体设置特定范围的字符,但现在它对我有效。
P.S. 但我仍然无法在Emacs中获得像在iTerm2中一样的彩色表情符号。

2
这个问题困扰了我一段时间。除了需要“Apple Color Emoji”而不是“Symbola”,你的字体设置方法对我非常有效。谢谢。 - dlchet
1
更正 - “Apple Color Emoji” 曾经可以使用。现在 Emacs 故意在 MacOS 上禁用了表情符号 - https://swsnr.de/posts/bye-bye-emojis-emacs-hates-macos - metakermit

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