kaisehのブログ このページをアンテナに追加

2009-10-30

IntelliJ IDEAのエディタ周辺機能(Eclipseユーザ向け)

Scalaプラグインが優秀と聞いて、少し前からIntelliJ IDEA Community Editionを使い始めました。Scalaのサポートは期待通り充実していたんですが、IDE自体も快適で、Eclipseから本気で乗り換えたくなってきました。

初めは、Eclipseと比べてエディタの操作感がかなり違うように見えて、とっつきにくく感じたんですが、それは単にEclipseの機能との対応関係が分かっていなかっただけで、少し馴染めば逆にIntelliJエディタの方が使いやすい気がします。

以下、Eclipseエディタに慣れた人向けに、IntelliJ IDEAで設定した方が良さそうな項目や機能の対応関係などを書いてみます。

最初にすること

Eclipse風キーマップの使用

設定の"Keymap"で"Eclipse"を選択します。キーバインドの大部分がEclipseと共通になります。

フリーカーソルの無効化

フリーカーソル(キャレットを行末以降に移動できてしまう)が気持ち悪い場合は、設定の"Editor - Virtual Space - Allow placement of caret after end of line"をオフにすると無効化できます。

保存について

IntelliJ IDEAエディタには、個別のファイルを明示的に保存するという概念がなく、適切なタイミングで自動保存してくれるようです。勝手に保存されると最初は戸惑いますが、慣れれば保存のことを一切考えなくて良くなるので、非常に快適です。ローカル履歴が残るので、取り消しも簡単です。

対応関係が分かりにくい機能

Eclipse風キーマップを使ってもショートカットが一緒にならない機能のうち、特に良く使いそうなものです。

Eclipseの機能EclipseショートカットIntelliJの機能IntelliJショートカット
シンボルのハイライトAlt + Shift + OSearch - Highlight Usages in FileAlt + Shift + O
クイックアウトラインCtrl + OView - File Structure PopupCtrl + F3
JavadocのルックアップF2View - Quick Documentation LookupCtrl + Shift + Space
各種生成(コンストラクタ、getter / setterなど)-Code – Generate...Alt + Insert
ビューの最大化Ctrl + MWindow - Hide All Tool WindowsCtrl + Shift + F12

シンボルのハイライトは、Eclipseのようにキャレット上のシンボルを自動ハイライトする方式ではなく、シンボル単位でハイライトのオン/オフを切り替えるようです。

11/4追記: Eclipseのような自動ハイライトも可能でした(設定でEditor - Highlight on Caret Movement - Highlight usages of element at caret)。

コードテンプレート

コードテンプレートはCtrl + Alt + Shift + Jで出ます。定義済みのテンプレートの中では、以下が特に便利そうです。

略語内容
soutSystem.out.println("");
soutmSystem.out.println(現在のメソッド名);
soutvSystem.out.println("直前の変数 = " + 直前の変数);
psvmpublic static void main(String[] args) { }

Eclipseにない便利な機能

IntelliJ IDEAにあってEclipseにない機能のうち、便利だと思ったものです(Eclipseにもあったらご指摘お願いします)。

View - Quick Definition Lookup (Ctrl + Shift + I)

キャレット位置のシンボル定義をポップアップ表示します。実装コードの全体がポップアップするのですごく便利。

View - Context Info (Alt + Q)

キャレットを包含するメソッド名やクラス名を表示します。宣言部がスクロールアウトしているときに、現在のメソッド名を一発で確認できます。

View - File Path (Ctrl + Alt + F12)

エクスプローラ等で、現在のファイルが存在するディレクトリを開きます。

Go To - Symbol... (Ctrl + Alt + Shift + N)

任意のソース中の任意のシンボルをインクリメンタルサーチして、シンボルに直接移動できます。EclipseのCtrl + Shift + Tがすごくなった感じ。

Go To - Test

現在のクラスのテスティングペアに移動します。Quick JUnitと同じことができます。

その他参考ページ

Error 404

yone098yone098 2009/10/31 00:40 flexはeclipseでやるからなー。
でも使ってみようかな、はまちゃんお勧めなら。

kaisehkaiseh 2009/10/31 00:48 あ、Flexのこと忘れてました。><
ただIntelliJでも、Ultimate EditionならFlexサポートされてるみたいですね。

c9katayamac9katayama 2009/10/31 02:11 Tapestry Integrationが強力そうですね!
と言いつつSWT萌えの私は俄然Eclipse派です。
SwingのIDEはForteを思い出してしまって、どうも個人的に馴染まないですね。。。

kaisehkaiseh 2009/10/31 03:06 それがIntelliJの場合、個人的感覚ですが、NetBeansに良くあるようなSwing的ワンテンポ遅れ感が意外に少なくて、Swingで動いていることを忘れちゃうほどなんです。