Gvim 7.4在VirtualBox内部的Linux客户机上有严重的重绘问题:经常当我向上/向下滚动时,显示的文本被损坏(例如空或者有一些“漏洞”)。 我必须resize/ rescroll来清理屏幕。 我从来没有遇到与Gvim或Virtualbox类似的问题,但它使gvim几乎无法使用。
一些更多的信息:
任何想法如何解决这个问题?
有很多重绘问题。 下面的解决方案解决了Windows 7主机,Linux客户机和Ubuntu(或Compiz)的一个非常具体的重绘问题。
解决方案1
通过最新的Virtual Box 5.0.4&Guest Additions,Ubuntu 14.04.3,3D Acceleration测试 ,完全更新的标准安装。
a) sudo apt-get install compizconfig-settings-manager
b)从破折号运行(键入“ccsm”)。 选左边的“Utility”。 选择“解决方法”(不是复选框,点击按钮进入子类别)。 “初始损坏时强制完成重绘”应该默认打开(不确定是否相关,以防万一)。 现在ENABLE强制全屏重绘(缓冲区交换)重绘,这是默认情况下,选中。 效果是立竿见影的,如果一个gvim窗口打开,只需在选项卡之间快速点击,或者跳转文件的顶部/底部来查看其差异。
解决方案2(13.04,13.10或更低)
如果使用13.04或更低(也许13.10),首先尝试切换到Virtual Box 5.0.4+(5.0.4已测试)及其客户添加,安装CCSM并测试解决方法如上所述(我可以证实这个工作在我的旧13.04虚拟机)。
如果这不起作用或使用最新的虚拟盒/客户Additions不是一个选项,然后尝试降级客户添加到版本4.2.12 (不只是4.2.x,相信我,我已经尝试了很多版本) 注意 4.2由于新的X server版本,.12在Ubuntu 14.04.3+中不起作用。
较低的帖子(一些背景)
我经历的测试:
最后,重新启动虚拟机数小时后
进一步
根据Bram Moolenaar的说法, “补丁7.3.638只是删除了一个不必要的重绘,这可能揭示了一个存在的问题” (在GTK库中)。
不过值得一提的是,我一直在使用Google Chrome,Firefox,Open Office,MySQL Workbench等一年的Ubuntu 13.04虚拟机,并且从来没有任何其他的重绘问题。 所以即使它是一个GTK错误,这个问题似乎也与VIM如何刷新窗口内容紧密相关。
https://github.com/vim/vim/issues/91
可能是一个GTK问题,但如果它只发生在Windows 7主机…那么它似乎是GTK重绘/重绘事件和Compiz的Open GL层(我猜)之间的“同步”问题。
如何重现/测试错误
在多个选项卡中打开长文本文件(保存/加载会话可节省时间)。
然后使用Ctrl-PgUp / PgDn快速切换标签,或者通过Ctrl-Home,Ctrl-End快速从一个文件的上下移动。 在几秒钟内,您将只能看到窗口刷新的一部分。
这个问题与一些肉桂的错误有关,也许只有在启用了3D加速功能的VirtualBox里运行时才会出现。 事实上,我发现显示器也被其他应用程序(例如媒体播放器)损坏。
我通过以下步骤切换到配合窗口管理器来解决问题:
现在gvim和所有其他的应用程序工作正常。
这里可能超出范围,因为我在这里使用Fedora 21
; 但是因为这是gvim刷新问题的头号结果,所以我添加了这个注释以供以后参考。
不要犹豫,分配大量的视频内存。 我曾经玩过2D accelation
以及3D accelation
选项,没有任何改变。 教师派对默认情况下,我只有12Mo
的视频,我把它改成了128Mo
而且128Mo
现在工作得很好。
我在Salix操作系统下面临同样的问题。 由于在VirtualBox中改变加速设置并不能解决问题,我发现使用GTK + 3构建gvim更容易(因为错误是由GTK + 2触发的,正如@ user4134275答案中提到的),而不是搞乱Window Manager和Desktop Environment 。