这似乎仅在tmux内部使用vim时发生。我也在使用iTerm2。

如果创建新的tmux窗格或调整tmux窗格的大小,它会立即如下所示:



然后修复它的唯一方法是在vim中滚动,然后返回到此:



是什么原因引起的?

评论

这也发生在没有tmux的标准gnome终端中。

请参阅以下响应以获取有关如何解决此问题的一些启发:stackoverflow.com/a/37863269/5153834

#1 楼

您可能会尝试在.vimrc中添加以下内容。

if &term =~ '256color'
  " disable Background Color Erase (BCE)
  set t_ut=
endif


t_ut选项(默认= y)描述了vim如何处理背景色而不是尝试使用当前的背景色。此代码段清除了该选项。

如果没有,您可以尝试

set ttyfast


这是一个处理vim重绘屏幕的选项。

评论


设置t_ut选项有效!

–aharris88
2015年2月4日在6:04

这对我不起作用。我已经设置了ttyfast,并尝试清除t_ut无效。我的设置与OP相同,除了我在配置为支持真彩色的Tmux中使用termguicolors。 Vim在iTerm内出色地绘制,但是当我在Tmux内运行时,开始显示与上述相同的屏幕怪异感。让我知道是否应该提出一个新问题;我以为我会在这里伸出援手,因为我遇到了基本上相同的问题。

– djmoch
16 Jun 6'在10:17



#2 楼

我相信这与ttyfast有关,因此屏幕未完全重绘。尝试将其设置为打开:

'ttyfast' 'tf'      boolean (default off, on when 'term' is xterm, hpterm,
                    sun-cmd, screen, rxvt, dtterm or
                    iris-ansi; also on when running Vim in
                    a DOS console)
            global
            {not in Vi}
    Indicates a fast terminal connection.  More characters will be sent to
    the screen for redrawing, instead of using insert/delete line
    commands.  Improves smoothness of redrawing when there are multiple
    windows and the terminal does not support a scrolling region.
    Also enables the extra writing of characters at the end of each screen
    line for lines that wrap.  This helps when using copy/paste with the
    mouse in an xterm and other terminals.