为什么Vim颜色在tmux内部和外部看起来有所不同?
环境: Fedora 25(4.9.12-200.fc25.x86_64) GNOME终端3.22.1使用VTE版本0.46.1 + GNUTLS VIM-Vi IMproved 8.0(2016年9月12日,2017年2月22日16:26:11编译) tmux 2.2 我最近开始使用tmux,并且观察到Vim中的颜色会根据我在tmux内部还是外部运行而变化。下面是查看Git差异时Vim在tmux外部(左)和内部(右)的屏幕截图: 我的TERM变量是 外部tmux: xterm-256color 内部tmux: screen-256color Vim按预期(通过:set term?)报告以下终端类型: 外部tmux: term=xterm-256color 内部tmux: term=screen-256color Vim还报告两个实例都以256色模式运行(通过:set t_Co?): 外部tmux: t_Co=256 内部tmux: t_Co=256 关于让Vim在tmux中以256色模式运行(我发现最好的答案是在这里),还有很多类似的问题,但是鉴于以上信息,我认为这不是我的问题。 如果我在终端类型设置为Vim的情况下运行Vim,则可以在tmux之外复制该问题screen-256color: $ TERM=screen-256color vim 因此,我认为xterm-256color和screen-256color终端功能之间仅存在一些差异会导致颜色差异。这就引起了标题中提出的问题:终端功能中的哪些特定因素导致Vim颜色不同? 我看到了在:set termcap内部和外部运行tmux 之间的差异,但是我很好奇哪个变量实际上导致了行为上的差异。 与上一个问题无关,在tmux内部或外部运行时,Vim颜色是否可以保持一致? 我尝试过的一些事情包括: 显式地将默认终端tmux使用设置~/.tmux.conf为各种值(有些违反了tmux FAQ的建议): 设置-g默认终端“ screen-256color” 设置-g默认终端“ xterm-256color” 设置-g默认终端“ screen.xterm-256color” 设置-g默认终端“ tmux-256color” …