分页时,tmux中的vim背景颜色发生变化

分页时,tmux中的vim背景颜色发生变化,vim,vi,tmux,Vim,Vi,Tmux,我在Solaris上以256色模式使用vim(通过Windows上的Putty连接)。在tmux之外,一切看起来都很好,工作也很好,但是在tmux中,当分页/滚动文件时,背景颜色会定期变化 下面是它的外观: 下面是在分页一段时间后的显示方式: 谢谢 您的术语设置或terminfo似乎存在问题 确保您在tmux中的术语是term=screen-256color,并且您的solaris设备具有正确的术语。添加替代解决方案,因为我自己遇到了这个问题,并且刚刚解决了它。我有正确的TERM值,term

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

下面是它的外观:

下面是在分页一段时间后的显示方式:


谢谢

您的术语设置或terminfo似乎存在问题


确保您在tmux中的术语是
term=screen-256color
,并且您的solaris设备具有正确的术语。添加替代解决方案,因为我自己遇到了这个问题,并且刚刚解决了它。我有正确的TERM值,terminfo文件在那里,等等,但是背景仍然只能在包含可打印字符的单元格后面绘制,或者在单元格左侧绘制

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

if !has("gui_running")
    set term=xterm
endif
(或者实际上是
.vimrc
中所有术语变量的任何重写)

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

,通过清除
t_ut
终端选项(运行
:在Vim中设置t_ut=
,然后按Control+L刷新终端显示),禁用背景色擦除(BCE),以便在tmux和GNU屏幕内使用Vim时,配色方案能正常工作

根据上面的链接,可以通过添加以下内容在.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

这个错误在vim 7.4中已修复


相关问题:

这似乎可以,但当我切换到screen-256时,我的F键停止工作。F键在标准{F,F}中或在功能键中?功能键。。。不过我想出来了,这是一个油灰的东西(),谢谢!这对我也很管用。除了它似乎破坏了许多键盘映射(例如CommandT中的箭头、ctrl+箭头映射):/
中的set term=screen-256color
。vimrc帮助了我。谢谢有什么理由不一直这样做吗?它会减慢渲染速度吗?
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