终端中的 tmux 强制 16 色近似

终端中的 tmux 强制 16 色近似

在 Ubuntu 版本的 gnome-terminal 中,我发现一个奇怪的颜色问题,我知道这与 gnome-terminal 有关,因为在我的 Mac 上,同样的设置可以与 iTerm2 很好地配合使用。

我从终端 ssh 进入运行 Ubuntu 14.04(本地为 14.10)的远程计算机。从这里,如果我运行 vim,我就会获得 24 位颜色支持,这从我的主题显示方式可以看出。然后我连接到 tmux 会话并运行 vim,但现在我在 vim 中看到奇怪的颜色,因为它继续使用 24 位颜色版本,但接近 16 种颜色。

不过,这种情况只会在 Ubuntu 的终端上发生。例如,在 Mac OS X 中,如果我使用 iTerm 2 执行相同操作,则在 tmux 中运行 vim 时颜色会正确显示。

我已经确认 gnome-terminal 支持 24 位颜色。以下是一些值得注意的事项:

  • t_Co=256我需要 .vimrc 中的设置才能让 24 位颜色在 gnome-terminal 中工作,但在 iTerm 2 中则不需要,因为在 iTerm 2 中我可以不设置它。查看我的颜色主题文件,这表明这是因为has("gui_running")在 iTerm 2 下运行时是正确的,但在 gnome-terminal 中不是
  • 看起来颜色降级是 tmux 和 gnome-terminal 之间的一些交互,因为当不组合时,我可以让颜色正常工作(带有 iTerm 2 的 tmux 或不带 tmux 的 gnome-terminal)

关于如何让 gnome-terminal 和 tmux 协同工作以在 vim 中显示 24 位颜色(甚至只有 256 色)的任何建议?

答案1

没关系,事实证明我只需要使用 -2 选项强制 tmux 相信我有 256 种颜色(当我意识到这真正意味着什么,即我在 tmux 中只看到 16 种颜色时,这一点变得清晰起来;我之前错误地以为我得到了 256 种颜色)。

相关内容