gvim Neuzeichnungsfehler

9

Ich habe ein Problem mit gvim, bei dem das Neuzeichnen des Bildschirms teilweise fehlschlägt. Es ist schwer zu erklären, aber wenn ich eine Textdatei öffne und nach unten oder oben blättere, wird die gesamte Textdatei nicht richtig neu gezeichnet. Ich muss zuerst den Cursor bewegen, bevor er neu gezeichnet wird. Ich habe hier eine Bildschirmaufnahme davon, da sie das Problem demonstriert: http://www.box.net/shared/l4m1vrffl0dhigi80huz

Es scheint, als ob das Problem auf gvim beschränkt ist, da jede andere von mir ausgeführte Anwendung in Ordnung ist und ordnungsgemäß neu gezeichnet wird. Es ist ziemlich einfach für mich, in gvim zu reproduzieren. Die Konsole vim ist in Ordnung. Ich denke, das Problem ist auf gvim beschränkt.

Betriebssystem ist Arch Linux 3.0, auf dem die NVIDIA-Treiber ausgeführt werden, auf denen Gnome3 ausgeführt wird (kein Compiz).

Ausgabe von uname

Linux Cyclops 3.0-ARCH # 1 SMP PREEMPT Di Aug 30 07:32:23 UTC 2011 i686 Intel (R) Core (TM) 2 CPU 6600 bei 2,40 GHz GenuineIntel 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. August 2010, kompiliert am 30. September 2011 um 05:51:10 Uhr) Enthaltene Patches: 1-322 Kompiliert von ArchLinux Big Version mit GTK2-GUI. Funktionen enthalten (+) oder nicht (-): + Arabisch + Autocmd + Ballon_eval + Durchsuchen ++ Builtin_terms + Byte_Versatz + Cindent + Clientserver + Zwischenablage + Cmdline_compl + Cmdline_Hist + Cmdline_info + Kommentare + Verbergen + Cryptv + Cscope + Cursorbind + Cursorshape + Dialog_ + 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 + keymap + langmap + + lispindent + listcmds + localmap -lua + menu + mksession + modify_fname + mouse + mouseshape + mouse_dec + mouse_gpm -mouse_jsbterm + mouse_netterm

Systemmenüdatei: "$ VIMRUNTIME / menu.vim" Fallback für $ VIM: "/ usr / share / vim" Kompilierung: 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 = generisch -O2 -pipe -fstack-protector --param = ssp-buffer- size = 4 -D_FORTIFY_SOURCE = 1 Verknüpfung: gcc -L. -Wl, - Hash-Stil = gnu -Wl, - nach Bedarf -rdynamisch -Wl, -export-dynamisch -Wl, -E -Wl, -rpath, / usr / lib / perl5 / core_perl / CORE -Wl , -O1, - sort-common, - nach Bedarf, -z, relro, - hash-style = gnu -L / usr / local / lib -Wl,

Sashang
quelle
2
Ich habe genau das gleiche Problem in Ubuntu 12.10 unter Gnome 3. Sie sind die einzige andere Person im Internet, die ich gefunden habe. Hast du Glück, seit du das gepostet hast?
Jakar
@jakar Nein, ich habe nie einen Weg gefunden, dies zu beheben. Ich verwende jetzt fc17 mit NVIDIA-Treibern und sehe das Problem nicht mehr, aber ich verwende Gnome 3 nicht im ausgefallenen Modus.
Sashang
Ja, ich denke, es hat mehr mit gnome / gtk / xorg / drivers zu tun als mit gvim selbst. Ich habe auch keine Probleme in fc17 (obwohl auf einem anderen Computer), sogar mit passenden Versionen von gvim, die aus dem Quellcode erstellt wurden. Na ja, ich werde jetzt damit leben. Zumindest danke für die einzige gute Beschreibung und das Video davon, die ich gesehen habe.
Jakar
Ich habe auch dieses Problem. Ich wäre wirklich an einer Lösung interessiert.
Matt Fichman
2
Das klingt sehr nach Ausgabe 91 und ich vermute derzeit, dass dies ein Problem mit der GTK-Bibliothek ist.
Christian Brabandt

