07日目 メニューバー,ツールバー,ナビバーとステータスバーについて

スクリーンショットはIDEA11のものです。上から順にメニューバー,ツールバー,ナビバー。ナビバーはいわゆる「パンくずリスト」の事で,ここを経由でファイルを選択することもできます。


画面最下部にあるのがステータスバーで,それぞれの意味は以下の通りです。

No 意味
1 ツールウィンドウ部分の表示・非表示を切り替えるボタンです(トグルになってます)。非表示にしている場合は,Altキー*1を2回押すと表示されます。
2 メッセージエリア。コマンドの実行結果などが表示されます。たまに大事な指摘をしているときがあるので,このエリアは侮れませんw
3 バックグラウンドで動いているタスクを表示します。クリックすると,Background Tasks Managerウィンドウが表示されます。
4 カーソル位置(行番号とカラム位置)を示します。クリックするとGoto Lineダイアログが表示されます。
5 ファイルのエンコードを示します。クリックすると,メニューが表示され,指定したエンコードでファイルを開き直します*2
6 インサートモードか上書きモードかを示します。Insertキーでモードが切り替わりますが,ほとんど使ったことが無いので正直邪魔です。Macだと、表示されませんね。あと(6)の場所は(7)と(9)の間が正解です。
7 書き込み可否を示します。クリックして切り替えることができます。
8 コード検査(インスペクション)を行うHectorおじさんです。クリックするとインスペクションのモードを切り替えるウィンドウが表示されます。モードを緩くするとIntelliJそのものもずいぶん軽くなります。
9 このエリアはプラグインやバージョン管理との連係有無に応じた情報が表示されます。大抵,クリック可能なので,何か見慣れないのが出たなと思ったらクリックしてみると良いでしょう。
10 メモリの使用状況を表示します。これ自身がボタンになっていて,クリックすると強制的にメモリの解放(GC)を走らせます。File->Settings->Appearance->Show memory indicatorをOFFにすると非表示になります。


メニューバー以外は,表示・非表示を設定できるので,お好みに応じて必要なものを表示しておきましょう。わたしは,ツールバーのみ非表示の設定を好んで使っています。


メニューバーのそれぞれのメニュー項目はだいたいこんな機能が集約されています。メニューの構成そのものは,File->Settings->Menus and Toolbarsで根本的に作り直すことができるので,徹底的にカスタマイズしたい人は,それこそ自分専用のメニュー構成にしちゃうといいです(さすがに,わたしはそこまでやってませんが...。

Fileメニュー

プロジェクトを作ったり(New Project),開いたり(Open Project),設定(Settings)したり*3,その設定を書き出したり(Export Settings)といった事をする機能が集約されています。
あまり使った事ありませんが,今のプロジェクトのeclipse形式で書き出す(Export to Eclipse)や,ソースコードをHTML形式で書き出す(Export to HTML)なんてのもあります。

Editメニュー

アンドゥ(Undo),リドゥ(Redo)コピペ(Copy/Paste)などの定番機能が集約してあります。矩形選択(Column Selection Mode)もここにあります。単語選択・非選択(Select Word at Caret/Unselect Word at Caret)は,目立たないIntelliJの目玉機能のひとつなので,ぜひともショートカットキーを覚えて使いこなして欲しいです。:-)


あとサブメニュー化して分かりづらくなりましたが,検索・置換(Find)もここにあります。かなり多彩な検索方法を持っていますが,カーソル位置の単語を検索(Find Word at Caret)や検索/置換(Find in Path/Replace in Path),使用箇所を検索(Show Usages)を覚えておけば事足りると思います。

Viewメニュー

