鱼 Shell 修复表情符号间距 iTerm2 MacOS

Fish Shell Fix Emoji Spacing iTerm2 MacOS

在 iTerm2 中使用 fish shell 2.7.1 表情符号无法正确显示

在 iTerm 中启用 Unicode 9 宽度后,表情符号变得古怪

用右手提示 没有右手提示

如果没有 Unicode 9 宽度,表情符号会被弄脏。

我该如何解决这个问题?

这是由于 fish 中用于确定每个角色获得多少 space 的过时 wc-width 函数所致。这应该会在 fish 3 中修复。如果你想让表情符号在 fish 中正常工作 2.x.x:

  1. 从 GitHub 构建源代码,而不是 cmake ..,而是 cmake -DINCLUDED_WCWIDTH=OFF ..。这会用到你系统的wc-width功能,使用MacOS应该会更好

  2. set -g fish_emoji_width 2 添加到 ~/.config/config.fish。这将使表情符号默认宽度为 2,这应该可以解决间距问题。

这个问题有详细解释here