Antworten:

5

Ich hatte dieses Problem und konnte das Problem umgehen, indem ich gvim mit der --syncOption startete. Dadurch werden X-Aufrufe asynchron.

(Dank des Links in Christian Brabandts Kommentar, der mich in die richtige Richtung gelenkt hat.)

Serpentine Cougar
quelle
Hatte das gleiche Problem beim Ausführen von Debian / 9 in einer Virtualbox-Maschine über integrierten Grafiken. Gleiche Symptome für fehlende Neuzeichnungen: Durch das Aufteilen des Puffers wird die Anzeige erst aktualisiert, wenn Sie bei gedrückter Alt-Taste zu einer anderen App und zurück wechseln. Der Schalter --sync hat das Problem behoben.
Andrew
0

Es wäre hilfreich, Informationen zu Ihrem Betriebssystem, Ihrer Grafikkarte usw. bereitzustellen. Sieht aus wie GNOME3 auf ...?

Ich hatte ein solches Problem beim Ausführen von GVIM und anderen Apps mit Compiz als Windows-Manager mit einer NVIDIA-Grafikkarte und habe es behoben, indem ich zu "Compiz Config Settings Manager"> Problemumgehungen> "Qt Window Fix" aktiviert habe.

Keine Ahnung, ob dies oder etwas anderes in Ihrem Fall hilfreich ist oder nicht, insbesondere wenn Sie Mutter anstelle von Compiz verwenden.

frabjous
quelle
0

Welche Art von Plugins haben Sie in Vim eingebunden, über das hinaus, was im Lieferumfang enthalten war?

Es besteht die Möglichkeit, dass eines Ihrer normalerweise stabilen Plugins Sie ein wenig gestört hat. Ja, GTK enthüllt das Problem, aber es ist wahrscheinlich nicht DAS Problem. Alles, was Popup-Fenster erstellt oder vorübergehend einen Minipuffer oder ähnliches erstellt. Autocompletion, Snippets, ... Wenn es sich um ein zusätzliches Plugin oder eine zusätzliche Funktion handelt, schalten Sie es aus und prüfen Sie, ob Ihr Problem behoben ist.

Obwohl ich in Ihrem Film keine solchen Popups gesehen habe, erstellt das Plugin möglicherweise sein Popup, erkennt, dass es nicht wirklich benötigt wird, löscht das Popup, zeichnet dann aber den ursprünglich darunter liegenden Inhalt nicht neu.

Wenn Sie einen Vollbild-Bildlauf durchführen, wird nicht der gesamte Puffer neu gezeichnet. Der Cursor zwingt den Puffer offensichtlich dazu, die Nachbarn neu zu streichen.

Natürlich könnte es ein Kernproblem von GTK / GVim sein (ich denke, dass X oder OpenGL nichts damit zu tun haben), aber es scheint mir unwahrscheinlich (obwohl ich Arch normalerweise nicht benutze).

Wenn Sie feststellen, dass es sich um ein Plugin handelt, möchten Sie möglicherweise ein Versions-Upgrade oder -Downgrade erzwingen (alles andere als die "defekte" Version).

user2097818
quelle
0

FWIW Ich habe das Problem behoben, indem ich das Paket vim-gtk3 installiert und vim-gtk(Ubuntu) ersetzt habe.

HINWEIS! Aus irgendeinem Grund wurde der Standardbefehl gvim bei der Installation des Pakets nicht vim-gtk3 zugeordnet, sodass ich Update-Alternativen manuell wie folgt ausführen musste:

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

Vielen Dank für die Hinweise in diesem Thread, dass GTK das Problem sein könnte. Dieses Problem war selbst mit Google schwer zu finden!  

Hans Löfving
quelle