半年くらい前にIntellJのUnlimitedを購入したが、ちゃんと機能を把握できてなかった。
ハンズオン本も買っちゃったので、個人的に良かったTipsを覚書。
個人的便利機能
新しいファイル作るときのショートカット
⌘+1
でプロジェクトツリーのウィンドウにフォーカスを当てられます(別にマウスでもいんだけど)。
そして、何かファイルを作る時、上部のメニューから選べば良いのだけど、⌘+N
でファイル生成のウィンドウを表示される。
つまり…⌘+1
と⌘+N
で行ける。なんか個人的に良かった
Search Everywhere
Shift * 2
でファイル、クラス、シンボル、ツール名などなど、あらゆる全ての項目を検索可能。
とりあえず、これを覚えておけば何とかなりそう。
検索結果項目が多すぎる場合は、⌘ + o
とか⌘ + e
とかで絞りこめる(どのショートカットで絞りこめるのかポップアップに書いてあるので覚えなくて良し)。
何かウィンドウリスト?みたいなのが出た時の上下スクロール
これはシェルのhistoryを順に選択するのと同じで、↑(Ctrl + P)
、↓(Ctrol + N)
でできる。
別に矢印キーを押せば良いのだけど、矢印キーまでに移動するのが億劫な時があるので、これをよく使ってる。(余談だけど、自分はCapLockキーをCtrlキーに割り当ててる。よくやっている人は多いのでは無いだろうか。)
Switcher
Ctrl + tab
。使えばわかる。
コードのブックマーク
F3
でコードの横にチェックが付く。ちょっと気になるコードとかにブクマしときたければ、Favoritesウィンドウで見れる。
Favoritesウィンドウはブレークポイントとかも一覧で見れる。
ポストフィックス補完
Tab
で保管してくれる機能。vimだとneocompleteみたいなプラグインがあるけど、それに類するものだと思う。
(JavaとかKotlinとかPHPとかはあったけど、Rubyはないのかな…。)
最近開いたファイルを開く
⌘ + E
でできる。「あ、間違えて閉じちゃった!いまのファイルなんだっけ…。」って時に便利。
テストコードでジャンプ
⌘ + Shift + T
で該当のテストコードにジャンプできる。なんか地味によく使うショートカット。該当のテストコードが無い場合は、No test subject found
って出てくれるのも親切。
関数などの定義元ジャンプ、関数などの利用箇所を検索
ただ、利用箇所の部分で⌘ + B
すれば、command + option + F7
と同じ効果になるので、そっちだけ覚えて於けば大丈夫。
ちなみに、一覧かポップアップかで、ショートカットが違う。
-
option + F7
:一覧 -
command + option + F7
:ポップアップ
ジャンプ前後に移動する時は、⌘ + [
, ⌘ + ]
でできる。
Language Injection
alt + Enter
でできるのだが、例えばRubyコードの中にSQLを書きたいとなると、その部分だけSQLで書きたくなる。そういう場合、利用している言語以外の予想候補も出るように選択設定してくれる。
設定した部分はハイライトされるのでわかりやすい。
Version Control
⌘ + 9
でversion管理ウィンドウを見れる。
logとかconsoleとかあるけど、たまに使うかも。Logはツリー構造も出てくるので、どのタイミングでマージされたとか見れるから、ちょっと便利。
(addとかcommitとかは基本的にTerminalから叩く癖がついているので、あんまり使わない。)
リファクタ系
変数抽出(extract variable)
option + ⌘ + V
でうまい具合に変数を作ってくれる(出来なかったら、ちゃんとCannot perform refactoring in this content
とアラートを出してくれる。
変数廃止(inline)
変数廃止という言い方が正しいか怪しいけど。
option + ⌘ + N
でいらなそうな変数を削除してくれる。
いずれも注意しないと行けないのが、複数箇所を同時にリファクタしてしまうときがあり、それによって意図せずプログラムがバグることがある。使う時はプログラマーが責任を持って、どこがどう変わったのかよく確かめること。
まだイマイチ使いこなせてない系
-
alt + Enter
:Intention Action。なんかうまい具合に良さげな機能を提供してくれるらしいけど、上手いこと使いこなせてない。 -
⌘ + shift + delete
:さっきまで編集してた箇所に戻る。 - LiveTemplateなる機能があって、所謂スニペット機能らしい。ポストフィックス補完がそれかと思ったが、そっちとは違うらしい。
- 色々プラグインあるらしい。その辺は必要になってから導入しよう。