在Emacs的ansi-term终端中,当我SSH到特定的远程主机时,终端无法正确识别,并且出现错误:

'eterm-color': unknown terminal type.

我在远程计算机上的export TERMINFO=~/.terminfo中添加了.bashrc,并且在远程计算机上尝试了以下操作:
cp -r /usr/share/emacs/21.4/etc/e ~/.terminfo

为了以防万一,我还尝试将自己的本地/etc/e(Emacs 24.3)复制到远程计算机上的~/.terminfo

另外,万一重要,如果我在远程计算机上尝试infocmp,我会得到:
>infocmp
infocmp: couldn't open terminfo file /usr/share/terminfo/e/eterm-color.

我怎样才能解决这个问题?

最佳答案

看来您已经看过以下信息,因此它可能无济于事,但可能值得重申。

Emacs Wiki解释说,您应该将本地系统上eterm-color目录中的eterm-color.ti/usr/share/emacs/xx.x/etc/e文件复制(或符号链接(symbolic link))到~/.terminfo/e/目录(或者,在系统范围内/usr/share/terminfo/e/)。

当然,您也可以在需要连接的任何远程主机上进行同样的操作。

在您管理的基于Debian的系统上,您可以apt-get install ncurses-term,其中包括/usr/share/terminfo/e/eterm-color

关于问题的详细信息,请注意,如果您还没有~/.terminfo目录,那么cp -r /usr/share/emacs/21.4/etc/e ~/.terminfo不会执行您希望的操作。尚不清楚是否是这种情况,但这可以解释为什么它不起作用?您需要在~/.terminfo/e/目录下的eterm-color文件;不是直接在~/.terminfo/中。

(注:个人而言,我总是只安装ncurses-term,所以我不能直接担保~/.terminfo方法。)

10-08 13:34