Vim

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

  • November 11, 2017

dist:Arch Linux。

我有一個來自 AUR 的 st build 和來自官方 repo 的 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 色並通過它模擬真彩色

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

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

這適用於 ncurses(這是任何 Linux 發行版所擁有的),也許還有NetBSD 詛咒。

您需要添加-a以追加,而不是覆蓋現有的終端功能:

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

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

set -g terminal-overrides檢查您的配置文件中稍後是否也沒有其他位置。


對於vim,您可能還需要:

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

引用自:https://unix.stackexchange.com/questions/319934