问题
In an ansi-term
terminal in Emacs, when I ssh to a specific remote host, the terminal is not recognized properly, and I get the error:
'eterm-color': unknown terminal type.
I added export TERMINFO=~/.terminfo
to .bashrc
on the remote machine, and I have tried the following on the remote machine:
cp -r /usr/share/emacs/21.4/etc/e ~/.terminfo
Just in case, I also tried copying over my own local copy of /etc/e
(Emacs 24.3) to ~/.terminfo
on the remote machine.
Also, in case it matters, if I try infocmp
on the remote machine, I get:
>infocmp
infocmp: couldn't open terminfo file /usr/share/terminfo/e/eterm-color.
How can I fix this?
回答1:
It does seem that you've seen the following information already, so it might not help, but it's probably worth reiterating.
The Emacs Wiki explains that you should copy (or symlink) the eterm-color
and eterm-color.ti
files from the /usr/share/emacs/xx.x/etc/e
directory on your local system to the ~/.terminfo/e/
directory (or alternatively, system-wide at /usr/share/terminfo/e/
).
Of course you can also do likewise on any remote host you need to connect to.
On Debian-based systems you administer, you can apt-get install ncurses-term
, which includes /usr/share/terminfo/e/eterm-color
.
With regard to the details in the question, note that if you didn't already have a ~/.terminfo
directory then cp -r /usr/share/emacs/21.4/etc/e ~/.terminfo
would not do what you intended it to do. It's not clear whether or not that was the case, but it may explain why it didn't work? You need the eterm-color files under a ~/.terminfo/e/
directory; not directly in ~/.terminfo/
.
(n.b. Personally I always just install ncurses-term
, so I can't vouch directly for the ~/.terminfo
approach.)
来源:https://stackoverflow.com/questions/22083177/eterm-color-unknown-terminal-type