Unicode 字符在终端中的宽度不正确

Nul*_*uli 6 fonts gnome-terminal unicode emoji 20.04

这不会发生在所有 unicode 字符上,但会发生在剪刀上: \xe2\x9c\x82\xef\xb8\x8f\n这似乎是一个与字体无关的问题,因为我尝试了多种不同的等宽字体,使用“Nerd fonts”修补和未修补(我确实尝试过系统默认等宽字体)

\n

新维姆:\nNeovim 中的剪刀表情符号剪刀与 neovim 中的下一个字符重叠

\n

vscode:\n在 vscode 中渲染的剪刀表情符号使用不同的字符/表情符号集,但看起来 vscode 的渲染方式不同,因为没有重叠

\n

编辑:\n剪刀表情符号正确呈现按我的预期呈现:没有重叠

\n

终端:\n终端中的剪刀表情符号\n和 neovim 有同样的问题

\n

github: https: //github.com/NullVoxPopuli/dotfiles/blob/75ad3987e4eaa550e7dfb70a37ffe2b756594bd9/home/scripts/unme

\n

剪刀表情符号的 github 渲染\nFirefox 中的 GitHub 看起来正确

\n

有没有办法将终端配置为具有一致的表情符号/unicode 宽度/渲染?

\n
\n

根据评论者的要求提供附加信息:

\n
\xe2\x9d\xaf locale\nLANG=en_US.UTF-8\nLANGUAGE=\nLC_CTYPE="en_US.UTF-8"\nLC_NUMERIC="en_US.UTF-8"\nLC_TIME="en_US.UTF-8"\nLC_COLLATE="en_US.UTF-8"\nLC_MONETARY="en_US.UTF-8"\nLC_MESSAGES="en_US.UTF-8"\nLC_PAPER="en_US.UTF-8"\nLC_NAME="en_US.UTF-8"\nLC_ADDRESS="en_US.UTF-8"\nLC_TELEPHONE="en_US.UTF-8"\nLC_MEASUREMENT="en_US.UTF-8"\nLC_IDENTIFICATION="en_US.UTF-8"\nLC_ALL=\n
Run Code Online (Sandbox Code Playgroud)\n

我的 .bashrc 几乎是空的,只有

\n
[ -f ~/.fzf.bash ] && source ~/.fzf.bash\n\nexport PNPM_HOME="/home/nullvoxpopuli/.local/share/pnpm"\nexport PATH="$PNPM_HOME:$PATH"\n
Run Code Online (Sandbox Code Playgroud)\n

~/.fzf.bash(我认为这是默认的?/自动为我生成?)

\n
# Setup fzf\n# ---------\nif [[ ! "$PATH" == */home/nullvoxpopuli/.fzf/bin* ]]; then\n  export PATH="${PATH:+${PATH}:}/home/nullvoxpopuli/.fzf/bin"\nfi\n\n# Auto-completion\n# ---------------\n[[ $- == *i* ]] && source "/home/nullvoxpopuli/.fzf/shell/completion.bash" 2> /dev/null\n\n# Key bindings\n# ------------\nsource "/home/nullvoxpopuli/.fzf/shell/key-bindings.bash"\n
Run Code Online (Sandbox Code Playgroud)\n

我的终端在首选项中检查了“作为登录 shell 运行命令”,因此我使用了它~/.bash_profile,该文件位于: https: //github.com/NullVoxPopuli/dotfiles/blob/main/home/.bash_profile \n(和相当大/引入了一些其他自定义脚本)

\n

但是,我确认注释掉整个~/.bash_profile并打开新终端后,问题仍然存在。

\n

lem*_*mrm 0

也许您可以在 GNOME Terminal Edit -> Preferences中调整此设置。

GNOME 终端首选项