为什么我的提示中没有显示这些花哨的字符?

Sas*_*cha 8 ubuntu terminal-emulator fonts unicode

我使用的是 Ubuntu 14.04 和 16.04。在 14.04 我另外安装了术语。

在 16.04 终端和术语中,bash 中的字符显示不正确:

术语和 16.04

使用 Ubuntu 14.04 终端查看

Ubuntu 14.04 终端

我首先假设有一些不同的环境变量。我还没有发现是什么原因造成的。在 14.04 上安装 Terminology 并在 14.04 上以错误的方式显示字符后,我认为它与环境无关。

我必须配置什么才能在其他选项中获得与来自 Ubuntu 14.04 的终端相同的结果?

的价值PS1

\[\e[37;1m\]\[\] \u \[\e[0m\]\[\]?\[\e[0m\]\[\] \w \[\e[0m\]\[\]
Run Code Online (Sandbox Code Playgroud)

Ubuntu 14.04 终端中的变量:

LANG=en_US.UTF-8
LANGUAGE=en_US
LC_ADDRESS=de_DE.UTF-8
LC_IDENTIFICATION=de_DE.UTF-8
LC_MEASUREMENT=de_DE.UTF-8
LC_MONETARY=de_DE.UTF-8
LC_NAME=de_DE.UTF-8
LC_NUMERIC=de_DE.UTF-8
LC_PAPER=de_DE.UTF-8
LC_TELEPHONE=de_DE.UTF-8
LC_TIME=de_DE.UTF-8
Run Code Online (Sandbox Code Playgroud)

在 14.04 的术语中:

LANG=en_US.UTF-8
LANGUAGE=en_US
LC_ADDRESS=de_DE.UTF-8
LC_IDENTIFICATION=de_DE.UTF-8
LC_MEASUREMENT=de_DE.UTF-8
LC_MONETARY=de_DE.UTF-8
LC_NAME=de_DE.UTF-8
LC_NUMERIC=de_DE.UTF-8
LC_PAPER=de_DE.UTF-8
LC_TELEPHONE=de_DE.UTF-8
LC_TIME=de_DE.UTF-8
Run Code Online (Sandbox Code Playgroud)

Sté*_*las 8

该字符 (U+E0B0) 不是有效的 Unicode 字符。或者更准确地说,它位于 Unicode私人使用部分,因此您可以将其用于自己的用途。

在示例用法部分,维基百科文章提到:

Powerline 是 vim 的状态行插件,使用 U+E0A0–U+E0A2 和 U+E0B0–U+E0B3 来绘制额外的方框字符

这导致我们到https://github.com/powerline/powerline

其中提供了有关如何为这些 Unicode 点代码安装字体的说明