IntelliJ IDEAのエディタ周辺機能(Eclipseユーザ向け)
Scalaプラグインが優秀と聞いて、少し前からIntelliJ IDEA Community Editionを使い始めました。Scalaのサポートは期待通り充実していたんですが、IDE自体も快適で、Eclipseから本気で乗り換えたくなってきました。
初めは、Eclipseと比べてエディタの操作感がかなり違うように見えて、とっつきにくく感じたんですが、それは単にEclipseの機能との対応関係が分かっていなかっただけで、少し馴染めば逆にIntelliJのエディタの方が使いやすい気がします。
以下、Eclipseのエディタに慣れた人向けに、IntelliJ IDEAで設定した方が良さそうな項目や機能の対応関係などを書いてみます。
最初にすること
フリーカーソルの無効化
フリーカーソル(キャレットを行末以降に移動できてしまう)が気持ち悪い場合は、設定の"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)
キャレットを包含するメソッド名やクラス名を表示します。宣言部がスクロールアウトしているときに、現在のメソッド名を一発で確認できます。
Go To - Symbol... (Ctrl + Alt + Shift + N)
任意のソース中の任意のシンボルをインクリメンタルサーチして、シンボルに直接移動できます。EclipseのCtrl + Shift + Tがすごくなった感じ。
Go To - Test
現在のクラスのテスティングペアに移動します。Quick JUnitと同じことができます。