コグノスケ


link 未来から過去へ表示(*)
link 過去から未来へ表示

link もっと前
   2012年 2月 27日 ---> 2012年 2月 18日
link もっと後

2012年 2月 27日

Eclipse が固まる

Eclipse のエディタは、変数名をカーソルでポイントすると、変数の型や Javadoc が自動的に出現します。とても便利なのですが、誰も定義していない変数(変数名を typo してるとか)をポイントしてしまうと、何かを探しに行ったまま Eclipse がフリーズします。

特にネットワークドライブなど I/O の遅い場所にプロジェクトを置いていると、現象が顕著に発生します。長いときは十秒くらい反応が返りません。カーソルを動かすたびに誤爆して固まるので、相当イライラします。

今まで我慢して使っていたのですが、いい加減ムカついてきたので原因を探ってみました。

原因

Editor の設定を調べると、どうも固まる原因は Hovers にあるようです。設定はメニューから辿って Window - Preferences - Java - Editor - Hovers にあります。

初期状態だと、
Combined Hover(右側空欄)
Externalized String(Ctrl+Alt)
Source(Shift)
が選ばれていると思います。下記のような意味です。

  • Combined Hover を表示するには何も押さずにポイント
  • Externalized String を表示するには Ctrl+Alt キーを押した状態でポイント
  • Source を表示するには Shift キーを押しながらポイント

Eclipse が固まるときは特にキーを押していませんから、Eclipse が固まる原因は Combined Hover ですが、これは名前の通り複数の機能の複合なのでもう少し絞込みが必要です。

真の原因

Combined Hover の説明を見るにリストの上から順に試してうまく行ったやつを表示するだけらしいので、Combined Hover のチェックをはずして、リストの上から他の機能を一個ずつ試してみます。

上から試した結果、Eclipse を固まらせる真の原因は Hovers の Problem Description だったとわかりました。さらに言うと Problem Description の「変数が未定義エラー」の表示だけが非常に低速です。「クラスが未定義エラー」や「スペルチェッカの警告」の表示はかなり高速です。うーん、何が悪いんでしょうね?

対策

Combined Hover を OFF にするとエディタが使いづらくなるので、良く使う機能(たぶん Javadoc でしょう)を単発で ON にして、Problem Description は暴発しないようにキーを押したときのみ発動させるように、設定を変更すると良いと思います。

個人的には Source は要らないので、
Problem Description(Shift)
Externalized String(Ctrl+Alt)
Javadoc(右側空欄)
としています。

注意点

Shift, Ctrl, Alt で 2^3 = 8通り(何も押さない場合を含んで)の組み合わせができますが、意外と Hover と組み合わせられるキーは少ないです。

ShiftCtrlAlt 説明
× × × 何も押さずにポイントしたときがこれ。
× × 使えるが、キーを離すとメニューにフォーカスが移ってしまって使いづらい。
× × 使えません、Eclipse のエディタの機能と衝突していて Hover が発動しません。
× 使える、デフォルトでは Externalized String に割り当て。
× × 使える、デフォルトでは Source に割り当て。
× 使えるが、キーを離すとメニューにフォーカスが移ってしまって使いづらい。
× 使える。
使えるが、3つも押すのが面倒くさい。

以上から、使いやすいのは、(何も押さない), Shift, Shift + Ctrl, Ctrl + Alt の 4つくらいですかねえ。

編集者: すずき(更新: 2012年 2月 29日 20:31)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2012年 2月 25日

休日出勤

底なし沼プロジェクト(2012年2月18日の日記参照)は順調に沈んで行っています。

休日出勤は電車が空いているのはいいけど、休みが短くなって悲しい…。

GNU global

コードを読むときに便利なのがタグジャンプです。私は vim + GNU global を使っています。会社に長年伝わる(意味不明な)秘伝のソースコードを解読するときに大活躍です。

タグジャンプって不思議と家では使わないのですが、一応、家の Debian マシンでも使えるように .vimrc を設定しました。

Vim の plugin はどこだ

ところで ~/.vim/plugin に入れる gtags.vim はいずこに?Fedora では /usr/share/global 辺りにあったと思うのですが、Debian にはそれらしいディレクトリはありません。

こんなときの apt-file に聞いてみると、/usr/share/doc/global/examples/ なんてところに、ご丁寧に gzip 圧縮して置いてありました。

うん、これはわからんね。しかし何故 doc の下に置くかね…。

編集者: すずき(更新: 2012年 2月 26日 13:22)

