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,
Antworten:
Ich hatte dieses Problem und konnte das Problem umgehen, indem ich gvim mit der
--sync
Option startete. Dadurch werden X-Aufrufe asynchron.(Dank des Links in Christian Brabandts Kommentar, der mich in die richtige Richtung gelenkt hat.)
quelle
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.
quelle
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).
quelle
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:
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!
quelle