IntelliJ IDEAを使う時にはとりあえず厳選ショートカット2つだけは覚えておく、または覚えてもらうと少しだけ幸せになれます。インクリメンタル検索系は見栄えも良くインパクトがあるため、知らない人に教えてあげると結構使うようになります。
- IntelliJ IDEA Community Edition 2017.1で確認しています。
- ショートカットはWindows版のものです。
対象者
- IntelliJ IDEAは未経験または初心者
- EclipseやVisualStudioなどのIDEを利用した経験がある(自動補完など)
- ソースコードをダラダラ探し回ることが多い
超厳選ショートカット(2個)
どちらも検索/ナビゲーション関連のショートカットです。また、どちらもインクリメンタル検索で動作します。
最近のVim, Emacs, Atomを多少使いこなしている人であれば、似たような操作を日常的に使用しているかもしれません。
Shift + Shift
: 全て検索
一つだけしか教えられないのであればこれだけ教えます。
JetBrainsのHadi Hariri氏が「起動時にタブが無い画面でShift + Shift
とかを紹介してるのに使ってる人が少ないよね。誰もドキュメントなんて読まない証拠だよね」みたいなことを言って拗ねていたので、意外と知らない人が多いのかもしれません。
- プロジェクト内のファイル名、クラス名、シンボル名(変数、メソッド等)をインクリメンタル検索する。
- 検索文字を入力する前は最近アクセスしたファイル(Recent Files)が候補として表示される。
- ここからクラス検索(
Ctrl + N
)ショートカットを押すことにより、より詳細な検索に移行することが可能。なお親切にショートカットキーを表示してくれるため、必要な時にそのショートカットキーを叩けばよい。
Ctrl + Shift + F
: grep検索
Unix環境メインで作業する人はこちらの方が便利に感じるかもしれません。
- プロジェクト内の各種ファイルのテキストに対してgrep検索(インクリメンタル検索が有効)する。
- 検索結果をカーソル移動またはマウスクリックすると、瞬時に該当ファイルの中身を表示する。
- 大小文字区別、正規表現、単語単位のオプション指定が可能。
- 日本語の文字列も検索可能。
個人的にお気に入り
個人的に気に入っているショートカットです。
Ctrl + Alt + 左右キー
: ナビゲーションのUndo/Redo
- 関連するメソッド、クラスを
Ctrl + 左クリック
等のナビゲーション操作で移動していく場合、そのナビゲーション箇所を行き来する。 - 様々なクラス、メソッドの参照にジャンプして行き来する場合に便利。
- 例えばメソッドA,B,C,Dとジャンプして、D,C,B,Aと確認しながら戻りたい時などに利用する。
Ctrl + P
: メソッドのパラメータ一覧表示
- 現在カーソル上にあるメソッドのパラメータ一覧をポップアップ表示する。
- オーバロードされているメソッドの場合は、各パラメータ一覧を表示する。
Ctrl + Q
: クラス/メソッド/変数のドキュメント表示
- 現在カーソル上にあるクラス/メソッド/変数の定義情報およびドキュメントをポップアップ表示する。
Ctrl + w
: 拡張選択
- カーソル上にある単語を選択した状態にする。
- 再びショートカットの実行を続けていくと、メソッドの引数一覧、メソッド、ステートメント、ブロックという形で選択された箇所が拡張していく。
Alt + Enter
: 修正候補表示
- エラーまたは推奨の波下線が表示されてる箇所に対する自動修正候補を表示する。
- 修正候補を選択してEnterを押すと、自動的にその修正を試みる。
#(おまけ) 厳選ショートカットの根拠
下記3点の問題への貢献度の大きさをもとに選びました。
- 思考が阻害される。
- 時間がかかる。(場合によって数十秒〜数百秒)
- 作業時間のバラツキが大きい。
上記の3点を考えた場合、例えばBuild/Runをキーボードショートカットではなくマウスで行うようなケースはそれほど大した問題ではありません。マウスに慣れている人は無意識にBuild/Runボタンをマウスでクリックできるため思考を阻害されることはありませんし、作業時間も2~3秒程度と短くで安定します。これはマウスで右クリックして選択するような作業(Refactoring, Find Usage, Go To等)についても同様です。
しかしソースコード検索、ナビゲーションに関わるものは話が異なります。プロジェクト事に構成等が異なるため、手動でJavaパッケージを開いたり、ソースコードを開いていくのは2~3秒どころか数十秒かかる場合もあります。そしてよほどのことがない限りはこの作業を無意識に行うのは難しいため思考が阻害されることになります。こういったところこそ、優先的に解消または軽減すべきだと思います。
もちろん好きな人は3点を意識することなく、キーボードショートカットを好きなだけ覚えて効率化を進めましょう。ちなみに私はVim大好きです。