web-dev-qa-db-ja.com

gvimの再描画に失敗しました

画面の再描画が部分的に失敗するgvimに問題があります。説明するのは難しいですが、テキストファイルを開いてページを上下に移動すると、テキストファイル全体が正しく再描画されません。再描画する前に、まずカーソルを移動する必要があります。問題を示しているので、ここにスクリーンキャプチャがあります: http://www.box.net/shared/l4m1vrffl0dhigi80huz

私が実行する他のすべてのアプリケーションは問題なく、適切に再描画されるため、問題はgvimに限定されているようです。 gvimで再現するのはとても簡単です。コンソールvimは問題ありません。問題はgvimに限定されていると思います。

OSは、Gnome3(compizなし)を実行するnvidiaドライバーを実行するArch Linux3.0です。

Unameからの出力

Linux Cyclops 3.0-Arch#1 SMP PREEMPT Tue Aug 30 07:32:23 UTC 2011 i686 Intel(R)Core(TM)2 CPU 6600 @ 2.40GHz 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(2010年8月15日、2011年9月30日05:51:10にコンパイル)含まれるパッチ:1-322 GTK2GUIを備えたArchLinuxBigバージョンでコンパイル。 (+)またはそうでない(-):+ arabic + autocmd + balloon_eval + browser ++ builtin_terms + byte_offset + cident + clientserver + clipboard + cmdline_compl + cmdline_hist + cmdline_info + comment + conceal + cryptov + cscope + cursorbind + cursorshape + dialog_con_gui + 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 + libcall + linebreak + lispin + 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 + printer -profile + python/dyn + python3/dyn + quickfix + reltime + rightleft + Ruby + scrollbind + signs + smartindent -sniff + statusline -Sun_workshop + syntax + tag_binary + tag_old_static -tag_any_white -t​​cl + terminfo + termresponse + textobjects + title + toolbar + user_commands + vertsplit + virtualedit + visual + visualextra + viminfo + vreplace + wildignore + wildmenu + windows + writebackup + X11 -xfontset + 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 = generic -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、-sort-common、-as-needed、-z、relro、-hash-style = gnu -L/usr/local/lib -Wl、-as-needed -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 -lgmodule-2.0- lgthread-2.0 -lrt -lglib-2.0 -lSM -lICE -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、-sort-common、-as-needed、-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

9
sashang

私はこの問題を抱えていて、--syncオプションでgvimを起動することで問題を回避することができました。これにより、X呼び出しが非同期になります。

(私を正しい方向に向けてくれたChristian Brabandtのコメントのリンクに感謝します。)

5

OSやビデオカードなどの情報を提供するのに役立ちます。GNOME3のように見えます...?

NVIDIAビデオカードを使用してウィンドウマネージャーとしてCompizを使用してGVIMやその他のアプリを実行すると、このような問題が発生し、[Compiz Config SettingsManager]> [回避策]> [QtWindowFix]をオンにして修正しました。

特にCompizの代わりにMutterを使用している場合は、これや他の何かがあなたのケースに役立つかどうかはわかりません。

0
frabjous

箱から出して来たものを超えて、どのような種類のプラグインをVimにジャックしましたか?

通常は安定しているプラ​​グインの1つが少しグリッチになった可能性があります。はい、GTKは問題を明らかにしていますが、問題ではない可能性があります。ポップアップウィンドウを作成したり、一時的にミニバッファなどを作成したりするもの。オートコンプリート、スニペット、...追加のプラグインまたは機能の場合は、オフにして、問題が解決するかどうかを確認してください。

あなたの映画にはそのようなポップアップは見られませんでしたが、プラグインがポップアップを作成し、実際には必要ないことを認識し、ポップアップをクリアしましたが、元々下にあったコンテンツを再描画していない可能性があります。

全画面スクロールを実行しても、バッファ全体が再描画されるわけではありません。カーソルは明らかにバッファにネイバーを再描画させています。

もちろん、それはGTK/GVimのコア問題である可能性があります(XまたはOpenGLはそれとは何の関係もないと思います)が、私にはそうは思われません(私は一般的にArchを使用していませんが)。

プラグインであることがわかった場合は、バージョンのアップグレードまたはダウングレード(「壊れた」バージョン以外)を強制することをお勧めします。

0
user2097818

FWIWパッケージvim-gtk3をインストールし、vim-gtk(Ubuntu)を置き換えることで、問題を解決しました。

注意!何らかの理由で、パッケージをインストールしたときにデフォルトのgvimコマンドがvim-gtk3にマップされなかったため、次のように手動でupdate-alternativesを実行する必要がありました。

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

GTKが問題になるかもしれないというこのスレッドのヒントをどうもありがとう。この問題は、Googleを使用しても追跡するのが困難でした。

0
Hans Löfving