дистрибутив: Arch Linux.
У меня есть сборка st из AUR и tmux из официального репозитория. В st я нашел хорошую поддержку TrueColor, которая работает с последней версией Vim через опцию termguicolors. Но когда я попытался перенести это в 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 цветов и эмулирует true color через него
решение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"