Eclipseを入れたら必ずやる設定とよく使うショートカット

# Eclipseを入れたら必ずやる設定とよく使うショートカット

    Development Environment
    Date : 2016/02/21
    OS   : Windows 7 (32bit)
    IDE  : Eclipse 4.5 Mars (Pleiades All in One)


日本語化されたEclipse(Pleiades)を使用しています。
対象言語はC/C++(CDT)となりますが、他のプラグインでも似たような設定ができると思います。

## 必ずやる設定

### フォントの設定
キレイなフォントの設定は必須でしょう。
`Ricty Diminished`か`Myrica M`の11ptが好みです。

`メニュー: ウィンドウ(W) => 設定(P)`
`設定: 一般 => 外観 => 色とフォント`
`色とフォント: C/C++ => エディター => C/C++ エディター・テキスト・フォント`

### フォーマットの設定
フォーマッターの改行設定があると、変な箇所で改行されることがあります。
最大幅に999を設定しておくとよいでしょう。

`メニュー: ウィンドウ(W) => 設定(P)`
`設定: C/C++ => コード・スタイル => フォーマッター`
`フォーマッター: BSD/Allman [ビルトイン] => 編集(E)`
`BSD/Allman [ビルトイン] プロファイル: プロファイル名(P): BSD/Allman [Improvement]`
`BSD/Allman [ビルトイン] プロファイル: 行折り返し(P) => 行の最大幅(X): 128`
※enumの改行設定が効かない現象があったので、128を設定しています。

### ビルド時に保存
ビルド時に自動的に保存されると便利です。

`メニュー: ウィンドウ(W) => 設定(P)`
`設定: 一般 => ワークスペース`
`ワークスペース: ビルド前に自動的に補完(M): checked`
※好みに応じて`自動的にビルド(B)`もチェックを入れるとよいでしょう。

### 起動前にビルド
デバッグ時に自動的にビルドされると便利です。

`メニュー: ウィンドウ(W) => 設定(P)`
`設定: 実行/デバッグ => 起動`
`起動: 一般オプション => 起動前に(必要に応じて)ビルド(B): checked`

### 補完候補を素早く表示
補完候補の表示が遅いとテンポが悪くなってしまいます。
デフォルトの設定では遅いことが多いので、改善しましょう。
遅延秒数を小さな数値に変更します。(500ms -> 80ms)

`メニュー: ウィンドウ(W) => 設定(P)`
`設定: C/C++ => エディタ => コンテンツ・アシスト`
`コンテンツ・アシスト: 自動有効化 => 遅延(Y) (ミリ秒): 80`

### makeを高速化(※複数コアのCPUのみ)
Eclipseではmakeを使ってビルドしています。
makeはコンパイルにかかる手順を自動化するソフトです。
このmakeに-jオプションを追加し、コンパイルをパイプラインで処理できるようにします。
-jオプションを付けるだけでビルド時間が半分以下になりました。

`メニュー: ファイル(F) => プロパティ(R)[Alt + Enter]`
`[Project]のプロパティ: C/C++ ビルド => ビルダー設定`
`デフォルト・ビルド・コマンドを使用(U): unchecked`
`ビルド・コマンド(C): ${cross_make} -j`

timeコマンドで実測した結果(当社比)

    time make
    real    1m12.863s
    user    0m5.382s
    sys     0m11.315s

    time make -j
    real    0m20.356s
    user    0m7.710s
    sys     0m18.358s


### ショートカットの設定
使いやすいようにショートカットを変更します。
下記は一例です。

`メニュー: ウィンドウ(W) => 設定(P)`
`設定: 一般 => キー`

<kbd>Ctrl</kbd> + <kbd>B</kbd>
デフォルトでは`すべてビルド`が割り振られているので、`プロジェクトのビルド`へ変更します。
`すべてビルド`を選択し、`コマンドのアンバインド(U)`をします。
`プロジェクトのビルド`を選択し、バインディングで`Ctrl + B`を入力し、適用します。

<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Z</kbd>
デフォルトでは`Ctrl + Z`で元に戻した場合、`Ctrl + Y`でやり直せます。
`Ctrl + Shift + Z`でやり直せる方が直感的で好きなので変更します。

## よく使うショートカット

### 補完(Ctrl + Space)

<kbd>Ctrl</kbd> + <kbd>Space</kbd>
コンテンツ・アシスト機能が使えます。
コード(変数や関数)の補完候補を表示します。
コードテンプレートがある場合は、一気に補完できます。

<kbd>Alt</kbd> + <kbd>/</kbd>
単語を補完できますが、候補は表示されません。
複数回押すと次の候補へ変更できます。

### コメント(Ctrl + /)

<kbd>Ctrl</kbd> + <kbd>/</kbd>
行や選択範囲をコメントまたはアンコメントします。

