New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ubuntu 12.04 の gvim がまともに動かない #193
Comments
さっきubuntu入れ終わった所です。再現しました。 |
確認ありがとうございます。 以前の話はおそらくこのへん |
わからないのでとりあえず投げてみました。 |
gvim in Precise can't connect to ibus and takes a long time to load やっぱりibus関連の問題なんでしょうかね |
ちょっといやらしいですね。こまった。 |
ちなみに、これは私の環境(Ubuntu 12.04)でもベータ版の時から再現していて、Ubuntuの人の話では「UbuntuのGlobal MenuとGVimの機能が干渉しているのではないか?」という話でした。 おそらく、以前修正した時と同様にVim本体側で対応する必要があります。 |
ここでタイムアウト待っているんですかね……。ちなみに、この現象は自分でコンパイルした最新版だろうが、@ynkdirさんのようにUbuntuのパッケージで用意されるバイナリを使用しようが再現します。 Ubuntu 12.04はLTSなので、今後使用者が増える前に対処したいところではあります。 |
僕はubuntuオリジナル提供のgvimだと再現しません。 ただ昨日試した限りだとグローバルメニューの構築がタイムアウトしたというメッセージが表示されてました。 |
私の環境でも同じです。
私が試したのは、Beta2のときでしたので、それから正式版になるまでにUbuntu側のGVimに何らかの修正が入った可能性があります。こちらの環境でも試してみたいと思います。Ubuntu側で修正した内容がわかれば、それをVim本体に取り込むことができるかもしれません。 |
おそらく、iBusが関連してか何かで fork する前に gtk_init もしくは gtk_init_check すると問題が発生するので以下の様にしてみました。 diff -r 273fbf501965 src/gui.c
--- a/src/gui.c Mon Apr 30 21:09:43 2012 +0200
+++ b/src/gui.c Tue May 01 19:32:14 2012 +0900
@@ -270,6 +270,12 @@
}
/* Child */
+#ifndef FEAT_GUI_GTK
+ /* Call gtk_init_check() here. See gui_init_check(). */
+ if (gui_mch_init_check() != OK)
+ exit(1);
+#endif
+
# if defined(HAVE_SETSID) || defined(HAVE_SETPGID)
/*
* Change our process group. On some systems/shells a CTRL-C in the
@@ -430,7 +436,16 @@
#ifdef ALWAYS_USE_GUI
result = OK;
#else
+# ifdef FEAT_GUI_GTK
+ /*
+ * Note: Don't call gtk_init(), gtk_init_check() before fork.
+ * This will be called after the fork. When calling that before fork,
+ * it make vim hang for a while. See gui_do_fork().
+ */
+ result = gui.dofork ? OK : gui_mch_init_check();
+# else
result = gui_mch_init_check();
+# endif
#endif
return result;
}
一応、簡単な動作確認をやった限りだと動いてそうです。 |
これは今後の為にも |
コメント入れて修正しました。 |
mattn++; |
ありがとうございます。試しました。問題なく動いてます。 https://bugs.launchpad.net/ubuntu/+source/vim/+bug/987707 |
ふむ。じゃぁこのままpatch送っちゃいますか。 |
手パッチで自動補正されてました。失礼しました。 |
実は僕も、virtualpc 上で動作確認して、gistに貼れる術がなくて(設定がめんどくさくて)、手元のwindowsでパッチ当てた際に失敗してました。 |
7.3.520で+αされて取り込まれました。 https://groups.google.com/d/topic/vim_dev/BniVlM5XaZU/discussion |
連絡ありがとうございます。 |
guioptionsにfがある状態で-gするとgtk_init_checkが走らないという問題があったのでパッチ追加。 |
@mattn Great. お疲れ様でした。 |
guioptionsにfがある時の修正も完了。 いまから思えば #85 もそれだったんじゃないかと思った。 |
他に同じ問題に当たった人が見当たらないのでなんとも言えませんが一応書いておきます。
Ubuntu 12.04 にアップデートしたら gtk gvim がまともに動かなくなりました。
症状は
です。
念のため ubuntu クリーンインストールで vim-gtk パッケージで確認しましたがやはり動いてませんでした。
gvim -f
で fork() を抑制すると正常に起動します。うちの環境では
GTK_IM_MODULE=ibus
になってますがGTK_IM_MODULE=xim gvim
にすることでも正常に起動します。ただし、この場合はメニューの問題は解決しません。gtk + fork では以前にも同じようなことで修正がはいってたと思いますが関係するかどうかはわかりません。自分のとこではこの問題はでなかったので環境とかバージョンとかいろいろあるのかもしれません。もしかしたらそのうちパッケージの更新で直る問題なのかもしれません。ubuntu 11.10 ではちゃんと動いてたので vim の問題ともいいきれませんが他のアプリはちゃんと動いてるので気になります。
fork() の前に gtk_init_check() が呼ばれるのが原因のようですがさだかではありません。いちおう以下の変更で正常に起動するようにはなります。
The text was updated successfully, but these errors were encountered: