我最近发现了整洁猫咪因为我在 ZSH 下使用的主题的某些方面在 Xfce 终端下渲染得不太好,但在 kitty 下却可以。
不幸的是,当涉及到在 SSH 连接上使用 tmux 时,如果从我的桌面/服务器(运行根图)到我的任何 Raspberry Pi(正在运行Arch Linux ARM)或我的 VPS(也运行 Arch Linux)并启动 Tmux 会话我被告知......
open terminal failed: missing or unsuitable terminal: xterm-kitty
然而,我有一台也运行 Arch 的笔记本电脑,如果我从桌面/服务器 SSH 到它并启动 SSH 会话,就没有问题,反之亦然,从笔记本电脑到桌面/服务器的 SSH 和 Tmux 运行良好。
我应该补充一点,当通过 SSH 连接到运行 Arch Linux 的 Raspberry Pi/VPS(如果位于 Xfce 终端下)时,我可以运行 Tmux 会话。
关于如何调查或解决这个问题,以便 Tmux 会话在任何地方都可以工作,有什么想法吗?
答案1
如果您在登录时收到诸如“终端未知、缺少或不适合终端”之类的错误消息,则表示服务器无法识别您的终端。
正确的解决办法是把客户端的terminfo
文件安装到服务器上。这告诉服务器上的控制台程序如何正确地与您的终端交互。您可以使用有关当前 terminfo 的信息infocmp
,然后找出哪个包拥有它。
如果无法正常安装,可以将terminfo复制到服务器的主目录中:
$ ssh myserver mkdir -p ~/.terminfo/${TERM:0:1}
$ scp /usr/share/terminfo/${TERM:0:1}/$TERM myserver:~/.terminfo/${TERM:0:1}/
从服务器登录和退出后,问题应该得到解决。
答案2
@user88036 接受的答案是一个很好的解释和一个很好的通用解决方案。我最近在 Kitty 文档中发现他们有一个很好的实用程序,使用他们的 CLI 工具。来自文档
发生这种情况是因为 kitty terminfo 文件在服务器上不可用。您可以使用以下命令通过 ssh 登录,该命令会自动将 terminfo 文件复制到服务器:
kitty +kitten ssh myserver
答案3
如果您连接到的计算机无法安装 terminfo 文件,则可以将TERM
环境变量设置为该计算机支持的内容 — 与 kitty 非常兼容的配置文件(按优先顺序降序排列),包括
- xterm-256color
- xterm 颜色
- xterm
- VT102
如果您希望远程计算机上的登录 shell(例如 bash)选择正确的终端,则应该将其导出到环境中前运行 ssh。如果你不关心,因为你只想运行 tmux,你可以在之后设置它。当然,您将失去 kitty 的一些很酷的功能,但是在您无法安装 terminfo 并拥有基本的功能优先,还是可以用的。