### 保存(Ctrl + S)

<kbd>Ctrl</kbd> + <kbd>S</kbd>
編集したファイルを保存します。
編集が終わったら反射的に押すようにしています。

<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>S</kbd>
全て保存となります。

### ビルド(Ctrl + B)

<kbd>Ctrl</kbd> + <kbd>B</kbd>
ビルドできます。
入力内容が正しいかチェックしたい時にポチッとします。
ただし、デフォルトでは全てのプロジェクトが対象となります。
個別にビルドしたい場合は、プロジェクトのビルドにショートカットを割り当てるとよいでしょう。

### ヘッダーを開く(Ctrl + Tab)

<kbd>Ctrl</kbd> + <kbd>Tab</kbd>
C/C++のヘッダーを開くことができます。
意外と便利です。

### 定義へ移動(F3)

<kbd>F3</kbd>
関数の定義元、プロトタイプ宣言などへ移動できます。
元の場所へ戻るときは、Alt + Leftです。

<kbd>Ctrl</kbd> + <kbd>Click</kbd>
マウスを使う場合は、Ctrlを押しながらクリックで移動できます。
元の場所へ戻るときは、マウスの戻る、進むボタンが使えます。

### 履歴移動(Alt + Left, Alt + Right)

<kbd>Alt</kbd> + <kbd>Left</kbd>, <kbd>Alt</kbd> + <kbd>Right</kbd>
別のページに飛んだ後、すぐに前の場所をまた見たくなることが多々あります。
そんな時はAltを押しながら矢印キーで戻ったり進んだりできます。
これを知っていると移動がかなり楽になります。
実はマウスの戻る進むボタンも使えます。

<kbd>Ctrl</kbd> + <kbd>Q</kbd>
最後の編集した位置へ戻ります。

### ワークスペースを検索(Ctrl + Alt + G)

<kbd>Ctrl</kbd> + <kbd>G</kbd>
カーソル位置の変数や関数の宣言を検索します。
宣言へはF3で飛べるのであまり使いません。

<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>G</kbd>
参照を検索します。
宣言の逆で、呼びだされている箇所を検索します。
よく使うのでCtrl + Gと入れ替えた方が便利だと思います。

<kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>G</kbd>
ワークスペースをテキスト検索します。
コメントの中やmapファイルも探せるので重宝します。

### 呼び出し階層(Ctrl + Alt + H)

<kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>H</kbd>
いわゆるコールグラフです。
関数の呼出元/呼出先を調べることができます。
フォルダ情報がなくてすっきりして見えますし、宣言と参照のどちらへも飛べるので便利です。

### インクリメント検索(Ctrl + J)

<kbd>Ctrl</kbd> + <kbd>J</kbd>
インクリメンタルサーチが使えます。
PleiadesにはGlanceプラグインが導入されているので、Glanceでの検索となります。
スクロールバーにハイライトされたり、検索履歴が使えたり非常に便利です。

### 名前を変更(Alt + Shift + R)

<kbd>Alt</kbd> + <kbd>Shift</kbd> + <kbd>R</kbd>
複数の箇所にある変数や関数の名前を一括変換できます。
C/C++の場合は
ヘッダーファイルの変更がされず、微妙に不便です。

ヘッダーのディレクトリもソースディレクトリとして含める必要があります。

### コードフォーマット(Ctrl + Shift + F)

<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>F</kbd>
選択範囲またはファイル全体のコードを整形します。
フォーマットスタイルは設定で変更できます。
ネットで探してきたソースなどはレイアウトが崩れやすいので重宝します。

### デバッグ
念のためメモ。
いろいろな環境を使っていると一番迷うのがデバッグ系のショートカットです。
<kbd>F8</kbd>: 実行
<kbd>F5</kbd>: ステップイン(中へ)
<kbd>F6</kbd>: ステップオーバー(中へ入らず次へ)
<kbd>F7</kbd>: ステップリターン(外へ)
<kbd>F11</kbd>: デバッグ

## 参考
[Eclipseでソースファイルを自動保存する](http://qiita.com/dvorak__/items/2201356c0e8dadf150f8)
[eclipseでよく使うショートカット](http://qiita.com/ynxx/items/7734dfb755bc83373d7c)
[4年目Javaエンジニアが普段よく使用しているEclipseのショートカット18個](http://qiita.com/nikuyoshi/items/221ba004da6c5daacb88)
[役に立つやつ限定　地味なEclipseショートカット選手権](http://qiita.com/arai-wa/items/69a54b421cedfe648e84)
[新人研修でドヤ顔で披露したらウケたEclipseのショートカット集](http://qiita.com/arai-wa/items/c2eb7387b5bf37b4ace4)