Eclipseには、様々な編集機能や、自動リファクタリングの機能が搭載されている。Eclipseのショートカットキーを幅広く紹介する記事は、すでに優れたものが存在しているので、よく使うものだけをメモ。
Eclipseによるコードの改善
以下のライブコーディングでは、Eclipseの機能の力によってものすごい速さでコードが書き換えられていく様が見られる。手元が見えないのが非常に残念なのだが、ショートカットをかなり駆使していることは間違いないだろう。Java 8(ラムダ、Optionalなど)の使い方の紹介としても優れた動画だと思うのでおすすめ。
よく使うショートカットキー
以下、普段使うことの多いショートカットキーをつらつらと紹介。下記ツイートのような次第で、WindowsとMacの両方でのマッピングを併記する。なお、Win/Mac対照についても網羅的なものが既に存在しているので紹介しておく。
自宅はMac、会社はWindowsなので、ショートカットキーがなかなか習得できない。
— こまど (@ky_yk_d) 2019年3月28日
名前変更
Windows | Mac |
---|---|
alt + shift + R |
command(⌘) + option(⌥) + R |
変数やクラス、メソッドなどの名前を参照元も含めて一括で変更できる。参照の数が少ないと手で書き換えることもあるが、油断をすると書き換え漏れが発生することもあるので基本的にこれを利用している。ファイル名と同名のクラスに対して実行した場合には、ファイル名にも変更が反映されるのが便利。
メソッドの抽出
Windows | Mac |
---|---|
alt + shift + M |
command(⌘) + option(⌥) + M |
選択した範囲を別のメソッドとして切り出す。リファクタリングの最初の一歩ともいえるかもしれない。
移動
Windows | Mac |
---|---|
alt + shift + V |
command(⌘) + option(⌥) + V |
メソッドを別のクラスに移動したり、ファイルを別のパッケージに移動したりするのに使う。前出の「メソッドの抽出」と組み合わせて、コントローラに書かれた処理をモデルのメソッドに書き換えるときなどに使う。
ローカル変数の抽出
Windows | Mac |
---|---|
alt + shift + L |
command(⌘) + option(⌥) + L |
選択した式(戻り値の型がvoidでないメソッドの呼び出しなど)の評価値を、推論された型の変数に代入するコードが自動生成される。同じ式の箇所は一斉に新しく作成されたローカル変数で書き換えられるのがポイント。別の使い方として、代入式の右辺を先に書いてから実行することで、ローカル変数の型の記述をサボるのにも使える。
インライン化
Windows | Mac |
---|---|
alt + shift + I |
command(⌘) + option(⌥) + I |
選択した変数を、インライン化する。「ローカル変数の抽出」の逆。
メソッドシグネチャの変更
Windows | Mac |
---|---|
alt + shift + C |
command(⌘) + option(⌥) + C |
ダイアログ画面を使って、アクセス修飾子、戻り値の型、メソッド名、引数の型と名前、throws句などをまとめて変更できる。
矩形選択
Windows | Mac |
---|---|
alt + shift + A |
command(⌘) + option(⌥) + A |
リファクタリングに特化した機能ではないが、メソッドの位置を移動してからthis.
をまとめて[パラメータ].
に書き換えるときなどに使うことがある。
次の注釈へ
Windows | Mac |
---|---|
ctrl + . |
command(⌘) + . |
次のエラーや警告の箇所にカーソルをジャンプさせることができる。リファクタリングに特化したものではないが、非常によく使う。スクロールバーで赤い/黄色い位置に移動するのは結構面倒なもの。
クイックフィックスを適用
Windows | Mac |
---|---|
ctrl + 1 |
command(⌘) + 1 |
「次の注釈へ」とセット。修正候補から選択するだけで自動的に様々な修正を実施してくれる。
JUnitテストの実行
Windows | Mac |
---|---|
alt + shift + X → T |
command (⌘) + option(⌥) + X → T |
以上のようなショートカットを駆使し、スピーディにコードを改変していくためには、壊していないことを確認することがやはり必要。やや手間がかかるショートカットなので別のキーを割り当ててもいいかもしれない。
おわりに
本来、IDEの機能は「手動でやっていたことを自動でできるようにする」ものだと思うが、経験の浅い身にとっては、「なるほどこういう改善の仕方があるのか」というのを学ぶいい教材でもある。まだ使えていないIDEの機能を探すことを通じて、コード改善の手法をもっと身につけていきたい。