błąd przerysowywania gvim

9

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,

sashang
źródło
2
Mam dokładnie ten sam problem w Ubuntu 12.10, pod Gnome 3. Jesteś jedyną osobą w Internecie, która go ma. Masz szczęście od opublikowania tego?
jakar
@jakar Nie, nigdy nie znalazłem sposobu, aby to naprawić. Teraz używam fc17 ze sterownikami NVIDIA i nie widzę już problemu, ale nie używam Gnome 3 w jego fantazyjnym trybie.
sashang
Tak, myślę, że ma to więcej wspólnego z gnome / gtk / xorg / drivers niż z samym gvimem. Nie mam żadnych problemów w fc17 (chociaż na innym komputerze), nawet z pasującymi wersjami gvim, zbudowanymi ze źródła. No cóż, na razie będę z tym żyć. Przynajmniej dziękuję za jedyny dobry opis i film, który widziałem.
jakar
Też mam ten problem. Byłbym bardzo zainteresowany rozwiązaniem.
Matt Fichman,
2
To brzmi bardzo podobnie do problemu 91 i obecnie sądzę, że jest to problem z biblioteką gtk.
Christian Brabandt

Odpowiedzi:

5

Miałem ten problem i byłem w stanie obejść ten problem, uruchamiając gvim z --syncopcją. To powoduje, że wywołania X są asynchroniczne.

(Dzięki linkowi w komentarzu Christiana Brabandta za skierowanie mnie we właściwym kierunku.)

Serpentine Cougar
źródło
Miałem ten sam problem z uruchomieniem Debiana / 9 na maszynie virtualbox na zintegrowanej grafice. Te same objawy braku przerysowywania - podzielenie bufora nie aktualizuje wyświetlacza, dopóki nie zostanie wciśnięty klawisz Alt do innej aplikacji iz powrotem. Przełącznik --sync naprawił problem.
Andrew
0

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.

frabjous
źródło
0

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).

użytkownik 2097818
źródło
0

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:

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

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!  

Hans Löfving
źródło