Когда у меня возникла эта проблема, это было потому, что моя vim colorscheme использовала truecolor (24 бит), а tmux поддерживает только 8 бит (256 цветов).
Вот методы проверки поддержки цвета:
Сначала убедитесь, что у вас есть поддержка 256 цветов в терминале по умолчанию и tmux с этим скриптом python:
#!/usr/bin/env python
# Copyright (C) 2006 by Johannes Zellner, <johannes@zellner.org>
# modified by mac@calmar.ws to fit my output needs
# modified by crncosta@carloscosta.org to fit my output needs
import sys
import os
def echo(msg):
os.system('echo -n "' + str(msg) + '"')
def out(n):
os.system("tput setab " + str(n) + "; echo -n " + ("\"% 4d\"" % n))
os.system("tput setab 0")
# normal colors 1 - 16
os.system("tput setaf 16")
for n in range(8):
out(n)
echo("\n")
for n in range(8, 16):
out(n)
echo("\n")
echo("\n")
y=16
while y < 231:
for z in range(0,6):
out(y)
y += 1
echo("\n")
echo("\n")
for n in range(232, 256):
out(n)
if n == 237 or n == 243 or n == 249:
echo("\n")
echo("\n")
os.system("tput setaf 7")
os.system("tput setab 0")
Ожидаемый результат - каждая строка будет разного цвета, максимум 1 белая линия.Если на черном фоне есть еще строки с белым текстом, у вас не включено 256 цветов.
Далее проверьте, есть ли у вас поддержка truecolor в вашем терминале / tmux с помощью этого сценария bash:
#!/bin/bash
# Based on: https://gist.github.com/XVilka/8346728
awk -v term_cols="${width:-$(tput cols || echo 80)}" 'BEGIN{
s="/\\";
for (colnum = 0; colnum<term_cols; colnum++) {
r = 255-(colnum*255/term_cols);
g = (colnum*510/term_cols);
b = (colnum*255/term_cols);
if (g>255) g = 510-g;
printf "\033[48;2;%d;%d;%dm", r,g,b;
printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
printf "%s\033[0m", substr(s,colnum%2+1,1);
}
printf "\n";
}'
Ожидаемый результат этого выглядит следующим образом:
Ожидаемое поведение таково, что tmux будет поддерживать 256 цветов, но не truecolor, и этоваш терминал будет поддерживать оба.Если это так, и ваша vim colorscheme по-прежнему выглядит плохо, очень вероятно, что вы используете truecolor colorcheme, и tmux не может это поддерживать.Вы можете переключиться на версию с 256 цветами или просто расстроиться из-за этого.Извините за отсутствие хороших новостей.