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.


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.


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).


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.