在tmux中Vim颜色未显示

7
我已经有一周不能在tmux中使用vim了。 我将所有的dotfiles存储在Github中(这里是https://github.com/jordanjones98/dotfiles),当我得到一台新电脑时,我认为它会很容易地进行git pull和其他简单设置。 当我拉取并安装我的插件时,一切都在tmux之外工作,但在其中不起作用。 我正在使用vim 8.0和tmux 2.6。 我在iTerm中使用zsh shell。值得注意的是,这个相同的配置在我的旧电脑上工作,在我的当前工作电脑上也工作。 我甚至复制了来自我的工作电脑的iTerm配置,尝试让它工作。 我尝试过以下几个方法:
运行tmux -2
运行TERM=screen-256color-bce tmux
在我的.tmux.conf文件中设置set -g default-terminal "screen-256color"
在我的iterm首选项中将“报告终端类型”设置为xterm-256color
我也尝试在常规的Mac终端上运行它,发现vim在tmux外部可以正常运行,但在tmux内部无法正常运行。我已经研究了几天,但没有找到任何解决方法。我知道我的.tmux.conf和.vimrc文件在tmux中被加载,因为插件和底部栏都显示出来了。我的dotfiles相当大,请在这里查看。https://github.com/jordanjones98/dotfiles
1个回答

13

我注意到您在~/.zshrc中没有设置TERM。

请尝试添加以下内容:

export TERM="screen-256color"

到您的.zshrc文件中,而不是bce条目 - 然后在启动新的tmux会话之前确保您运行了source ~/.zshrc

注意:我使用osx,因此我的tmux.conf文件使用set -g default-terminal "screen-256color",如果您使用Linux,则可能不同。重点是这个问题通常可以通过在我的.zshrc文件中使用export TERM来解决。

编辑:

我尝试了您的dot文件,并且我认为我复制了这个问题。使用这个可怕的解决办法后,问题消失了。在设置配色方案之前,请尝试在您的~/.vimrc文件中的第44行左右添加以下内容:

let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"

嗨,感谢您的回复,不幸的是,那个方法并没有起作用。我已经更新了代码并将其放在Github上供您查看,但我仍然遇到同样的问题。 - Jordan
你的tmux.conf对我很有用。接下来我会一起尝试你的点文件,你用的是什么操作系统? - navicore
我正在使用MacOS 10.13.2。我在另一台电脑上也使用了它,那里的一切都正常工作。似乎只有这台电脑存在问题。 - Jordan
我能够在一个全新的用户账户下重现iTerm中无颜色的问题。有一些丑陋的bug报告提供了解决方法,这些方法对我有效。我将更新我的答案,并提供vimrc编辑的解决方法供您尝试。 - navicore
1
谢谢您的编辑。那个有效。可能不太美观,但现在可以用。谢谢! - Jordan
哇,这两行代码将在我的~/.vimrc文件中看起来非常出色(而且它确实有效,谢谢!) - gscgomes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接