Vim 256 颜色与 tmux 的奇怪行为

标签 vim tmux 256color

这只是我在终端上遇到的一个有趣的小问题。我在 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 中得到了奇怪的背景颜色。对此的任何帮助都会很棒。

最佳答案

这只是一个快速调查。

  1. gnome-termnial内执行tmux后,“COLORTERM”将被覆盖。这意味着 $COLORTERM 在 tmux 中为 NULL。

这些变量的流动。

  1. gnome-terminal 启动并加载您的 .zshrc。 (TERM=xterm-256color COLORTERM = gnome-terminal)
  2. tmux 启动。 (它覆盖 COLORTERM,加载其配置“default-terminal”作为 TERM 的值)
  3. tmux 加载 .zshrc(TERM 重写为“xterm-256color”)
  4. 现在 => TERM = "xterm-256color"COLORTERM = ""
  5. 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/

相关文章:

vim - 关于如何创建类似Vim的编辑器的任何教程吗?

tmux - 共享服务器不在/tmp 中?

putty - tmux 和多个 PuTTY/KiTTY session

vim - 将 VIM 设置为 256 色

获取所有映射的 Vim 函数

javascript - 使用 Webpack 代字号别名时通过 Vim 中的 'gf' 解析 JavaScript 模块

perl - 如何在 emacs 中使用 cscope 导航 perl 代码?

linux - TMUX Pane 中的 vim 发生了什么?

linux - EMACS 24 Arch linux 不支持 256 色

vim - 终端在关闭 vim 后保留 bg 颜色 - 使用配色方案和 putty-256color 术语