[Delphi] RAD Studio IDE ショートカット チートシート

# ショートカットについて

RAD Studio IDE はよく使いづらいと言われますが、単純にショートカットを知らないだけかもしれないと思って、僕がよく使うショートカットを抜き出しました。

**全てのショートカットは↓こちら**
[デフォルトのキーボード ショートカット](http://docwiki.embarcadero.com/RADStudio/ja/%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%AE%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89_%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88)
[今更聞けない Delphi のコト (キーボードショートカット編)]
(https://ht-deko.com/tech026.html)

**実際の動きを表示してくれている↓こちらもオススメ**
[Delphi IDE の便利な機能 - キーボードショートカットなど](https://qiita.com/CYonezawa/items/ca2c4414cf45bbed1283)
[Delphi IDE の便利な機能 - キーボードショートカットなど - その２](https://qiita.com/CYonezawa/items/af71bffe05e28476b5fa)
[Delphi IDE の便利な機能 - コード補完](https://qiita.com/CYonezawa/items/9cade021a8f1dd5b4e7c)
[Delphi IDE の便利な機能 - その他の支援機能](https://qiita.com/CYonezawa/items/eab131e8ddada9fe5207)
[Delphi IDE の便利な機能 - 名前のリファクタリング](https://qiita.com/CYonezawa/items/d28d9f4907ec75ccc692)
[Delphi IDE の便利な機能 - リファクタリング - 詳細](https://qiita.com/CYonezawa/items/c13f9e674aaab11bb6fe)

# 必須ショートカット

RAD Studio IDE を使うに当たって**絶対に覚えないといけない**ショートカット

## 実行

| キー | 効果 | 備考 |
| - | - | - |
| F5 | ブレークポイントの設置・削除 |  |
| F7 | Step-in 実行 | 関数や別の処理の中に入っていく |
| F8 | Step 実行 | 関数や別の処理の中には入らない |
| F9 | デバッグ実行 |  |

## コード補完

| キー　　　　　　 | 効果　　　　　　　　　　　 | 備考 |
| - | - | - |
| Ctrl + Shift + C | クラス補完 | クラスの実現部を自動生成。既にあるクラスに新たなメソッドを追加した時なども有効。またプロパティであれば変数と write メソッドを自動的に生成 |
| Ctrl + Shift + ↑ | メソッドの宣言部に移動 | カーソルがメソッドの実現部にある場合、宣言部に移動 |
| Ctrl + Shift + ↓ | メソッドの実現部に移動 | カーソルがメソッドの宣言部にある場合、実現部に移動 |
| Ctrl + J | コードテンプレートの表示 | 例えば tryf と書いて Ctrl + J を押すと try - finally - end が補完される |
| Ctrl + SPACE | コード補完 | コード補完ポップアップを表示。変数名などを途中まで打って Ctrl + SPACE をすれば自動的に補完、または補完候補を開く |
| Ctrl + クリック | 宣言部へ移動 | クラスや変数、定数、メソッドなどの宣言位置に移動 |

## IDE 操作

| キー | 効果 | 備考 |
| - | - | - |
| F12 | コードエディタ・フォームデザイナ切り替え |  |

## 一般的なショートカット

| キー | 効果 | 備考 |
| - | - | - |
| Ctrl + A | 全選択 |  |
| Ctrl + C | コピー |  |
| Ctrl + V | 貼付け |  |
| Ctrl + X | 切り取り |  |
| Ctrl + Z | 元に戻す |  |
| Ctrl + Shift + Z | やり直す |  |

**ファイル**

| キー | 効果 | 備考 |
| - | - | - |
| Ctrl + S  | 保存 | 現在アクティブになっているファイルを保存する |

## 移動と選択

下記のキー操作それぞれ SHIFT キーを押しながら実行すればカーソル移動範囲が選択される。
たとえば、Shift + END とすればカーソル現在位置から行末まで選択される。

| キー　| 効果　　　　　　　　　　　　 | 備考 |
| - | - | - |
| ← | カーソルを左に移動 |
| → | カーソルを右に移動 |
| ↑ | カーソルを上に移動 |
| ↓ | カーソルを下に移動 |
| END | 行末へ移動 | RAD Studio IDE はスクリーンエディタなのでよく使う |

## 検索と置換

| キー　　　　　　| 効果　　　　　　| 備考 |
| - | - | - |
| Ctrl + F | 検索 | 検索ウィンドウを開く |
| Ctrl + R | 置換 | 置換ウィンドウを開く |
| Ctrl + Shift + F | ファイル検索 | プロジェクト内のファイルや指定ディレクトリ内を検索できる |

# 必須ではないが知っておくと便利な機能

## 編集
| キー　　　　　　　　　| 効果　　　　　　　　　　　　 | 備考 |
| - | - | - |
| Ctrl + Shift + I | 選択行をインデント | Ctrl + Shift + U でアンインデント |
| Ctrl + Shift + U | 選択行をアウトデント | Ctrl + Shift + I でインデント |
| Ctrl + Shift + J | 同期編集の開始 | 選択範囲内の同じ単語を一括変更（文の意味などは無視して同じ単語を一括で変更、他のエディタのマルチカーソル相当）Tab で次の単語に移動、ESC で同期編集を終了 |
| Ctrl + Y | カーソルのある行を削除 |  |
| Ctrl + / | 一括コメントアウト・解除 | 選択行の行頭に // を追加・削除 |
| 行選択時に Tab | インデント | Ctrl + Shift + I と同じ |
| 行選択時に Shift + Tab | アウトデント | Ctrl + Shit + U と同じ |

**カーソル移動**
これらのキーも SHIFT と同時押しで選択される

| キー | 効果 | 備考 |
| - | - | - |
| Ctrl + ← | ワード単位で左に移動 |
| Ctrl + → | ワード単位でを右に移動 |
| HOME | 行頭へ移動 |  |
| Ctrl + HOME | ファイル先頭に移動 |  |
| Ctrl + END | ファイル終端に移動 |  |

**キーマクロ**

| キー　　　　　　| 効果　　　　　　　　　　 | 備考 |
| - | - | - |
| Ctrl + Shift + R | キーマクロの記録・停止 |  |
| Ctrl + Shift + P | キーマクロの実行 | Ctrl + Shift + R で覚えたキーマクロを実行する |


## 便利機能
| キー 　　　　　　　 | 効果　　　　　　　　　　　　　　　 | 備考 |
| - | - | - |
| Ctrl + D | コード整形 | 初心者のうちはお世話になる。ただしインライン変数宣言に対応していないので注意 |
| Ctrl + Shift + E | 名前の変更 | リファクタリングの名前の変更を呼び出す。置換と違いプロジェクト内の全てのファイルの出現箇所で名前を変更する。ただし、構文解析するため一部でもコンパイルが通らない場所があれば失敗する |
| Ctrl + Shift + G | GUID の挿入 | 新しく GUID を生成してカーソル位置に挿入<br>Interface の宣言などで使用 |
| Alt + G | 指定行へ移動 | 行数指定ダイアログが表示される |
| Ctrl + ENTER | カーソル位置のファイルを開く | uses リストのユニットや $I による Inc ファイルなどを開ける |

**ブックマーク**

| キー 　　　　　　　　　| 効果　　　　　　　　 | 備考 |
| - | - | - |
| Ctrl + Shift + 0～9 | ブックマークを設定 | Ctrl + Shift + 0 が Windows の IME 切り替えショートカットになっている場合は 0 は使えない |
| Ctrl + 0～9 | ブックマークへ移動 |  |

## 実行
| キー　　　　　　　| 効果　　　　　　　　　　　　　　　 | 備考 |
| - | - | - |
| F4 | カーソル位置まで実行 |  |
| Ctrl + F2 | デバッグ実行の終了 |  |
| Ctrl + F7 | 評価ウィンドウを表示 | 実行中であれば変数の中をみたり、実行中でなくても簡単な計算は可能(2 * 4 といれれば 8 と出る) |
| Shift + F8 | 呼び出し元に戻るまで実行 | 現在実行中の関数などを抜ける |
| Ctrl + F9 | コンパイル | 実行はしない |
| Ctrl + Shift + F9 | 実行 | デバッガを使用しない実行（通常の実行） |
| Ctrl + Alt + B | ブレークポイントウィンドウを表示 | ブレークポイントの一括削除・無効化などができる |

## 検索と置換
| キー　　　　　　　　 | 効果　　　　　　　　　　　 | 備考 |
| - | - | - |
| F3 | インクリメンタルサーチ | Ctrl + F で指定した単語を検索 |
| Alt + Shift + ↑↓←→ | 矩形選択の開始 | 解除はマウスのドラッグで選択するか、Ctrl + O + K |
| Alt + ドラッグ | 〃 |  |

## IDE 操作
| キー　　　　　　 | 効果　　　　　　　　　　　　　　　 | 備考 |
| - | - | - |
| F1 | コンテキストヘルプ | カーソル位置の単語のヘルプを表示 |
| F6 | IDE Insight | IDE 内の機能を検索 |
| F11 | オブジェクトインスペクタの表示 |  |
| Ctrl + Alt + F11 | プロジェクトマネージャを開く |  |

# 初心者が絶対に覚えて欲しいショートカット

必須とも重複するけど絶対覚えて欲しいショートカットをピックアップと解説

* **Ctrl + Shift + ↑↓**  
宣言部と実現部の行き来がめっちゃ楽
* **Ctrl + Shift + C**  
クラス補完。クラス全体の補完（スケルトンの生成）もできれば、メソッド単体や、プロパティの実現部のスケルトンも生成できる。特にプロパティに至っては変数とメソッドのセットを自動的に作り出せる。  
コードを書く手間が省ける。
* **Ctrl + J** または **Tab**  
ライブテンプレートの展開。class や case 文の自動補完、また tryf, trye など覚えておけばステートメントの自動補完が効く。  
コードを書く手間が省ける。
* **Ctrl + F7**  
**一推し！**  
簡単な計算ができるので電卓を開いたりしなくていい、実行時であればここから監視式に突っ込める

これらの機能を使えば自分でコードを書く手間がないので、begin end 等の長い単語をほとんど書かなくて済みます。
むしろ、これらの機能を使うために IDE を使うといっても過言ではありません。
他のエディタで書くとここまで言語にマッチした作業をできるとは思えません（特に Ctrl + Shift + C と Ctrl + Shift + ↑↓）。

# おわりに
コードエディタのショートカットだけ記載したけど、それぞれのペインやフォームデザイナにもショートカットがあるので、興味があったら覚えると効率が爆上がりします。