【问题标题】:How do I stop my VIM background from being transparent in tmux where there is no text?如何在没有文本的 tmux 中阻止我的 VIM 背景透明?
【发布时间】:2015-05-21 22:18:58
【问题描述】:

我一直致力于将我的开发设置从 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 之外的预期外观 (明晚配色方案):

这就是我在 tmux 中所经历的:

如您所见,终端背景在没有文字的地方渗出。

谢谢!

【问题讨论】:

    标签: linux ubuntu vim tmux


    【解决方案1】:

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

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

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

    验证这一理论的快速修复方法是删除或注释掉您设置 TERM.bashrc 中的一行并尝试一下。

    一个适当的解决方案是有这样的.bashrc:

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

    以上行将:

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

    【讨论】:

      猜你喜欢
      • 2014-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-09
      • 1970-01-01
      • 1970-01-01
      • 2012-07-28
      • 2022-11-14
      相关资源
      最近更新 更多