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

Mik*_*rge 2 linux vim ubuntu tmux

我一直在努力将我的开发设置转移到Mac OS的新的基于Ubuntu的分区.

我目前无法让背景在tmux中保持稳定.

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

set -g default-terminal "screen-256color"
Run Code Online (Sandbox Code Playgroud)

到我的.tmux.conf.

我的.vimrc包含:

set t_Co=256
set background=dark
color Tomorrow-Night
Run Code Online (Sandbox Code Playgroud)

我想解释这个的最好方法是使用图像......这是tmux之外的预期外观(明天 - 夜晚色彩方案):

VIM在tmux之外

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

Tm内部的VIM

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

谢谢!

小智 5

我刚试过在我的机器上重现你的设置,我遇到了类似的背景问题.

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

您可以通过echo $TERMbash内部运行轻松验证这一点tmux.根据您当前的设置,这将xterm-256color是一个禁忌,因为Tmux明确要求将其设置为screen-256color.

验证此理论的快速修补程序只是.bashrc在您设置TERM和尝试的位置删除或注释掉一行.

一个合适的解决方案是拥有这样的东西.bashrc:

[ -z "$TMUX" ] && export TERM="xterm-256color"
Run Code Online (Sandbox Code Playgroud)

以上行将:

  • 设置TERMxterm-256color如果bash独立运行(没有tmux)
  • TERM如果在tmux中运行,则不会覆盖