無法透過覆蓋 terminfo 在 tmux 中啟用 TrueColor 支持

無法透過覆蓋 terminfo 在 tmux 中啟用 TrueColor 支持

發行版:Arch Linux。

我有一個來自 AUR 的 st 版本和來自官方倉庫的 tmux。在 st 中,我遇到了一個很好的 TrueColor 支持,它可以透過 termguicolors 選項與最新的 Vim 版本一起使用。但是當我嘗試將其引入 tmux 時,我遇到了一些問題。

第一次輸出

tmux info | grep Tc

從 tmux 內部是

197: Tc: [missing]

閱讀 tmux 手冊頁後我發現這個選項必須帶到 tmux Tc

set-option -g terminal-overrides "st-256color:Tc"

從我的終端模擬器返回我的位置:

TERM=st-256color 

但tmux info的結果還是一樣。只是為了檢查我安裝了 xterm 並嘗試了相同的操作,但它沒有給我另一個結果。畢竟 tmux 識別終端支援 256 色並透過它模擬真彩色

答案1

您可以修改終端描述的副本以提供此標誌:

infocmp -x >foo
edit foo, adding "Tc," after the end of any line ending with a comma
tic -x foo

這適用於 ncurses(這是任何 Linux 發行版都有的),並且也許NetBSD 的詛咒。

答案2

您需要新增-a附加功能,而不是覆蓋現有的終端功能:

set-option -ga terminal-overrides ",*256*:Tc"

這適用於任何宣傳 256 色的終端。

set -g terminal-overrides檢查您的設定檔中稍後是否還有其他內容。


對於vim,您可能還需要:

set -g default-terminal "screen-256color"

相關內容