В vim цвет фона меняется при прокрутке


16

Иногда я получаю странную ошибку с цветом фона в vim при прокрутке длинного файла. Фон над текстом правильный, но везде, где нет печатных символов, фон становится черным.

После небольшой охоты и экспериментов я обнаружил, что: перерисовать! устраняет проблему, но я хотел бы знать, почему это происходит, и если есть что-то, что я могу сделать, чтобы навсегда решить проблему.

Несмотря на то, что эта ошибка возникала при использовании других цветовых схем, для этого стоит использовать цветовую схему lucius с vim 7.3, редактирующую кучу файлов python.


Я немного больше поиграл, и, похоже, это происходит только тогда, когда моя геометрия терминала установлена ​​с высотой больше 30 или около того. Мне нужно будет провести дополнительное тестирование, чтобы проверить, так ли это, но, может быть, эта информация поможет кому-то выяснить, что не так ...
jlund3

Вот пример скриншота этого поведения. Я прокрутил вверх, и вместо красивого сероватого фона появились какие-то уродливые черные вещи. скриншот
jlund3

Вы пробовали несколько разных эмуляторов терминала (например, xterm, gnome-терминал и т. Д.)?
amcnabb

Мне удалось воспроизвести поведение как в терминальном, так и в терминальном гномах.
jlund3

У меня точно такая же проблема. Мой начал происходить, когда я переместил материал в ftplugin / <filetype> ...
RedX

Ответы:


25

Как объясняется здесь и здесь , вы можете исправить это, выключив Background Color Erase. Изменение в вашем .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

Вы также можете нажать Ctrl+, Lчтобы сбросить экран.


0

Это может быть плагин или связанные с конфигурацией, возможно попробуйте

vim -u НЕТ

загрузить vim без vimrc и без плагинов и посмотреть, сохраняется ли проблема.

Что касается конфигурации, я думаю, что вам, вероятно, стоит взглянуть на lazyredraw и ttyfast.

Вы можете прочитать документацию, набрав (: help lazyredraw) и выяснить, не установили ли вы ее по незнанию (: set lazyredraw?) И, возможно, сбросить ее (: set nolazyredraw).

И это может помочь, если вы установите ttyfast (: help ttyfast).


Я пробовал и nolazyredraw и ttyfast, но поведение остается тем же.
Jlund3

@ jlund3 Я немного отредактировал свой ответ.
Carlosdc

С -u NONE нет цветов для этого. Однако только с помощью команды: colorscheme lucius это все еще происходит ...
jlund3
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.