URXVT 中没有 Unicode 符号

dud*_*das 5 fonts rxvt unicode

我使用 urxvt 和 DejaVu Sans Mono 作为字体:

urxvt.font:     xft:DejaVu Sans Mono
Run Code Online (Sandbox Code Playgroud)

但是我看不到像 '?' 这样的 Unicode 字符。

为什么 ?urxvt 能够显示这些符号吗?

谢谢你

Tho*_*key 5

手册是去的地方,选择:

-fn fontlist
选择要使用的字体。这是一个逗号分隔的字体名称列表,在尝试查找字符的字形时按顺序检查。第一种字体定义了字符的单元格大小;其他字体可能更小,但(通常)不会更大。一个(希望)合理的默认字体列表总是附加到它。有关更多详细信息,请参阅资源字体。

和资源设置:

font: fontlist
选择要使用的字体。这是一个逗号分隔的字体名称列表,在尝试查找字符的字形时按顺序检查。第一种字体定义了字符的单元格大小;其他字体可能更小,但(通常)不会更大。一个(希望)合理的默认字体列表总是附加到它;选项-fn

每个字体可以是标准的 X11 核心字体 (XLFD) 名称,带有可选的前缀"x:"或 Xft 字体(编译 xft),前缀为"xft:".

鉴于@thrig 的评论,您应该可以这样做:

urxvt.font:     xft:DejaVu Sans Mono, xft:Noto Emoji
Run Code Online (Sandbox Code Playgroud)

(如果您安装了这些字体)。

但是,Fedora24 中的 google-noto-emoji-fonts 包似乎是一种混合宽度字体,urxvt 无法处理,给出了以下消息:

$ urxvt -fn 'xft:DejaVu Sans Mono,xft:Noto Emoji'                               
urxvt: unable to calculate font width for 'Noto Emoji:slant=0:weight=100:pixelsize=19:minspace=True', ignoring.
Run Code Online (Sandbox Code Playgroud)

根据 Font-Awesome 错误报告无法与 urxvt #3681 一起使用,urxvt 不会检查专用区域(即非标准化)中字形的宽度。这适用于任何表情符号字体。

如果您只关心表情符号,则 urxvt 仅使用该字体运行(并且对所有内容都使用双宽单元格):

urxvt -fn 'xft:Noto Emoji'
Run Code Online (Sandbox Code Playgroud)

urxvt 在后台