結構雑多な機能が集約しており,とりあえずここに置いといたんじゃないか?ってな機能も少なくありません。:-)

  • ツールウィンドウの切り替え(Tool Windows
  • メソッドなどの宣言部(Quick Definition)やドキュメント(Quick Documentation)のクイック表示
  • ツールバー(Toolbar)・ナビバー(Navigation Bar)・ステータスバー(Status Bar),ツールウィンドウ(Tool Buttons)の表示・非表示の切り替え
  • 最近編集したファイルの表示(Recent Fiels)やファイルの比較(例えばクリップボートとの比較(Compare with Clipboard)など)
  • 行番号の表示(Show Line Numbers)やワードラップの有無(Use Soft Wraps)などのエディタの設定を行う(Active Editor)

あとどうゆうワケか,HTMLの編集をブラウザに即時反映するLive Editなんかも,ここにあります。それと地味ですが,カラースキーマやキーマップなどを即時に変更するQuick Switch Schemeは,デモなどで一時的にフォントを大きくしたいなんて時に便利です(これもなんで,ここにあるのかは謎ですがw


Mac版の場合、フルスクリーン表示(Enter Full Screen)もここにあります。ただし、マルチモニタでこれ使うと、マルチモニタの意味無しになるので、使いどころが難しいです。

Navigateメニュー

コード探索系の機能が集約してます。

  • クラス名(Class),ファイル名(File),シンボル名(Symbol)を指定してのジャンプなど
  • 定義場所(Declaration),実装(Implementation(s)),テスト(Test)へのジャンプなど
  • 構造の表示(File Structure),型構造の表示(Type Hierarchy),呼びだし構造の表示(Call Hierarchy)など

面白いところで,Webブラウザのようにジャンプしてきた場所に戻ったり(Back),進んだり(Forward),最後に編集した場所にジャンプ(Last Edit Location)したり,現在開いているファイルを任意のツールウィンドウで開き直すSelect Inなんてのも便利です。


同じく,現在開いているファイルのナビバーにジャンプする Jump to Navigation Bar も面白いです。こちらは,ナビバーを非表示していると,カーソル位置付近にナビバーがポップアップします。

Codeメニュー

コードの編集を手助けする機能が集約されています。ここの機能はむしろショートカットキーを覚えて使いこなしたほうが便利だと思います。


例えば生成(Generate)のショートカットキーを覚えてしまえば,オーバライド(Override Methods),実装(Implement Methods),委譲(Delegate Methods)のショートカットキーは覚えなくて済みます。
Snipetの一種かな?と思われるライブテンプレートも通常(Insert Live Template)と取り囲み(Surround with Live Template)と2つあるので,使い分けがちょっと大変です(と言うほど使ってませんが...。


あと,どうゆうわけかコードの折り畳み(Folding)がここにあります。Viewメニューでも良さげな気がしますが,多くは言うまい。:-(


補完系の話は、昔書いたこれを参照してください。
IntelliJ IDEAも仲間に入れて...

Analyzeメニュー

コード分析系の機能が集約してます。この機能はある意味IntelliJの超目玉機能だと思うのですが,使いこなすのも大変デス。結構Javaに特化した機能なので,IntelliJ以外だと,そもそもこのメニュー自体が存在してないかも知れませんね。


ここからわざわざ使うかどうかはわかりませんが,まずはインスペクション(Inspect Code)。わたしはステータスバーのHectorおじさん経由で使うので,ここから使う事は稀です。ちなみにインスペクション機能は「FindBugsCheckstyleのスゴイやつ」とでも思って下さい。当然,指摘するメッセージは英語です。


依存性分析の中でもっともハッタリが効くのが Analyze Dependency Matrix だと思います。詳しくはこちらを参照してください。
DSM - Dependency Structure MatrixComments


個人的に気に入っているが引数やフィールドがどこから来て,どこに行くのかを分析してくれる Analyze Data Flow to Here と Analyze Data Flow from Here。こちらも詳しくは,こちらを参照してください。
Analyzing Dataflow with IntelliJ IDEA


あとスレッドダンプの解析(Analyze Stacktrace)もできますが,のほうが便利ですね。
Analyzing External Thread Dump | IntelliJ IDEA Blog

Refactorメニュー

リファクタリングメニュー。IntelliJが脚光をあびるきっかけが,このリファクタリングメニューの豊富さだったと思います(脚光浴びたことがあったかどうかは,私の想像ですがw。
とにかくいっぱいあるので,気になるのは片っ端から試してみるといいです。

Buildメニュー

その名の通りです。IntelliJにはeclipseのようなインクリメンタルビルドはありませんので,適時このメニューで対象をビルドしてやる必要があります。
プロジェクトにアーティファクト(artifact)を設定していたり,AntやMavenを設定していると,このメニューから特定のアーティファクトを生成(Build Artifacts)したり,特定のターゲットを実行したりもできます。


また,Antのビルドスクリプトを生成する機能(Generate Ant Build)もありますが,生成されるビルドスクリプトはあまり良いものではありません。

Runメニュー

いわゆる実行メニューです。デバッグ実行したり,カバレッジを測定したりもここでやります(カバレッジレポートの作成はAnalyzeメニューで行います)。


デバッガのステップ実行の各種機能もここにあります。Smart Step Intoがとても便利なので,覚えておきましょう。:-)

Toolsメニュー

テンプレートを登録したり(Save as Live Template/Save File as Template),Javadocを生成したり(Generate JavaDoc)する機能が集約されています。ここもわりと雑多で,外部ツール(External Tools)やPHPRubyPythonなどの言語系プラグインの支援ツールのメニューなどが集約されます。

VCSメニュー

バージョン管理システムVCS:Version Control System)と連係する機能が集約されています。あとIntelliJが独自に記録しているローカルヒストリ(Local History)もここにあります。


VCSのメニューは,特定のVCSSubversion/Git/Mercurialなど)専用のメニューと,それらを抽象化したメニューとて成り立っています。


ローカルヒストリ同様にIntelliJ独自の機能として,git stashのような一時待避機能(Shelve Changes)があります。gitが普及したので,便利さも薄らいできましたが,登場したときは鼻血が出るほど便利でした。:-)
IDEA7のShelve Changesが鼻血吹くほど便利な件について

Windowメニュー

アクティブなツールウィンドウの表示設定を変更したり(Active Tool Window),エディタウィンドウの分割指定をする機能(Editor Tabs)が集約してあります。


ひっそりと,複数のプロジェクトを同時に表示している時に,プロジェクト間を移動するNext Project WindowやPrevious Project Windowなんて機能もあります。:-)

Helpメニュー

その通りヘルプですが,ライセンスを登録するレジスター(Register),IntelliJのログファイルがあるディレクトリを開く(Reveal Log in Exploer/Finder)なんてのもあります。


NavigateメニューのCode/File/Symbolと同じインターフェイスを持つ,IntelliJのコマンド検索(Find Action)もここにあります。場所やショートカットキーを覚えられず,NavigateメニューやEditメニューを探していたのは良い思い出。:-)


ヘルプ(Help Topics)やチップス(Tip of the Day)はそれなりにまともな事が書いてあるので,ヒマなときはチラ見するといいです(でも,ホントに知りたいことはあんまり書いてないw

*1:Macの場合はoptキー

*2:この機能を逆手にとって,エンコードを変更して保存することもできます。http://d.hatena.ne.jp/masanobuimai/20121029

*3:Macの場合,設定(Settings)はPreferenceメニューという名前でアプリケーションメニュー(メニューバーの左端)にあります。