コメント一覧

  • hdk 
    ls /usr/share/doc/*/examples/ してみるとわかるけど、よくある話じゃないかな? Mercurial なんかも Emacs や Vim 用っぽいファイルがありますね。
    たぶん /usr/share/global みたいなのは Debian 的によろしくなくて、でも使いたい人はいるだろうからってことで examples に押し込んでいるんじゃないかと思ってます。需要が高ければ別パッケージになるんでしょうけど。 
    (2012年02月26日 13:55:25)
  • すずき 
    >hdk さん
    Debian のポリシーマニュアル 12.6 Examples には「These files should not be referenced by any program: they're there for the benefit of the system administrator and users as documentation only.」とあるから、プラグインを example に入れるのは邪道なんだろうね。

    global と Vim, Emacs の依存関係を持たせてプラグインを自動でインストールするか、hdk さんが言うように、プラグインだけ別パッケージにすべきなんでしょうけど、人気ないのかねえ。

    vim + global 便利だと思うんだけどなー。 
    (2012年02月26日 14:56:09)
  • IKeJI 
    個人プロジェクトだとコードサイズがばかでっかくなる事はないんで、ctagsだけで十分な気分になる事が多い気がします。 
    (2012年02月26日 21:24:27)
  • すずき 
    >IKeJI さん
    おひさしぶりー。
    確かに、自分で書いたコードには使わないですね。
    何をどこで呼んでるか大体わかるし、関数定義する場所も覚えていれば ctags すら使わないかも…。 
    (2012年02月27日 22:04:12)
open/close この記事にコメントする



2012年 2月 24日

何してるかわからん

ピアレビューをするとき、自分 or レビュー相手の席で普段使っているエディタでソースコードを見ながらやることが多いです。

先輩と私でレビューしていたとき、先輩に「すずき君が何してんのかようわからんけど、画面の動きがおもろいw」みたいなことを言われました。

私はお世辞にも Vim を使いこなしているとは言えませんが、Emacs(正確には Meadow)使いの先輩は Vim を見慣れていないので、モタモタ操作でもそんな風に感じるわけです。

じゃあその逆、つまり先輩の席でコードレビュー(当然 Meadow でソースコードを見ている)するときはどうか?というと…、

いやー、何してるか全然わかんないね!なんかガシャガシャやったら、見たいコードが出てきてハイライトされて、ちょいちょいーっと直っていくそんな不思議な感じ。

ウィザード

PC の世界に限らず、見慣れないものをすごい勢いで操作している人は、魔法使いみたいに見えますね。

珠算の日本一(名前に反してそろばん一切使わないけど)とか、ルービックキューブの早解きなんて、まさに魔法です。

編集者: すずき(更新: 2012年 2月 26日 16:07)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2012年 2月 18日

近況

先週だったか、実験室の隣席に座っていた先輩が「もうこの泥沼プロジェクトは嫌だー。」ってボヤいていたので「大変ですよねー。」なんて笑っていました。

そうしたら先輩さらに曰く「いやいや、そっちの底なし沼プロジェクトよりマシだけどw」だって。おお、なんて的確な表現なんだ…言い返せないわwww

休日出勤

というわけで、底なし沼プロジェクトは休日出勤なのでした。来週もあるのかなあ?

編集者: すずき(更新: 2012年 2月 26日 13:20)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
   2012年 2月 27日 ---> 2012年 2月 18日
link もっと後

管理用メニュー

link 記事を新規作成

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDF ファイル RSS 1.0
QR コード QR コード

最終更新: 6/24 01:34

カレンダー

<2012>
<<<02>>>
---1234
567891011
12131415161718
19202122232425
26272829---

最近のコメント 5件

  • link 21年02月11日
    すずき 「はい、私も同意見です。A72 はおそらく...」
    (更新:06/22 00:20)
  • link 21年02月11日
    とおりすがり 「詳しくはわからず恐縮なのですが、\nCo...」
    (更新:06/21 18:08)
  • link 22年01月22日
    hdk 「おぉ、それはバッテリーに優しくない車、い...」
    (更新:01/28 22:23)
  • link 22年01月22日
    すずき 「社外品のセキュリティをつけていて、そやつ...」
    (更新:01/28 10:33)
  • link 22年01月22日
    hdk 「2Vはさすがに何か照明を消し忘れたか漏電...」
    (更新:01/27 23:48)

最近の記事 3件

link もっとみる
  • link 22年06月23日
    すずき 「[ナノイー発生器故障] 家で Panasonic のナノイー発生器...」
    (更新:06/24 01:34)
  • link 22年06月22日
    すずき 「[車のバッテリーと無意味なドライブ] 久しく車に乗っておらずそろそ...」
    (更新:06/24 00:54)
  • link 21年10月04日
    すずき 「[Might and Magic ファミコン版 - まとめリン] ...」
    (更新:06/22 00:48)

こんてんつ

open/close wiki
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報