tmux and screen-256 TERM not supported on remote hosts
I have set up my tmux to use screen-256colors
and it works great with vim.
However, when I ssh to a remote host from within tmux, screen-256colors
isn't recognized, so I'm getting errors like this:
E558: Terminal entry not found in terminfo 'screen-256color' not known. Available builtin terminals are:
builtin_ansi
builtin_xterm
builtin_iris-ansi
builtin_dumb defaulting to 'ansi'
Other than editing each remote .bashrc
(similarly to this suggestion), is there any way to set the TERM
correctly and automatically on the remote host?
Solution 1:
You can copy the necessary terminfo descriptions to remote hosts.
-
On the local system, dump the description to text format:
infocmp xterm-256color > xterm-256color.ti infocmp screen-256color > screen-256color.ti
-
Copy to the remote host and compile:
tic xterm-256color.ti tic screen-256color.ti
The descriptions will be stored in ~/.terminfo
.
(infocmp
and tic
are part of the ncurses or ncurses-bin packages in most Linux distributions, as well as most BSDs that use ncurses.)
Solution 2:
I have this in my .bashrc:
alias ssh='TERM=screen ssh'