在 SSH 连接中使用 Zellij 出现问号,通常是因为 Zellij 使用了特殊的 Unicode 字符(如 Powerline 符号或 Nerd Fonts 图标)来渲染 UI,而你的本地终端或者远程服务器环境无法正确识别这些字符。
这通常由以下三个原因造成,你可以按顺序排查:
如果你不想折腾字体,可以直接让 Zellij 不使用这些特殊字符。启动时加上参数:
zellij options --simplified-ui true
或者在配置文件 ~/.config/zellij/config.kdl 中加入:
simplified_ui true
这是最常见的原因。Zellij 默认的 UI 非常依赖 Nerd Fonts。
* 误区:你不需要在 Ubuntu 服务器上装字体。
* 正解:你必须在你正在使用的这台电脑(本地 Windows/macOS/Linux)上安装并启用 Nerd Fonts。
操作步骤:
1. 去 Nerd Fonts 官网 下载一个你喜欢的字体(推荐 JetBrainsMono Nerd Font 或 Hack Nerd Font)。
2. 安装到本地系统。
3. 关键步骤:打开你的终端软件(如 Windows Terminal, iTerm2, Alacritty, Tabby 等),在设置里把 Font (字体) 改为刚才安装的 ... Nerd Font。
如果你的 SSH 会话没有正确设置 UTF-8 编码,也会导致乱码。
在服务器上输入 locale 查看输出。如果看到很多 POSIX 或者没有 UTF-8 字样,请尝试在你的 ~/.bashrc 或 ~/.zshrc 中添加:
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
然后执行 source ~/.bashrc 并重启 Zellij。
有些旧的终端模拟器对 Unicode 支持有限。建议使用的现代终端:
* Windows: Windows Terminal, Tabby, WezTerm.
* macOS: iTerm2, Kitty, Alacritty.
* Linux: GNOME Terminal, Kitty.
总结建议: 先尝试 zellij options --simplified-ui true,如果问号消失了,说明 100% 是字体问题。这时候去本地装个 Nerd Font 就能完美解决。