tmux vim colorscheme背景未显示


12

我已经安装了tmux,但是现在文本模式vim colorschemes无法正确填充背景色。这是普通Ubuntu 14.10终端中的colorscheme xoria256的外观:

在此处输入图片说明

在这里,当我在tmux之后的完全相同的终端中运行它时:

在此处输入图片说明

因此,如您所见,桌面在vim中没有文本的任何地方显示。我有一个256色端子。

我的.tmux.conf:

~ cat .tmux.conf
set -g mode-mouse on
set -g default-terminal "screen-256color"

我有一个256色端子:

~ tput colors
256

如何使tmux与在普通终端中正常工作的vim 256色配色方案正常工作?


以我的经验,tmux在启动时表现异常gnome-terminal。尝试使用启动tmux,TERM=xterm tmux看看它的行为是否不同。如果xterm不起作用,请尝试xterm-256colorxterm-color
jw013 2014年

@ jw03不幸的是,这些选项都无法解决它。行为相同。如果我在终结器中运行tmux,则行为相同
Thomas Browne 2014年

1
在tmux内的shell中,的值是$TERM多少?如果不是的话screen-256color,尝试推出vimTERM=screen-256color vim,然后确保没有启动脚本集TERM(或者,如果你需要做的是要解决bug的软件,请确保它首先检查原始值)。
Ry-

@minitech:宾果游戏。我有xterm-256color而screen-256color解决了这个问题。如果您回答这个问题,我会接受的。
Thomas Browne 2014年

这对我
有用

Answers:


5

通常在某些shell启动脚本中,如果在Vim的环境中TERM未将其设置为正确的值screen[-256color],则会发生这种情况。如果是这种情况,例如,您有一个

TERM=xterm-256color

,请将其删除或确保TERM在更改之前先检查的原始值,例如

if [[ $TERM == xterm ]]; then
    TERM=xterm-256color
fi


2

后期评论,但是我浏览了所有线程,直到执行以下操作才解决。我所要做的就是添加第二张支票

if [[ $TERM == screen]]; then
    TERM=screen-256color
fi

除了文件中的第一个条件语句之外.bashrc

if [[ $TERM == xterm ]]; then
    TERM=xterm-256color
fi

我在.tmux.conf

set -g default-terminal "screen-256color"

在我的.vimrc档案中:

set term=screen-256color
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.