[プログラミング][Eclipse] Ctrl+1 のススメ

(この記事は2006/01/08に書かれたものです)

Eclipse JDT の便利機能といえば、誰もが挙げるのが Ctrl+Space によるコード補完です。長い型名・メソッド名をいちいち覚えなくてもいいのはたいへん便利。名前の補完以外にも、if や try や for と打って補完すれば、テンプレートを自動的に展開してくれたりもします。(テンプレートは設定で編集・追加可能)

でも、同じくらいお勧めなのが Ctrl+1 で実行されるクイック・フィックスとクイック・アシストなのです。クイック・フィックスのほうは、コンパイルエラーが出たときに Ctrl+1 を押すと修正候補が自動的に出てくる機能です。import 文を書くのが面倒なときにはとりあえずコードを書いてから Ctrl+1 で import 文を追加するのが手軽です。(Ctrl+Shift+O で import 文の編成をしてもいいんですが。)クイック・フィックスが可能なエラーには電球マークが付きますので、利用するタイミングにも気づきやすいのではないかと思います。

そして、今回のお勧めがクイック・アシスト。Ctrl+1 をエラーでもないところで押すと、その場で可能なコードの変更の一覧が出てくるのです。あまり使いそうにないものも多いのですが、知っていると痒いところで便利なものもいくつかあります。名前の変更もそのひとつですね。リファクタリングメニューからも名前の変更はできますが、クイック・アシストの場合はコード上の全ての名前の出現に枠が付き、リアルタイムで変更が反映されますので、手早くできるのが魅力です。

そのほかにも以下のようなことが可能です。

 foo()
 ↓ (foo() の返り値の型は X とする)
 X x= foo();
 foo(getColor());
 ↓
 Color color= getColor();
 foo(color);
 public A(int color) {}
 ↓
 Color fColor;
 public A(int color) {
     fColor= color;
 }
 if (obj instanceof Vector) {
 }
 ↓
 if (obj instanceof Vector) {
     Vector vec= (Vector)obj;
 }

詳細は、Eclipse ヘルプ「Java 開発ユーザー・ガイド」の「クイック・アシスト」を参照してください。

名前の変更などの一部のクイック・アシストはショートカットが Ctrl+2 R などに割り当てられていますが、Ctrl+1 でポップアップ → Enter で実行できますので、Ctrl+1 さえ覚えていれば十分でしょう。

追記

と、思いきや、クイック・フィックスの対象となるエラーが同じ行にあったらクイック・アシストのメニューが出てこなかったりしますので、やはり Ctrl+2 くらいは覚えておくべきかもしれません……。2ストローク目のキーに関しては、Ctrl+2 を押してしばらくボーっとしていると右下にポップアップでヘルプが出ますので覚える必要はないです。

なお、「ローカル変数への抽出」などのクイック・アシストはローカル変数に抽出したい範囲を選択してから Ctrl+1 を押すと選択肢に現れます。