Java

ココが好きだよIntelliJ IDEA – 便利機能10選 #jbugj

IDEA Advent Calendar 2013の22日目です。
IntelliJ IDEAを使っていて「やっぱ便利!」と最近実感している小粒な機能を淡々と10件あげます。

1. 構造選択(⌘ + w)
Structural selectionと呼ばれるもので文法上の構造の単位で選択範囲を広げていってくれます。単語→リテラル内(ダブルクォート内)→リテラル(ダブルクォート込)といった感じ。
言葉だとわかりにくいけど実際の動きを見てもらえれば分かるはず。Shiftを押しながらだと選択範囲を狭めていける。

慣れるとIDEA以外でテキストを編集しているときにも⌘ + wを押してしまい「あわわ」ってなる。

2. どこでも検索(Shift2回)
とにかくShiftを2回押してからクラス名やファイル名、メソッド名などの断片をタイプするとインクリメンタルに絞り込んで好きなところにジャンプ出来ます。これはIDEA 13からの新機能。これまではクラスへのジャンプの時はCmd+n・・とか何にジャンプするかでショートカットを使い分けなければいけなかったけど、どこかに飛びたいときは何も考えずにShiftを2回押せば良くなった!これまでの習慣でCmd+nでジャンプしちゃうと負けた気になる。

3. String.formatの引数チェック
ちょっとした定型文を起こしたいときはString.format()を使っています。(そこそこボリュームがある定型文の場合はVelocityを使ってる)
String.formatは%sとかリテラル内に埋め込んでおけば2番目以降の可変長引数で渡した値をはめ込んでくれる便利メソッド。でも引数が足りないとjava.util.MissingFormatArgumentExceptionという実行時例外が出るのが厄介。IDEAでは引数が足りないと編集しているタイミングで警告してくれます。

4. リファクタリング(Shift + Option + ⌘ + t)
ガリガリコードを書きつつ無駄に膨らんできたらリファクタリングしながらDRYなコードにしていってます。IDEのリファクタリング機能を使うのは当然ながら、ショートカットでリファクタリング機能を呼び出すように心がけ始めたら「リファクタリングし始める苦痛」が無くなった。積極的にリファクタリングするようになったのでコードもきれいに保ててる。
リファクタリングのツールウィンドウが出たらどんなリファクタリングをしたいのかタイプすればok。例えばメソッドを抽出したければShift + Option + ⌘ + t→"m"。

Refactor Thisツールウィンドウ

大事なのに指がつりそうなショートカットなのでもっと手になじむショートカットを割り当てた方がいいと思う。自分の場合は人に見せることが多いので極力デフォルトのまま使ってます。

メソッドを抽出したとき、抽出したメソッドを利用できる箇所を洗い出してくれて適用するところまでやってくれるのは鼻血が出そうになる!

5. Complete Current Statement(Shift + Cmd + Enter)
カッコ閉じとか、セミコロンとか入力するのが面倒、あと何回カッコを閉じれば良いのかわからない、空気読んで!と思ったらShift + Cmd + Enterを押せばそれらしくカーソルのある位置のステートメントをコンパイルが通る状態に持って行ってくれる。

6. 内蔵ターミナル(Option + F12)
ターミナルアプリに切り替えなくてもいい。なんだかんだgitの操作はターミナルからやっちゃう。ショートカットを覚えておくと捗る。
vimもemacsもIntelliJ IDEAがあれば必要ない。

7. System.out.println(sout + tab)
デフォルトのLive Template。soutと書いてtabを押せば長ったらしいSystme.out.println()に変換してくれる。ヘナチョコデバッグするとき便利。

8. public static void main(psvm + tab)
デフォルトのLive Template。pvsmと書いてtabを押せば長ったらしいpublic static void main(String… args)に変換してくれる。

9. エディタを最大化(Shift + ⌘ + F12)
IDEAを使っている間、ほとんどの時間はエディタ内で過ごすのでプロジェクトペインとか不要。Shift + Cmd + F12でエディタペインを最大化してツールウィンドウとかプロジェクトペインとかは隠す。Cmd + 1でプロジェクトペインへ移動とかも出来る。

10. 次のプロジェクトを前面に出す(⌘ + Space)
これはIDEAの機能ではなくMacの機能。IDEAはプロジェクト毎にウィンドウを開く仕様だけど、ウィンドウを切り替えるのが面倒。システム環境設定で「次のウィンドウにフォーカス」のショートカットを⌘ + Spaceに割り当てて素早くプロジェクトを切り替えられるようにしてます。(デフォルトのショートカットがなんだかは知らない。割り当てられてないかも)

IDEAを使っているかどうかに関わらずMacユーザーはこれにしっくりくるショートカットを割り当てておくべき。

以上便利機能10選でした。ちなみにEclipseはデモンストレーションとかトレーニング目的以外で使ったことないので「それ(NetBeans|Eclipse|Vim|Emacs)でも出来る」っていう機能もあるかもしれませんがご容赦を。