这只是我在终端上遇到的一个有趣的小问题。我在 gnome-terminal 中使用 vim。我喜欢 256 种颜色,这样我就不必使用 gVIM。
我的相关 .zshrc 设置是:
export TERM=xterm-256color
我的相关 .vimrc 设置是:
if $COLORTERM == 'gnome-terminal'
set t_Co=256
endif
您会从这个节目中注意到问题是什么: http://showterm.io/06460aeb043cac4bd0256
我在 tmux vim 中得到了奇怪的背景颜色。对此的任何帮助都会很棒。
最佳答案
这只是一个快速调查。
- 在gnome-termnial内执行tmux后,“COLORTERM”将被覆盖。这意味着 $COLORTERM 在 tmux 中为 NULL。
这些变量的流动。
- gnome-terminal 启动并加载您的 .zshrc。 (TERM=xterm-256color COLORTERM = gnome-terminal)
- tmux 启动。 (它覆盖 COLORTERM,加载其配置“default-terminal”作为 TERM 的值)
- tmux 加载 .zshrc(TERM 重写为“xterm-256color”)
- 现在 => TERM = "xterm-256color"COLORTERM = ""
- vim 启动 =>(除了您的 .vimrc 配置之外,如果术语为 256 色,则 t_Co 设置为 256)
问题在于,只有 TERM="screen-256color"而不是 "xterm-256color"时,tmux 才能正确支持 256 色。
下面是一个解决方案:
首先,将其添加到您的 .zshrc(我使用 bash 语法):
if [[ $COLORTERM == 'gnome-terminal" ]]; then
export TERM="xterm-256color"
fi
其次,将其添加到您的“~/.tmux.conf”中:
set -g default-terminal screen-256color
最后,不需要vim设置。
还有什么问题请评论。
关于Vim 256 颜色与 tmux 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20557666/