Mam problem z gvim, w którym przerysowanie ekranu częściowo się nie udaje. Trudno to wyjaśnić, ale kiedy otwieram plik tekstowy i przewijam stronę w dół lub w górę, cały plik tekstowy nie jest poprawnie przerysowany. Najpierw muszę przesunąć kursor przed przerysowaniem. Mam tutaj zrzut ekranu, ponieważ pokazuje on problem: http://www.box.net/shared/l4m1vrffl0dhigi80huz
Wygląda na to, że problem jest ograniczony do gvim, ponieważ każda inna aplikacja, którą uruchamiam, jest w porządku i przerysowuje się poprawnie. Bardzo łatwo mi się rozmnażać w gvimie. Vim konsoli jest w porządku. To sprawia, że myślę, że problem jest ograniczony do gvim.
System operacyjny to Arch Linux 3.0 z uruchomionymi sterownikami NVIDIA z systemem Gnome3 (bez compiz).
Wyjście z uname
Linux Cyclops 3.0-ARCH # 1 SMP PREEMPT Wt 30 sierpnia 07:32:23 UTC 2011 i686 Intel (R) Core (TM) 2 CPU 6600 @ 2.40GHz Oryginalny Intel GNU / Linux
lsmod
lsmod | grep nvidia
nvidia 10225284 40
agpgart 22096 1 nvidia
i2c_core 16625 2 nvidia,i2c_nforce2
gvim --version
gvim --version VIM - Vi IMproved 7.3 (15 sierpnia 2010, kompilacja 30 września 2011 05:51:10) Zawarte łaty: 1-322 Kompilacja ArchLinux Duża wersja z graficznym interfejsem GTK2. Funkcje zawarte (+) lub nie (-): + arabski + autocmd + balon_eval + przeglądaj + wbudowany_term + bajt_offset + cindent + klient serwer + schowek + cmdline_compl + cmdline_hist + cmdline_info + komentarze + ukrywanie + cryptv + cscope + kursor + kursor + kursor + dialog_konwersja + diff + digraphs + dnd -ebcdic + emacs_tags + eval + ex_extra + extra_search + farsi + file_in_path + find_in_path + float + folding -footer + fork () + gettext -hangul_input + iconv + insert_expand + jumplist + line + mapping + lispindent + listcmds + mapa lokalna -lua + menu + mksession + zmodyfikuj_nazwa + mysz + kształt myszy + mysz_dek + mouse_gpm -mus_jsbterm + mouse_netterm
plik menu systemowego: „$ VIMRUNTIME / menu.vim” rezerwowy dla $ VIM: „/ usr / share / vim” Kompilacja: 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 = ogólne -O2 -pipe -fstack-protector --param = bufor -spsp size = 4 -D_FORTIFY_SOURCE = 1 Łączenie: gcc -L. -Wl, - hash-style = gnu -Wl, - w razie potrzeby -rdynamic -Wl, -export-dynamic -Wl, -E -Wl, -rpath, / usr / lib / perl5 / core_perl / CORE -Wl , -O1, - sort-common, - w razie potrzeby, -z, relro, - hash-style = gnu -L / usr / local / lib -Wl,
Odpowiedzi:
Miałem ten problem i byłem w stanie obejść ten problem, uruchamiając gvim z
--sync
opcją. To powoduje, że wywołania X są asynchroniczne.(Dzięki linkowi w komentarzu Christiana Brabandta za skierowanie mnie we właściwym kierunku.)
źródło
Pomoże to dostarczyć informacji o systemie operacyjnym, karcie graficznej itp. Wygląda jak GNOME3 na ...?
Miałem taki problem podczas uruchamiania GVIM i innych aplikacji z Compiz jako moim Window Managerem z kartą graficzną NVIDIA i naprawiłem go, przechodząc do „Compiz Config Settings Manager”> Obejścia> zaznacz „Qt Window Fix”.
Nie ma pojęcia, czy to, czy coś innego, pomoże w twoim przypadku, czy nie, szczególnie jeśli używasz Muttera zamiast Compiz.
źródło
Jakie wtyczki podłączyłeś do Vima poza tym, co wyszedł z pudełka?
Być może jedna z twoich normalnie stabilnych wtyczek trochę się zepsuła. Tak, GTK ujawnia problem, ale prawdopodobnie nie jest to problem. Wszystko, co tworzy wyskakujące okienka lub tymczasowo tworzy mini-bufor lub coś w tym rodzaju. Autouzupełnianie, fragmenty ... Jeśli jest to dodatkowa wtyczka lub funkcja, spróbuj ją wyłączyć i sprawdź, czy problem zniknie.
Chociaż nie widziałem takich wyskakujących okienek w twoim filmie, wtyczka może tworzyć swoje wyskakujące okienka, zdając sobie sprawę, że nie są tak naprawdę potrzebne, usuwając je, ale nie przerysowując treści, która była pod nimi.
Wykonanie przewijania na pełnym ekranie nie powoduje odświeżenia całego bufora. Kursor oczywiście zmusza bufor do odmalowywania sąsiadów.
Oczywiście może to być podstawowy problem GTK / GVim (myślę, że X lub OpenGL nie mają z tym nic wspólnego), ale wydaje mi się to mało prawdopodobne (chociaż zwykle nie używam Arch).
Jeśli okaże się, że jest to wtyczka, możesz wymusić aktualizację lub obniżenie wersji (cokolwiek innego niż „zepsuta” wersja).
źródło
FWIW Pozbyłem się problemu, instalując pakiet vim-gtk3, zastępując
vim-gtk
(Ubuntu).UWAGA! Z jakiegoś powodu domyślna komenda gvim nie została zamapowana na vim-gtk3 podczas instalacji pakietu, więc musiałem ręcznie uruchomić alternatywy aktualizacji:
Wielkie dzięki za wskazówki w tym wątku, że problem może stanowić GTK. Problem ten był trudny do wyśledzenia nawet za pomocą Google!
źródło