Ошибка перерисовки gvim


9

У меня проблема с gvim, когда перерисовка экрана частично не удается. Это сложно объяснить, но когда я открываю текстовый файл и страница вниз или вверх, весь текстовый файл перерисовывается неправильно. Я должен переместить курсор, прежде чем он перерисовывает. У меня есть скриншот здесь, поскольку он демонстрирует проблему: http://www.box.net/shared/l4m1vrffl0dhigi80huz

Кажется, что проблема ограничена gvim, потому что любое другое приложение, которое я запускаю, в порядке и правильно перерисовывает. Мне довольно легко воспроизвести в gvim. Консоль vim в порядке. Это заставляет меня думать, что проблема ограничена gvim.

ОС - это Arch linux 3.0, на котором установлены драйверы nvidia под Gnome3 (без компиза).

Вывод из uname

Linux cyclops 3.0-ARCH # 1 ПРЕДИСЛОВИЕ SMP Вторник, 30 августа 07:32:23 UTC 2011 i686 Процессор Intel® Core ™ (TM) 2, процессор 6600 @ 2,40 ГГц GenuineIntel GNU / Linux

lsmod

lsmod | grep nvidia
nvidia              10225284  40 
agpgart                22096  1 nvidia
i2c_core               16625  2 nvidia,i2c_nforce2

gvim - версия

gvim --version VIM - Vi IMproved 7.3 (15 августа 2010 г., скомпилировано 30 сентября 2011 г., 05:51:10) Включенные исправления: 1-322 Скомпилировано в ArchLinux Большая версия с GTK2 GUI. Включенные функции (+) или нет (-): + арабский + autocmd + balloon_eval + просмотр ++ builtin_terms + byte_offset + cindent + clientserver + буфер обмена + cmdline_compl + cmdline_hist + cmdline_info + комментарии + скрыть + cryptv + cscope + cursorbind + cursorshape + диалоговое окно_конфигурации + diff + орграфы + dnd -ebcdic + emacs_tags + eval + ex_extra + extra_search + фарси + file_in_path + find_in_path + float + складывание -footer + fork () + gettext -hangul_input + iconv + insert_expand + jumplist + раскладка + раскладка + langmap + langmap + lispindent + listcmds + localmap -lua + menu + mksession + modify_fname + mouse + mouseshape + mouse_dec + mouse_gpm -mouse_jsbterm + mouse_netterm

Файл системного меню: "$ VIMRUNTIME / menu.vim" откат для $ VIM: "/ usr / share / vim" Компиляция: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -pthread -I / usr / include / gtk-2.0 -I / usr / lib / gtk-2.0 / include -I / usr / include / atk-1.0 -I / usr / include / cairo -I /usr/include/gdk-pixbuf-2.0 -I / usr / include / pango-1.0 -I / usr / include / glib-2.0 -I / usr / lib / glib-2.0 / include -I / usr / include / pixman -1 -I / usr / include / freetype2 -I / usr / include / libpng14 -I / usr / local / include -march = i686 -mtune = универсальный -O2 -pipe -fstack-protector --param = ssp-buffer- size = 4 -D_FORTIFY_SOURCE = 1 Ссылка: gcc -L. -Wl, - hash-style = gnu -Wl, - по мере необходимости -rdynamic -Wl, -export-dynamic -Wl, -E -Wl, -rpath, / usr / lib / perl5 / core_perl / CORE -Wl -O1, -сортировка общего, -при необходимости -z, relro, -hash-style = gnu -L / usr / local / lib -Wl,


2
У меня точно такая же проблема в Ubuntu 12.10 под Gnome 3. Вы - единственный другой человек в Интернете, у которого я обнаружил это. Удачи после публикации?
Джакар

@jakar Нет, я никогда не нашел способ это исправить. Сейчас я запускаю fc17 с драйверами nvidia и больше не вижу проблемы, но я не использую Gnome 3 в его модном режиме.
Сашанг

Да, я думаю, что это больше связано с gnome / gtk / xorg / drivers, чем с самим gvim. У меня также нет проблем с fc17 (хотя и на другой машине), даже с соответствующими версиями gvim, созданными из исходного кода. О, хорошо, я буду жить с этим сейчас. По крайней мере, спасибо за единственное хорошее описание и видео этого, которое я видел.
Джакар

У меня тоже есть эта проблема. Я был бы действительно заинтересован в решении.
Мэтт Фичман

2
Это звучит очень похоже на проблему 91, и я думаю, что это проблема библиотеки GTK.
Кристиан Брабандт

Ответы:


5

У меня была эта проблема, и я смог обойти ее, запустив gvim с --syncопцией. Это делает вызовы X асинхронными.

(Спасибо за ссылку в комментарии Кристиана Брабандта, которая указала мне правильное направление.)


Была такая же проблема при запуске Debian / 9 на машине с виртуальной коробкой поверх интегрированной графики. Те же симптомы отсутствия перерисовок - разделение буфера не обновляет отображение до тех пор, пока alt-tabbing для другого приложения и обратно. Ключ --sync устранил проблему.
Андрей

0

Это поможет предоставить информацию о вашей ОС, видеокарте и т. Д. Похоже на GNOME3 на ...?

У меня была такая проблема, когда я запускал GVIM и другие приложения с Compiz в качестве моего Window Manager с видеокартой NVIDIA, и исправил ее, выбрав «Compiz Config Settings Manager»> Временные решения> проверьте «Qt Window Fix».

Не знаю, поможет ли это или что-то еще в вашем случае или нет, особенно если вы используете Mutter вместо Compiz.


0

Какие плагины вы добавили в Vim, помимо того, что поставляется из коробки?

Может случиться так, что один из ваших обычно стабильных плагинов немного сбился с толку. Да, GTK выявляет проблему, но это, вероятно, не проблема. Все, что создает всплывающие окна или временно создает мини-буфер или что-то в этом роде. Автозаполнение, фрагменты, ... Если это дополнительный плагин или функция, попробуйте отключить его и посмотреть, исчезнет ли ваша проблема.

Хотя я не видел подобных всплывающих окон в вашем фильме, плагин, возможно, создает свое всплывающее окно, понимая, что он на самом деле не нужен, очищая всплывающее окно, но затем не перерисовывает содержимое, которое изначально находилось под ним.

Полноэкранная прокрутка не перерисовывает весь буфер. Курсор явно заставляет буфер перерисовывать соседей.

Конечно, это может быть основной проблемой GTK / GVim (я думаю, что X или OpenGL не имеют к этому никакого отношения), но мне это кажется маловероятным (хотя я обычно не использую Arch).

Если вы обнаружите, что это плагин, вы можете принудительно обновить или понизить версию (что угодно, кроме «сломанной» версии).


0

FWIW Я избавился от проблемы, установив пакет vim-gtk3, заменив vim-gtk(Ubuntu).

НОТА! По какой-то причине команда gvim по умолчанию не была сопоставлена ​​с vim-gtk3, когда я установил пакет, поэтому мне пришлось запускать альтернативы обновления вручную, например так:

sudo update-alternatives --set gvim /usr/bin/vim.gtk3

Большое спасибо за подсказки в этой теме, что GTK может быть проблемой. Эту проблему было трудно отследить даже с помощью Google!  

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.