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 データを手動でコピーできます。
ローカル システムで、説明をテキスト形式でダンプします。
infocmp xterm-256color > xterm-256color.ti infocmp screen-256color > screen-256color.ti
ファイルをリモート ホストにコピーし、再度コンパイルします。
tic xterm-256color.ti tic screen-256color.ti
Linuxでは、説明はに保存されます~/.terminfo
。(2023年の最近の更新時点では、この場所はない(一般的には稀ですが、setuid プログラムによって読み取られることはありません。)
infocmp
そしてtic
、ncursesまたはncurses-binほとんどのLinuxディストリビューションのパッケージ、およびほとんどのBSDで使用されているncurses(ただし、BSD ではユーザーごとのデータベースが存在しない場合があります)。
答え2
私の .bashrc には次の内容があります:
alias ssh='TERM=screen ssh'