遠端主機不支援 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

大多數情況下您需要安裝必要的術語訊息遠端主機上的描述。 Linux 程式使用 Terminfo 來決定如何處理特定終端(發送哪些控製程式碼)。

例如,在 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並且tic是其中的一部分恩詛咒或者ncurses-bin大多數 Linux 發行版以及大多數使用的 BSD 中的軟體包恩詛咒(儘管在 BSD 上可能沒有每個使用者資料庫)。

答案2

我的 .bashrc 中有這個:

alias ssh='TERM=screen ssh'

相關內容