Powerline 和 Fish:如何删除 shell 提示符和光标之间的大空白?

Powerline 和 Fish:如何删除 shell 提示符和光标之间的大空白?

我最近开始使用Arch Linux并且刚刚安装电源线(版本 3.0.0)。在我的终端中,白蚁(版本 14),输入命令时,shell 提示符和我的光标位置之间有一个很大的(水平)空间,这很麻烦。

作为补充信息,我正在使用带有 bobthefish 主题的 OMF。当我第一次安装和使用该主题时,我没有注意到任何变化,所以我不知道它是否正常工作。但它确实说它是活动主题。

在我安装 Powerline 之前不是这样的。不幸的是,我找不到有关类似问题的其他讨论。

这是它在默认大小的终端中当前的样子:
在此处输入图片描述

在最大化的终端中:
在此处输入图片描述

我以为这可能是我的字体的问题,因为我刚刚检查过,termite.config文件中的字体是 Hack,大小为 9。但是,当我使用 Powerline 字体时,它无法在终端中正确呈现。我尝试了以下两种方法:

font = "Ubuntu\ Mono\ derivative\ Powerline" 11

还有这种方式:

font = Ubuntu Mono derivative Powerline 11

在终端配置文件中,但都无法正常显示。也许电力线字体不在正确的文件夹中。它们位于

~/.local/share/fonts

事实上,位于的其他字体/usr/share/fonts也无法正确呈现。

答案1

当鱼和您的终端对特定字符的宽度不一致时,就会发生这种情况。

它几乎总是表情符号字符,因为随着 Unicode 标准的发展,许多表情符号代码点的宽度已经发生了变化。使问题复杂化的是神奇的代码点,例如乌+FE0F它们本身没有任何宽度但会影响前面的代码点。

最简单的解决方案是选择不同的字符。或者,您可以采用各种解决方法来更改 fish 和您的终端计算有问题的字符宽度的方式。

例如,参见https://github.com/fish-shell/fish-shell/issues/5583

答案2

遇到了同样的问题,已通过重新配置语言环境修复。由于非 UTF / UTF 语言环境,宽度计算似乎也存在问题,请尝试运行:

dpkg-reconfigure locales

(我通过以下方式解决了这个问题Saltstack 配置

答案3

正如他们上面所说,我添加set fish_emoji_width 2鱼配置文件,但问题仍然存在...就我而言,我在语言环境中配置了两种不同的语言:

$ locale

需要取消注释包含我的语言环境的行:(/etc/locale.gen以 root 身份编辑)

要保存上一个文件运行中所做的更改:

$ sudo locale-gen

相关内容