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 + O Search - Highlight Usages in File Alt + Shift + O
クイックアウトライン Ctrl + O View - File Structure Popup Ctrl + F3
Javadocのルックアップ F2 View - Quick Documentation Lookup Ctrl + Shift + Space
各種生成(コンストラクタ、getter / setterなど) - Code – Generate... Alt + Insert
ビューの最大化 Ctrl + M Window - Hide All Tool Windows Ctrl + Shift + F12

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

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

コードテンプレート

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

略語 内容
sout System.out.println("");
soutm System.out.println(現在のメソッド名);
soutv System.out.println("直前の変数 = " + 直前の変数);
psvm public 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と同じことができます。

その他参考ページ

Migrate - Help | IntelliJ IDEA