Workaround für kaputtes gvim – Screenupdate

Folgender Effekt: In einer VMware 11 unter Windows mit einem Ubuntu 14.04 – Gast funktioniert das Screenupdate bei gvim nicht korrekt. Das Problem äußert sich darin, daß z.B. bei einem Scrollen nur Teile des Bildschirms upgedatet werden:

Nach dem Öffnen der README-Datei ist die Anzeige noch in Ordnung:

Screenshot direkt nach Öffnen einer Datei

Nach dem Scrollen wird nur noch ein Buchstabe der neuen Seite gezeichnet:

Screenshot nach Scrollen

Nachdem durch ein Ctrl-R ein Neuzeichnen erzwungen wird, ist die Anzeige wieder i.O. (Ctrl-L hat keinen Effekt):

Screenshot nach Scrollen und Ctrl-R

Dasselbe passiert bei einer serverbasierten VM mit Konsolen-Verbindung über VMware-Workstation oder dem VSphere-Client. Eine VNC-basierte XRDP-Verbindung funktioniert dagegen. Ein anderer Ubuntu 14.04 – Gast in einer Virtualbox-VM zeigt keine Probleme. vim auf der Textkonsole ist in keiner der Kombinationen betroffen.

Im Internet finden sich Hinweise, daß das Problem mit GTK zusammenhängt:

Workaround:

Die Alternative gvim-athena (nach Installation Aufruf über vim.athena -g) zeigt keine Screen-Update-Probleme. Das Solarized-Schema sieht jedoch bei dieser Variante sehr seltsam aus (wohl aufgrund fehlender Zeichen im Font).

Wird gvim mit der GTK-Option --sync aufgerufen, besteht das Problem nicht mehr. Allerdings ist diese Option laut Doku nur zu Debugzwecken sinnvoll und verlangsamt das Programm. Aktuell ist es jedoch der brauchbarste Workaround, den man mit folgendem Eintrag in die ~/.bashrc auf der jeweiligen Maschine dauerhaft machen kann:

alias gvim='gvim --sync'