我在 Arch Linux 上运行Tilix 。我在运行 vim 或 tmux 时遇到表情符号显示问题,即使在不运行 vim 或 tmux 时在同一个终端中一切正常。
出于演示目的,我有一个名为的 shell 脚本smile
,如下所示:
#!/bin/sh
echo '?'
在终端上运行时,它会产生:
但是当tmux
在同一个终端上运行时,我得到:
如果我打开脚本,vim
我会看到:
在我的 Fedora 31 系统上,也运行 Tilix(在 Gnome 下),上述所有工作都很好:表情符号在 tmux 和 vim 下正确显示。
对这里可能发生的事情有任何想法吗?
从 OS-Locale 到 Terminal,再到 Tmux,再到 Vim,你需要正确的 Unicode。链的每个部分都必须正确支持 Unicode。
对于您的操作系统区域设置
你需要类似的东西:
set LANG="en_US.UTF-8"
对于 Tmux
尝试使用 tmux 启动 tmux
tmux -u
,就像 Jon 建议的那样。如果这不起作用,那么您可能需要检查配置文件.tmux.conf
或重置为默认值。为 VIM
您需要编译具有多字节支持的 vim。
最简单的方法是运行
这将在正确的支持下构建 vim。
您可以验证它是否已正确编译
在 vim 中或通过运行
并寻找
+multi_byte
。如果它说它-multi_byte
不会工作。尝试使用 -u 标志启动 tmux 以启用 unicode 编码