Eclipseとお友達になりたい!ずっと仲良し編 (機能&ショートカット集)

プログラミング
プログラミング

当記事は、「Eclipseとお友達になりたい!」というテーマでEclipseの使い方を紹介している記事の機能&ショートカット編となります。

Eclipseとお友達になりたい!
Javaエンジニアに必須のスキルが一つあります。それは、IDEとお友達になるスキルです! このスキルの有無でエンジニアの生産性は大きく変わります。ぜひ、仲良くしていきましょう! IDEとは IDE (Integrated Develo...

Eclipse導入直後の初期設定については、前編となる初期設定編をご覧ください。

Eclipseとお友達になりたい!はじめまして編 (初期設定集)
当記事は、「Eclipseとお友達になりたい!」というテーマでEclipseの使い方を紹介している記事の初期設定編となります。 Eclipseでは設定を柔軟に変更することができます。ですが、自由度が高い分だけ設定は複雑になり、...

はじめまして編では、Eclipseを導入した直後に行う初期設定についてご紹介してきました。
それが終われば、いよいよEclipseを使って開発をしていくことになります。

何もないところで転んだ日も、上司にゲッソリ怒られた日も、かわいいあの子にフラれた日も、あなたはEclipseで開発をしなければいけません。納期は待ってくれないのです。

だからこそ、Eclipseの便利な機能を知って、使って、バキバキ開発していこうではありませんか!そして良いEclipseライフを送り、良いプログラミングをし、良い仕事を続けていれば、あの子も振り向いてくれるかもしれませんよ。

というわけで、Eclipseを使っていくうえで是非知っておきたい便利な機能やショートカットとその使い方を紹介していきます!

当記事ではいくつかのショートカットコマンドを紹介していますが、すべてWindowsのコマンドとなっております。
筆者はMacとは無縁のオシャレなカフェの似合わない芋臭いエンジニアでございます。。。ご了承くださいませ。

ソース

Java言語には、その性質上どうしても書かなければいけない定型文のようなコードが存在します。例えばデータを保持するクラスのSetter/Getterのようなものです。(ボイラープレートコードというらしいです。)

経験のある方なら同意いただけるかと思いますが、大量に発生するこれらのコードを手で書くのはとても苦痛です。集中力も切れてきて、ミスを誘発したりもします。どうせ定型文なんだから、できれば自動生成したい…!

Java開発のエキスパートEclipseであれば朝飯前です。
右クリックメニュー内の「ソース」という項目に、さまざまなソース自動編集のメニューが揃っています。

例として以下のHogeHogeクラスのSetter/Getterを作る手順をご紹介します。

パッケージの「HogeHoge.java」を右クリックして、「ソース」⇒「getterおよびsetterの生成」を選択します。
(HogeHoge.javaが選択されている状態でAlt+Shift+Sでもソースのメニューを開くことができます。)

「作成するgetterおよびsetterの選択」に候補となるSetter/Getterが表示されているので、作成するものにチェックをつけます。特に絞るものがなければ、右の「すべて選択」で構わないと思います。
アクセス修飾子などの設定を確認して問題がなければ、「生成」を押下します。

見事、Setter/Getterが作成されました!あっという間にできていいですね。

Setter/Getterのような定型文コードを省略する別の方法として、Lombokというライブラリもご紹介します。
こちらはSetter/Getterなどをアノテーションを使って表現するので、コードがとてもスッキリします。それらのメソッドはコンパイル時に自動的に作られるという優れものです!
詳しくはこちらの記事で解説しております。興味がございましたらぜひご一読ください。
Lombokでコードをスッキリさせる
Javaの冗長なソースコードの記述をアノテーションによって簡略化できる「Lombok」の使い方について書きます。 Lombokとは? Lombok(ロンボック)は、省略することができない定型的なコード(ボイラープレートコードというらしい...

ちなみに、個人的に一番威力抜群だなと思うのは「委譲メソッドの生成」です。
ライブラリクラスのラッパークラスを自作するときに、元のクラスにある数十のメソッドの委譲メソッドを一撃で作ってくれます。これがなかったらすべてのメソッドのシグネチャをJavaDocで調べてひとつづつ書いて、、という気の遠くなる作業が必要になるし、Lombokみたいな逃げ道もないので、本当にあって助かっています。

これが…

ものの10秒でこうなります。

あとは適切にコンストラクタを作って、いじりたいメソッドだけいじればあっという間にラッパークラスの完成!

このように強力な自動生成の機能をEclipseは備えています。他にもコンストラクタの生成やtoStringの生成などの機能もありますので、ぜひ試してみてください!

リファクタリング

「ソース」がコードを新しく生成することを自動化するとしたら、「リファクタリング」はコードの変更に伴う作業を自動化してくれる機能となります。

こちらも多くの機能がありますが、特に高頻度で使用するのは「名前変更」と「移動」かと思います。
「名前変更」はクラス名やメソッド名を変更するときに使用します。「移動」はクラスファイルの属するパッケージを変更する際に使用します。

名前変更なんてそんなのただ書き換えるだけじゃない?そんな方法ではそのクラスやメソッドに依存している他の多くのクラスでコンパイルエラーが発生してしまいます!小規模なプロジェクトならまだしも、大規模なプロジェクトでそんなことをしたら阿鼻叫喚です。
リファクタリング機能の利点はここにあります。変更後の名称や状態を指定すれば、その依存関係まで必要な変更をEclipseがすべて自動でしてくれるのです!この機能を使用することで安全に名前の変更ができます。

先ほどSetter/Getterを作成したHogeHogeクラスを名前変更してみます。
依存しているコードも変更されていることを確認するため、mainメソッドも作成してみました。

パッケージエクスプローラーから名前変更するクラスファイルを右クリックして「リファクタリング」⇒「名前変更」を選択します。
(クラスファイルが選択されている状態でAlt+Shift+Tでもリファクタリングのメニューが開けます)

「新しい名前」に変更後のクラス名を指定します。「参照の更新」にチェックがついていることを確認して「完了」を押下します。

ファイル名とクラス名が変更されます。依存していたmainメソッドはどうなっているかというと…

見事Hoge×3になっていました!

リファクタリングでは、他には「インターフェースの抽出」なんかは使いどころがあるかなといったところです。
これらの機能を活用してコードをよりよくする活動を進めていきましょう!

よく使うショートカット一覧

ここからは、Eclipseの便利な機能をショートカット単位でご紹介します。
紹介できるのはほんの一例となってしまいますが、これだけ覚えておくだけでも十分にEclipseの実力を享受できます。

先に、紹介するショートカットの一覧を載せておきます。
簡単にではありますが、その詳細を各見出しに記載していますので、気になるものがあれば右の目次より飛んでみてください。

機能ショートカットキー
コード補完Ctrl+Space
単語補完Alt+/
次の警告・エラーへジャンプCtrl+.
クイックフィックスCtrl+1
ローカル変数に抽出Alt+Shift+L
メソッドに抽出Alt+Shift+M
定義を開くF3
型階層を開くF4
呼び出し階層を開く/参照の検索Ctrl+Alt+H or Ctrl+Shift+G
リソースを開くCtrl+Shift+R
ファイル検索(grep)Ctrl+H
型を開くCtrl+Shift+T
ファイル内検索/置換Ctrl+F
インクリメンタル検索Ctrl+J
編集タブの切り替えCtrl+E
最後の編集位置に戻るCtrl+Q
カーソル位置の進む/戻るAlt+ or Alt+
次を検索Ctrl+K
クイックアウトラインCtrl+O
コメントアウトCtrl+/
名前変更Alt+Shift+R
大文字⇔小文字変換Ctrl+Alt+I
キャメル⇔スネークケース変換Ctrl+Alt+K
編集内容を戻すCtrl+Z
保存Ctrl+S

コード補完

Ctrl+Space

Eclipseの便利なショートカットNo.1を選べといわれたら、私は迷いなくこのコード補完を選びます。

コーディングに特化した予測変換のようなものです。例えば使用したいクラス名の頭から数文字を入力した段階でこのショートカットを実行すると、

このように、そこまでの入力文字に該当する候補を表示してくれます!クラス名だけでなく、変数名、メソッド名、パッケージ名なんかも候補として表示してくれます。

この機能を有効活用することで、ほとんどタイピングすることなくソースコードを書くことができます。
間違いなくEclipse攻略のキホンとなります。とりあえず一回押してみましょう。世界が変わります。

単語補完

Alt+/

コード補完とは違い、英単語としての予測変換の候補を提示してくれます。コード補完のような画面は表示されず、選択されている文字列が直接変化し、気に入らなければ再度キーを押下すると次の予測単語に変化していきます。

次の警告・エラーへジャンプ

Ctrl+.

コード上の警告またはエラーが発生している位置へカーソルがジャンプします。
次のクイックフィックスとの合わせ技で使うことで大きな威力を発揮します。

クイックフィックス

Ctrl+1

警告またはエラーが発生している箇所でキーを押すと、それを解消するための方法を提示してくれます。

打ち間違いくらいのよくあるミスであれば、大体はこのクイックフィックスで直すことができます。
先のCtrl+.との合わせ技で爆速でエラーを解消していくことができます。

ローカル変数に抽出

Alt+Shift+L

何らかの値を返す処理を範囲選択してキーを押下すると、変数名を指定してその部分をローカル変数に抽出することができます。
例えばif文の条件式が複雑になった時に使用すると、

このように、条件の部分をローカル変数に切り出してくれます。

同じ式をまとめて抽出してくれるようなので、処理の共通化に一役買いそうですね!

メソッドに抽出

Alt+Shift+M

次はメソッドに抽出です。抽出したい部分を範囲選択してキーを押下します。

こちらも処理の共通化のために役立ちそうですね!

定義を開く

F3

ソース内で参照しているクラスやメソッドにカーソルを合わせた状態でキーを押すと、参照先のソースファイルを開くことができます。逆コンパイラが設定されているEclipseであれば、標準ライブラリなどでも逆コンパイルしてソースを表示してくれます。
参照したソースの中の作りが気になった時にすぐに開けるので便利です。

型階層を開く

F4

クラスを選択してキーを押下すると、そのクラスと継承の関係にあるクラスを階層表示してくれます。
例えば、java.util.ArrayListクラスで型階層を開くとこのように表示されます。

いっぱいありますね…!
ただしこれは私の検証環境のクラスパスの中だけで探索されているので、表示される量は環境により異なります。

呼び出し階層を開く/参照の検索

Ctrl+Alt+H
Ctrl+Shift+G

クラスまたはメソッドにカーソルを合わせてキーを押すと、そのクラス/メソッドを呼び出している場所を探索して表示してくれます。
2種類のキーを紹介していますが、おそらく探索の条件が違います(条件の違いを認識できていませんごめんなさい!)。ただ、おおよそ得られる結果は同じになるので一緒に紹介しています。

Ctrl+Alt+H

Ctrl+Shift+G

リソースを開く

Ctrl+Shift+R

ワークスペース内のファイルを名前で検索して開くことができます。ファイル名はアスタリスク*を使ってパターンの一致で検索することもできるので、一部分だけでもわかっていれば検索することができます。プロジェクトが肥大化してきたときにはとても役に立ちます。

また、これとの合わせ技で一つだけTipsを紹介します。
このショートカットで狙ったファイルを開いた時に、パッケージ・エクスプローラーの中の赤枠のボタンを押下すると、パッケージ・エクスプローラーの開いているファイルの位置が表示されます。このボタンはパッケージ・エクスプローラーとエディタをリンクさせるというボタンです。
この合わせ技で、ファイル名が一部でもわかっていれば、ファイルの場所まですぐに開くことができます!
なお、このボタンを一度押すとずっとリンクし続けることになるので、適宜もう一度ボタンを押してリンクを解除するようにしてください。

ファイル検索(grep)

Ctrl+H

ワークスペース内のファイルの中を文字列検索することができます。所謂grepです。

型を開く

Ctrl+Shift+T

「リソースを開く」との違いは、こちらはJavaのクラスのみが対象となる代わりに、ワークスペースにはない参照しているライブラリのクラスも開ける対象となります。

ファイル内検索/置換

Ctrl+F

開いているファイル内で入力した文言を検索します。検索した文言を別の文言に置き換えることもできます。

インクリメンタル検索

Ctrl+J

上のファイル内検索と違い、こちらはポップアップが表示されず、検索する文言に該当する箇所の色が変わる仕組みとなっています。

編集タブの切り替え

Ctrl+E

現在開かれているタブ(ファイル)の一覧が表示されます。ついついいっぱいファイルを開いちゃって、…の奥にファイルが隠れちゃうときがありますよね。そんな時に役に立ちます。

最後の編集位置に戻る

Ctrl+Q

キーを押下すると最後に編集した位置にカーソルが移動します。いろんなファイルを探検した後に、すぐに編集中のファイルに戻れるのでストレスがなくなります。

カーソル位置の進む/戻る

Alt+ 
Alt+

Alt+で前回カーソルを当てていた位置に戻ることができます。どこかに戻っている状態でAlt+を押下すると次にカーソルを当てていた位置に進むことができます。

次を検索

Ctrl+K

ファイル内の文言を範囲選択してキーを押下すると、ファイル内で次に同じ文言が表示されている場所を検索してカーソルを移動してくれます。変数の出現位置を追うために使用できます。

同様の結果を得る別の方法として、「出現箇所のマーク」というものも使えます。
追いかけたい変数などにカーソルを合わせると、このように出現位置に色がついて、右側にその出現位置がマークされます。マークをクリックすると対応する出現位置に遷移します。

出現させる要素の設定は、設定画面の「Java」⇒「エディター」⇒「出現箇所のマーク」から行ってください。
要素の色を変更するときは「一般」⇒「エディター」⇒「テキスト・エディター」⇒「注釈」を開き、Javaエディターであれば「出現箇所(org.eclipse.dltk.ui.occurrences)」または「書き込み出現箇所」の色を変更します。

クイックアウトライン

Ctrl+O

そのクラスのアウトラインをポップアップ表示します。
要素の検索もできてとても便利です。

コメントアウト

Ctrl+/

選択した範囲の行をコメントアウトします。コメントアウトされている行を選択してキーを押下すると、そのコメントアウトが解除されます。

名前変更

Alt+Shift+R

「リファクタリング」の項で紹介した名前変更のショートカットです。
変数名またはメソッド名にカーソルを合わせてキーを押下すると、その名前を変更することができます。
その場で直接名前を変更して、Enterを押下すると、その名前が使用されている場所が、他のファイルであっても自動的に変更されます。

コンパイルエラーを発生させずに名前を変更できるので便利ですね。

大文字⇔小文字変換

Ctrl+Alt+I

英字を範囲選択してキーを押下すると、小文字を大文字に、大文字を小文字に変換します。
また、選択範囲をすべて大文字にする場合はCtrl+Alt+Uを、すべて小文字にする場合はCtrl+Alt+Lを押下してください。

キャメル⇔スネークケース変換

Ctrl+Alt+K

Javaのメソッド名や変数名に慣用的に使われているキャメルケースとスネークケースを相互に変換します。
キャメルケース:helloWorld
スネークケース:hello_world
あまり使いどころはないかなぁ。。。というイメージです。

編集内容を戻す

Ctrl+Z

なんだかんだ言って最強のショートカットはこれです!
このショートカットがあるおかげでいろんなショートカットにチャレンジすることができるのです。いろいろ試してみて、思った通りの結果にならなければこのキーを押下してなかったことにしましょう!

保存

Ctrl+S

保存しなければすべてが無駄になってしまいます。私は編集内容のロストが怖いのでとても頻繁に保存をします。
派閥が分かれるところではありますが、私は1編集1保存をオススメします。心配性すぎる?

参考

新人研修でドヤ顔で披露したらウケたEclipseのショートカット集 – Qiita

コメント

タイトルとURLをコピーしました