日々常々

ふつうのプログラマがあたりまえにしたいこと。

Eclipseのアレ、IntelliJ IDEAでどうやんの?

どうしてもオシゴトでは固定でEclipseさんを使うことが多いため、なかなか他のIDEさんに手を出しづらいのが悩みの種だったりする今日この頃。今日この頃と言いつつここ数年。正直Eclipseさんで困ってないってのもありました。
しかし、GroovyさんをEclipseさんからゴニョゴニョしてると、たまに不機嫌になってそっぽ向いたりして萌えるいまいちイケてなくて、IntelliJ IDEAさんのお力を借りねばならんかなーと思いはじめた次第です。


さて掲題の話は既出もいい所。公式にもあるくらいだし、日本語訳してくれてる方もいる。

でもあれなんだ。設定とかも大事なんだけど、私にとっては快適にコードが書けるかが重要なんです。「Eclipseさんができてたアレ、IntelliJ IDEAさんはできねーのー?つかえねー」とか言って、もし出来ることだったら失礼なお話。
あと、なるべくデフォルトのショートカットキーで行きたいです。Eclipseマッピングにすればもっとすんなり行けるのかもしれませんが、うん。なんとなくデフォルトでやりたいクラスタ

空気読め

何か困った時に何かしらのことをしてくれる空気読め機能。Eclipseでは多用します。IntelliJ IDEAでもそれなりに何とかしてくれます。未定義のメソッドやクラス名を書いた後、そのスタブを作って欲しい時とか。
このキーはその後出てくるメニューを選択しなきゃいけなくて、だいたいは特化したショートカットキーがあるので、それ覚えたら一発だったりします。でもあまり使わないショートカットキー覚えるくらいなら、空気読んでくれた方がありがたい。

コード補完

おなじ。叩かなくても勝手に出てくれるけど。

テンプレート補完

IntelliJ IDEAのテンプレートはLive Templateと言うらしい。どう言う機能があるのかよくわかってないですが、適当に書いて固定のテンプレートにしたり、プレースホルダーみたいな感じにすることは比較的簡単。Eclipseのテンプレートもあまり使いこなせてないので、個人的にこれで困ることはなさそう。

行を移動する

他のエディタではあまり無い気がする、選択行の位置を移動するキー。カーソル位置にある行をぐりぐり移動できる。何気に便利。

行を消す削除

  • Eclipse: ⌘ + D
  • IntelliJ IDEA: ⌘ + X (削除じゃなく切り取りだけど)

IntelliJ IDEAで ⌘D 叩くと、その行が複製されます。違うんだ、したいことはその逆なんだ……と。ちなみにEclipseでの行複製は ⌥⌘↓ で出来たりします。

コードフォーマット

IntelliJ IDEAの方はダイアログが出てきてOrganizeImportも一緒にやるかー?とか聞いてくる。"Do not show this dialog in the future"にチェックを入れればダイアログ出て来なくなりそう。戻し方わからないから、チェック入れられない←

名前変更

クラス名やメソッド名をゴリゴリ変更するリファクタリング。この機能はIntelliJ IDEAの方が強い気がする。と言うのも、テスト対象クラス名を変更したらテストクラス名も変わってくれる。Eclipseはここまで面倒見てくれない。IntelliJ IDEAがクラスとテストクラスの対応を標準でサポートしているゆえか。

実行(おもにテスト)

Eclipseだと⇧を抜けばDebug実行になる。押すキー少なくて済むし、ブレークポイントも置かずにDebugしてたりする。結果は変わらないしね。IntelliJ IDEAでDebugしたいときはF9になるぽい。地味に似てるから混同しないように気をつけねば……。

ローカル変数への割当

ローカル変数が一番よく使う。フィールドならどちらでもFでいける。このショートカットはどちらも空気読め機能でやってくれるので、わざわざ覚えなくても⏎2回叩いた方が早いかもしれない。

インライン化

ローカル変数への割当の逆の操作。一時変数を使うか使わないかは状況依存ですが、結構使うことも多いです。一般的に一時変数を使った方がコードの表現力は向上しますが、そこまで変わらない場合など、インライン化してしまったほうが良い場合もありますので。

なんか色々生成

getter/setterとかtoStringとか。Windows+EclipseだとCtrl+Alt+S,Sと連打とかキーだけでコンテキストメニュー選ぶところまでやってくれたりするんですけど、Macだとメニューを上下キーで選んだ方が早くて、うん。
Eclipseだと全部だらっと出るんだけど、IntelliJ IDEAは出来る操作に限られててちょっと親切、かも。

ちょっと驚いたこと

よくあるFizzBuzzでこう書くと、最後の行がコンパイルエラーになりますよね。

public String fizzBuzz(int i) {
    if (i % 15 == 0) return "FizzBuzz";
    if (i % 3 == 0) return "Fizz";
    if (i % 5 == 0) return "Buzz";
    return i;
}

でまぁ、何とかしてくれーとやってみるわけです。


メソッドの戻り型を変えても困る場面。引数の型を変えるのは正直使えない気がする。やっぱ無理よなー……と。


String.valueOf で包んでくれる。なにこれすごい。

一覧

操作 Eclipse IntelliJ IDEA
空気読め ⌘ + 1 ⌥ + ⏎
コード補完 ^ + Space ^ + Space
テンプレート補完 ^ + Space Tab
行を移動する ⌥ + ↑ or ↓ ⌥ + ⇧ + ↑ or ↓
行を消す削除 ⌘ + D ⌘ + X
コードフォーマット ⇧ + ⌘ + F ⌥ + ⌘ + L
インポート ⌘ + ⇧ + O (フォーマットと同じ)
名前変更 ⌥ + ⌘ + R ⇧ + F6
実行(おもにテスト) ⇧ + ⌘ + F11 ⌥ + ⇧ + F10
ローカル変数への割当 ⌘ + 2, L ⌥ + ⌘ + V
インライン化 ⌥ + ⌘ + I ⌥ + ⌘ + N
なんか色々生成 ⌥ + ⌘ + S ^ + N
定義に移動 F3 ⌘ + B

気づいたら足してく。