In Vim ändert sich die Hintergrundfarbe beim Scrollen

15

Gelegentlich bekomme ich beim Scrollen in einer langen Datei einen seltsamen Fehler mit der Hintergrundfarbe in vim. Der Hintergrund über dem Text ist korrekt, aber überall, wo kein druckbares Zeichen vorhanden ist, wird der Hintergrund schwarz.

Nach einigem Jagen und Experimentieren habe ich folgendes herausgefunden: neu zeichnen! behebt das Problem, aber ich möchte wissen, warum dies auftritt und ob ich irgendetwas tun kann, um das Problem dauerhaft zu beheben.

Obwohl ich diesen Fehler bei anderen Farbschemata festgestellt habe, verwende ich das Lucius-Farbschema für Vim 7.3, um eine Reihe von Python-Dateien zu bearbeiten.

jlund3
quelle
Ich habe ein bisschen mehr gespielt und es scheint nur zu passieren, wenn meine Terminalgeometrie auf eine Höhe größer als 30 oder so eingestellt ist. Ich muss noch mehr Tests durchführen, um zu sehen, ob dies
zutrifft
Hier ist ein Beispiel-Screenshot dieses Verhaltens. Ich habe nach oben gescrollt und statt des schönen grauen Hintergrunds gibt es ein paar hässliche schwarze Sachen. Screenshot
jlund3
Haben Sie verschiedene Terminalemulatoren ausprobiert (z. B. xterm, gnome-terminal usw.)?
amcnabb
Ich habe es geschafft, das Verhalten sowohl im Terminal als auch im Gnome-Terminal zu reproduzieren.
jlund3
Ich habe genau das gleiche Problem. Meins begann zu passieren, als ich Sachen nach ftplugin / <Dateityp> verschob ...
RedX

Antworten:

24

Wie hier und hier erklärt , können Sie dies durch Ausschalten beheben Background Color Erase. Ändern Sie in Ihrem .vimrc:

if &term =~ '256color'
    " Disable Background Color Erase (BCE) so that color schemes
    " work properly when Vim is used inside tmux and GNU screen.
    set t_ut=
endif

Sie können auch Ctrl+ Leingeben, um den Bildschirm zurückzusetzen.

brice
quelle
0

Dies kann ein Plugin oder eine Konfiguration sein, versuchen Sie es vielleicht

vim -u NONE

um vim ohne vimrc und ohne plugins zu laden und zu sehen, ob das problem weiterhin besteht.

Was die Konfiguration betrifft, sollten Sie sich wahrscheinlich Lazyredraw und Ttyfast ansehen.

Sie können die Dokumentation lesen, indem Sie Folgendes eingeben (: help lazyredraw) und herausfinden, ob Sie sie unwissentlich festgelegt (: set lazyredraw?) Und wahrscheinlich deaktiviert (: set nolazyredraw) haben.

Und es kann helfen, wenn Sie ttyfast setzen (: help ttyfast).

carlosdc
quelle
Ich habe sowohl nolazyredraw als auch ttyfast ausprobiert, aber das Verhalten bleibt dasselbe.
jlund3
@ jlund3 Ich habe meine Antwort ein wenig bearbeitet.
CarlosDC
Mit -u NONE gibt es keine Farben dafür. Aber nur mit dem Befehl: colorscheme lucius passiert es immer noch ...
jlund3