39

我在 Solaris 上以 256 色模式使用 vim(在 Windows 上通过 Putty 连接)。在 tmux 之外,一切看起来都很棒并且工作正常,但是在 tmux 中,当分页/滚动文件时,背景颜色会定期更改。

这是它的外观:

这是它在分页后的样子:

谢谢!

4

4 回答 4

53

如此处所述,通过清除终端选项(在 Vim 中运行,然后按+刷新终端显示)禁用背景颜色擦除(BCE),以便在 tmux 和 GNU 屏幕中使用 Vim 时颜色方案正常工作。t_ut:set t_ut=ControlL

根据上面的链接,可以通过添加以下内容在 .vimrc 中设置 BCE

if &term =~ '256color'
    " disable Background Color Erase (BCE) so that color schemes
    " render properly when inside 256-color tmux and GNU screen.
    " see also http://snk.tuxfamily.org/log/vim-256color-bce.html
    set t_ut=
endif
于 2013-02-26T17:24:43.640 回答
17

添加替代解决方案,因为我自己遇到了这个问题并且只是解决了它。我有正确的 TERM 值,terminfo 文件在那里,等等,但背景仍将仅绘制在包含可打印字符的单元格或它们左侧的单元格后面。

.vimrc如果你经常在 GUI vim 和 CLI vim 之间切换,你可能会在某个时候在你的文件中放入类似这样的内容:

if !has("gui_running")
    set term=xterm
endif

(或者实际上是所有 TERM 变量中的任何覆盖.vimrc

将终端覆盖更改为screen-256color

...
set term=screen-256color
...
于 2011-10-10T00:26:02.910 回答
8

这看起来像是您的术语设置或术语信息的问题。

确保您在 tmux 中的术语是TERM=screen-256color并且您的 solaris 框具有正确的术语信息。

于 2011-06-21T19:01:20.507 回答
0

此错误已在 vim 7.4补丁 7.4.1942中修复

相关问题:804

于 2016-06-17T18:37:57.573 回答