tmux e screen-256 TERM não suportados em hosts remotos

tmux e screen-256 TERM não suportados em hosts remotos

Eu configurei meu tmux para usar screen-256colorse funciona muito bem com o vim.

No entanto, quando faço ssh para um host remoto de dentro do tmux, screen-256colorsele não é reconhecido, então estou recebendo erros como este:

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'

Além de editar cada controle remoto .bashrc(semelhante aesta sugestão), existe alguma maneira de definir TERMcorreta e automaticamente no host remoto?

Responder1

Na maioria dos casos, você precisa instalar o necessárioinformações do termodescrições no host remoto. Terminfo é o que os programas Linux usam para determinar como lidar com um terminal específico (quais códigos de controle enviar).

Por exemplo, no Debian ou Ubuntu você geralmente precisa do ncurses-basepacote (que coleta dados terminfo para todos os emuladores de terminal "estabelecidos").

Caso contrário, você pode copiar manualmente os dados terminfo para terminais específicos:

  1. No sistema local, despeje a descrição no formato de texto:

    infocmp xterm-256color > xterm-256color.ti
    infocmp screen-256color > screen-256color.ti
    
  2. Copie os arquivos para o host remoto e compile-os novamente:

    tic xterm-256color.ti
    tic screen-256color.ti
    

No Linux, as descrições serão armazenadas em formato ~/.terminfo. (Observe que a partir das atualizações recentes de 2023, este local seránãonão pode mais ser lido por programas "setuid", embora geralmente sejam raros.)

infocmpe ticfazem parte domaldiçõesouncurses-binpacotes na maioria das distribuições Linux, bem como na maioria dos BSDs que usammaldições(embora em BSDs possa não haver um banco de dados por usuário).

Responder2

Eu tenho isso no meu .bashrc:

alias ssh='TERM=screen ssh'

informação relacionada