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 ™ 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

-mouse_sysmouse + mouse_xterm + multi_byte + multi_lang -mzscheme + netbeans_intg + path_extra + perl + persistent_undo + postscript + принтер -profile + python/dyn + python3/dyn + quickfix + reltime + вправо + вправо + запуск + ruby + scrollbind-ы + statusline -sun_workshop + синтаксис + tag_binary + tag_old_static -tag_any_white -tcl + terminfo + termresponse + текстовые объекты + заголовок + панель инструментов + user_commands + vertsplit + virtualedit + визуальный + visualextra + viminfo + vreplace + wildignore + wildmenont + набор + + + + запись + windows + write + x + write + + xim + xsmp_interact + xterm_clipboard -xterm_save системный файл vimrc: "/etc/vimrc" пользовательский файл vimrc: "$ HOME/.vimrc" пользовательский exrc-файл: "$ HOME/.exrc" системный файл gvimrc: "/etc/gvimrc" Пользовательский файл gvimrc: файл системного меню «$ HOME/.gvimrc»: «$ 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, - по мере необходимости -o vim -pthread - lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 --lgobject-2.0 - lgobject-2.0 - lgthread-2.0 -lrt -lglib-2.0-lSM -lICE -lXt -lXt -lX11 -lXdmcp -lSM -lICE -lm -lncurses -lelf -lnsl -lacl -lattr -lgpm -ldl -Wl, -E -Wl, -rpath,/usr/lib/perl5/core_perl/CORE -Wl, -O1, - общие сортировки, - по мере необходимости, -z, relro, - hash-style = gnu -fstack-protector -L/usr/local/lib -L/usr/lib/perl5/core_perl/CORE -lperl -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc -lruby -lpthread -lrt -ldl -lcrypt -lm -L/usr/lib

4 ответа4

4

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

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

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .