W vimie kolor tła zmienia się podczas przewijania

16

Czasami pojawia się dziwny błąd z kolorem tła w vimie podczas przewijania w górę w długim pliku. Tło nad tekstem jest prawidłowe, ale wszędzie tam, gdzie nie ma znaku do wydruku, tło staje się czarne.

Po kilku polowaniach i eksperymentach odkryłem, że: przerysuj! rozwiązuje problem, ale chciałbym wiedzieć, dlaczego tak się dzieje i jeśli mogę coś zrobić, aby na stałe rozwiązać problem.

Chociaż ten błąd występował w przypadku innych schematów kolorów, dla tego, co warto, korzystam ze schematu kolorów lucius z wersją vim 7.3 edytującą kilka plików python.

jlund3
źródło
Grałem trochę więcej i wydaje się, że dzieje się to tylko wtedy, gdy mam ustawioną geometrię terminala o wysokości większej niż około 30. Będę musiał zrobić więcej testów, aby sprawdzić, czy to się utrzymuje, ale może ta informacja pomoże komuś dowiedzieć się, co jest nie tak ...
jlund3
Oto przykładowy zrzut ekranu tego zachowania. Przewinąłem w górę i zamiast pięknego szarego tła jest trochę brzydkich czarnych rzeczy. zrzut ekranu
jlund3
Czy wypróbowałeś już kilka różnych emulatorów terminali (takich jak xterm, terminal gnome itp.)?
amcnabb,
Udało mi się odtworzyć zachowanie zarówno w terminale terminala, jak i terminalu gnome.
jlund3
Mam dokładnie ten sam problem. Moje zaczęło się dziać, kiedy przeniosłem rzeczy do ftplugin / <filetype> ...
RedX

Odpowiedzi:

25

Jak wyjaśniono tutaj i tutaj , możesz to naprawić, wyłączając Background Color Erase. Zmień w .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

Możesz także wpisać Ctrl+, Laby zresetować ekran.

brice
źródło
0

Może to być związane z wtyczką lub konfiguracją, być może spróbuj

vim -u BRAK

ładować vima bez vimrc i bez wtyczek i sprawdzać, czy problem nadal występuje.

Jeśli chodzi o konfigurację, myślę, że powinieneś prawdopodobnie spojrzeć na lazyredraw i ttyfast.

Możesz przeczytać dokumentację, pisząc (: help lazyredraw) i dowiedzieć się, czy nieświadomie ją ustawiłeś (: set lazyredraw?) I prawdopodobnie ją rozbroiłeś (: set nolazyredraw).

I może to pomóc, jeśli ustawisz ttyfast (: help ttyfast).

carlosdc
źródło
Próbowałem zarówno nolazyredraw, jak i ttyfast, ale zachowanie pozostaje takie samo.
jlund3
@ jlund3 Trochę zmodyfikowałem swoją odpowiedź.
carlosdc,
Z opcją -u NONE nie ma kolorów, aby tak się stało. Jednak tylko z poleceniem: colorscheme lucius wciąż tak się dzieje ...
jlund3