如何在没有文本的tmux中阻止我的VIM背景透明?

时间:2015-05-21 22:18:59

标签: linux ubuntu vim tmux

我一直致力于将我的开发设置从Mac OS迁移到基于Ubuntu的新分区。

我目前无法让背景在tmux中保持稳固。

我的.bashrc中的TERM设置为xterm-256color,而vim在tmux之外按预期工作。我也把tmux别名为" tmux -2"并添加了

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

到我的.tmux.conf。

我的.vimrc包含:

set t_Co=256
set background=dark
color Tomorrow-Night

我想解释这个的最好方法是使用图像...这是tmux之外的预期外观 (Tomorrow-Night colorscheme):

VIM outside of tmux

以下是我在tmux中遇到的内容:

VIM inside of tmux

正如您所看到的,终端背景正在流淌,没有文字。

谢谢!

1 个答案:

答案 0 :(得分:5)

我刚试过在我的机器上重现你的设置,我在后台遇到了类似的问题。

似乎将xterm-256color中的TERM设置为.bashrc,从tmux覆盖set -g default-terminal "screen-256color",这会导致问题。这是有道理的,因为bash在tmux中运行,其设置覆盖了来自tmux的那些。

您可以通过在echo $TERM内的bash中运行tmux来轻松验证这一点。根据您当前的设置,它将为xterm-256color,这是不可行的,因为Tmux明确要求将其设置为screen-256color

验证此理论的快速修正工具只是删除或评论.bashrc中设置TERM并尝试解决问题的行。

正确的解决方案是使用.bashrc

[ -z "$TMUX" ] && export TERM="xterm-256color"

以上一行将:

    如果bash独立运行(无tmux),则
  • TERM设置为xterm-256color
  • 如果在tmux 中运行,
  • 将不会覆盖TERM