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.