Vim在tmux中显示错误的颜色

5
我有一个Ubuntu 17.04系统,Tmux版本为2.3,Vim版本为8.0,并且使用了一个名为onedark的颜色方案。当我在TMUX中时,Vim显示正确的颜色方案,但当我TMUX中时,Vim看起来完全不同。我已经尝试在.bashrc、.vimrc和.tmux.conf中进行了各种配置,但没有成功。最近我发现,如果我在Tmux中以root(administrative)权限运行vim,则一切都按预期工作,但我认为这并不是一个好的解决方案。所以我的问题是,如何使Vim在具有或不具有root权限以及在TMUX内外时都显示一致的颜色方案。我的与颜色相关的配置如下:.tmux.conf
set-option -sa terminal-overrides ",xterm*:Tc"
set -g default-terminal "xterm-256color"

.vimrc

set encoding=utf-8
set nocompatible 
set t_Co=256
set t_ut=
set background=dark
set showmatch
syntax on

if (empty($TMUX))

  if (has("nvim"))
    let $NVIM_TUI_ENABLE_TRUE_COLOR=1
  endif

  if (has("termguicolors"))
    set termguicolors
  endif

endif

colorscheme one

如果在tmux内或外执行echo $TERM命令,我得到的结果是xterm-256color


2
也许罪魁祸首是你在终端启用了 termguicolors 设置,但没有在 Tmux 中启用? - Alexander Batischev
感谢@AlexanderBatischev的帮助,我已经成功将termguicolors从IF条件中移出,现在一切正常。 - Eskinder
很高兴听到这个消息!我现在把我的评论发布为答案,请接受它。 - Alexander Batischev
@AlexanderBatischev 绝对没问题 - Eskinder
1个回答

4
罪魁祸首是“termguicolors”设置,你在终端中启用了该设置,但没有在Tmux中启用。将其移出最外层的“if”应该可以解决问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接