tmux and screen-256 TERM not supported on remote hosts

32

19

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?

Yoav Aner

Posted 2012-06-02T20:45:48.200

Reputation: 585

Answers

42

You can copy the necessary terminfo descriptions to remote hosts.

  1. On the local system, dump the description to text format:

    infocmp xterm-256color > xterm-256color.ti
    infocmp screen-256color > screen-256color.ti
    
  2. 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.)

user1686

Posted 2012-06-02T20:45:48.200

Reputation: 283 655

Thanks for the quick and neat answer! I wish I could +2 this one – Yoav Aner – 2012-06-02T21:38:18.150

Agree. Worked like charm ! – Yordan Georgiev – 2014-03-11T10:09:36.467

8

I have this in my .bashrc:

alias ssh='TERM=screen ssh'

Ovidiu C.

Posted 2012-06-02T20:45:48.200

Reputation: 81