tmux および screen-256 TERM はリモートホストではサポートされていません

tmux および screen-256 TERM はリモートホストではサポートされていません

tmux を使用するように設定しましたがscreen-256colors、vim でうまく動作します。

しかし、tmux 内からリモート ホストに ssh するとscreen-256colors認識されず、次のようなエラーが発生します。

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'

各リモコンを編集する以外に.bashrcこの提案TERM)、リモート ホスト上で正しく自動的に設定する方法はありますか?

答え1

ほとんどの場合、必要なものをインストールする必要があります用語情報リモート ホスト上の説明。Terminfo は、Linux プログラムが特定の端末の処理方法 (送信する制御コード) を決定するために使用するものです。

たとえば、Debian または Ubuntu では通常、パッケージncurses-base(すべての「確立された」端末エミュレータの terminfo データを収集する) が必要です。

それができない場合は、特定の端末の terminfo データを手動でコピーできます。

  1. ローカル システムで、説明をテキスト形式でダンプします。

    infocmp xterm-256color > xterm-256color.ti
    infocmp screen-256color > screen-256color.ti
    
  2. ファイルをリモート ホストにコピーし、再度コンパイルします。

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

Linuxでは、説明はに保存されます~/.terminfo。(2023年の最近の更新時点では、この場所はない(一般的には稀ですが、setuid プログラムによって読み取られることはありません。)

infocmpそしてticncursesまたはncurses-binほとんどのLinuxディストリビューションのパッケージ、およびほとんどのBSDで使用されているncurses(ただし、BSD ではユーザーごとのデータベースが存在しない場合があります)。

答え2

私の .bashrc には次の内容があります:

alias ssh='TERM=screen ssh'

関連情報