カンニング万歳！JetBrains Rider逆引きチートシート

# 最初に

この記事は JetBrains2020.3 と、その拡張機能であるVimなどのよく使うショートカットキーに関する逆引きチートシートとなっております。vim拡張機能でのショートカットも記載しております。当方の環境としては、**Windows**を使用しておりますので、Macの方には分かりにくい部分も多いかもしれません。ご了承ください。

# 逆引きチートシートの推奨する見方

このチートシートを効率良く確認する推奨環境の紹介です。まずディスプレイが二枚以上あると、常にチートシートを表示させながらエディタを操作することができるのでオススメです。また、スクロールを行わずに効率的に作業を進めながらチートシートを確認するために、チートシートのページを普段使いの**ブラウザ以外で文字を小さくして複数ウィンドウに表示させること**をオススメします。[「Spectacle」](https://www.spectacleapp.com/)というアプリをPCに入れるとショートカットキーの押下でウィンドウを簡単に上寄せ半分表示、斜め右上1/4表示などの表示が可能なので、是非使用してみて下さい。

# 共通操作

## 行の編集

| キー           | 動作                             | 備考                                   |
| -------------- | -------------------------------- | -------------------------------------- |
| [ctrl]+[X]        | 行の切り取り                     | 未選択状態の行全体を切り取り           |
| [ctrl]+[C]        | 行のコピー                       | 未選択状態の行全体をコピー             |
| [Ctrl]+[↩︎]       | 現在のカーソル行の下に空行を追加 | カーソルは行頭に移動する               |
| [ctrl]+[shift]+[↩︎]   | 現在のカーソル行の上に空行を追加 | カーソルは行頭に移動する               |
| [shift]+[alt]+[クリック] | マルチカーソルをクリック場所に作成           |             |
| [shift]+[alt]+[Down] | マルチカーソル下方向に作成           | 複数行を選択中はその行数分             |
| Tab      | 行をインデント                   | 行のスペース部分にカーソルがある状態で有効                                       |
| [shift]+[Tab]      | 行をアンインデント               |                                        |
| [ctrl]+[W]      | 選択範囲を段階ごとに広げていく |
| [ctrl]+[shift]+[s]     | 全てを保存       |                    |
| [alt]+[↩︎]    |  現在の選択箇所でのクイックアクション一覧を表示    |                    |

### 行の移動

| キー         | 動作                                       | 備考                                                                                                                         |
| ------------ | ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- |
| [alt]+[Down] | メソッド単位で下に移動する |  |
| [alt]+[Up] | メソッド単位で上に移動する |  |

### 行の選択

| キー             | 動作     | 備考 |
| ---------------- | -------- | ---- |
| [alt]+ドラッグ | 矩形選択 |      |


### コメントの編集

| キー        | 動作                         | 備考                       |
| ----------- | ---------------------------- | -------------------------- |
| [ctrl]+[k]+[c]    | 行コメント記号をトグル       | 複数行を選択中はその行数分 |
| [ctrl]+[shift]+[/] | ブロックコメント記号をトグル | 選択中は選択部分           |

### ファイル/フォルダ自体の表示

| キー        | 動作                                           | 備考                                         |
| ----------- | ---------------------------------------------- | -------------------------------------------- |
| [ctrl]+[Tab]   | 開いているファイルの切り替え表示                     | 開いた後は^を押下したままTabで切り替えられる |
| [ctrl]+[F4] | 現在開いているファイルを閉じる |


### ファイルやコードのパスコピー

| キー        | 動作                                   | 備考 |
| ----------- | -------------------------------------- | ---- |
| [ctrl]+[shift]+[c] | 現在アクティブなファイルのパスをコピー |      |
| [ctrl]+[alt]+[shift]+[c] | 現在アクティブなファイルのパスをコピー |      |


### 検索/置換(シンボルに関しては後述)

| キー        | 動作                                       | 備考                                                       |
| ----------- | ------------------------------------------ | ---------------------------------------------------------- |
| [ctrl]+[F]     | 上部に検索ポップアップ表示                       | カーソル位置のワードがマッチされていればその単語を使用する |
| [ctrl]+[shift]+[F] | 全ファイルにまたがってキーワード検索をする |                                                            |
| [ctrl]+[H]     | 置換ポップアップ表示                       | 同上                                                       |
| [F3]        | 次を検索                                   | マッチワードがあればその単語で検索                         |
| [shift]+[F3]    | 前を検索                                   | 同上                                                       |


### ブックマーク操作操作

| キー        | 動作                       | 備考               |
| ----------- | -------------------------- | ------------------ |
| [ctrl]+[k],[k]     | 現在の位置にブックマークを追加・削除       |                    |               |
| [ctrl]+[`]     | ブックマーク一覧を表示       |                    |               |
| [ctrl]+[k],[n]     | 次のブックマークへ移動       |                    |               |
| [ctrl]+[k],[p]     | 前のブックマークへ移動       |                    |               |
| [ctrl]+[k],[p]     | 前のブックマークへ移動       |                    |               |
| [ctrl]+[shift]+[1~9]     | 数字に対応したブックマークを追加・削除       |                    |               |
| [ctrl]+[1~9]     | 数字に対応したブックマークへ移動       |                    |               |



### IDE操作

| キー        | 動作                       | 備考               |
| ----------- | -------------------------- | ------------------ |
| [shift]+[F4] | 現在開いているコードファイルを新しいウィンドウで開く        |                    |
| [ctrl]+[shift]+[E] | 最近変更した箇所群の表示 |                    |
| [alt]+[1] | Explorer画面の表示              |                    |
| [alt]+[3] | Find画面の表示              |                    |
| [alt]+[5] | デバッグ画面の表示              |  デバッグ時に有効                  |
| [alt]+[7] | NuGet画面の表示              |                    |
| [alt]+[8] | UnitTests画面の表示              |                    |
| [alt]+[9] | Git画面の表示              |                    |
| [alt]+[左右キー] | 各ツールウィンドウ内でのタブ移動              |                    |
| [ctrl]+[Tab] | 画面のSwitcherウィンドウ表示               | タブに対応した文字を打ち込むと即座に切り替わる |
| [ctrl]+[G]         | 指定した行番号に移動       |                             |
| [ctrl]+[-]         | 前に表示していた箇所に戻る |                             |
| [ctrl]+[shift]+[-]         | 次に表示していた箇所に戻る |                             |
| [↩︎]     | エディタにフォーカスを戻す            |                             |
| [shift]+[esc]     | ツールウィンドウを閉じる            |                             |
| [ctrl]+[alt]+[s]     | Setting画面の表示       |                    |



### エラー表示時移動

| キー     | 動作                   | 備考 |
| -------- | ---------------------- | ---- |
| [ctrl]+[alt]+[2]     | ソリューション内でのエラー一覧表示 |      |
| [alt]+[shift]+[Page Up]     | 次のエラーと警告に移動 |      |
|  [alt]+[shift]+[Page Down]   | 前のエラーと警告に移動 |      |
| [shift]+[esc]     | ツールウィンドウを閉じる            |                             |

### Git操作

| キー             | 動作                 | 備考                 |
| ---------------- | -------------------- | -------------------- |
| [alt]+[9] | Git画面の表示              |    以下はGitツールがアクティブ状態の時に有効                |
| [ctrl]+[alt]+[k]    | 選択ファイルをコミットする |  |
| [ctrl]+[alt]+[z]   | 選択ファイルをロールバックする  | |
| [ctrl]+[shift]+[h]   | 選択ファイルをスタッシュする  | |
| [ctrl]+[alt]+[z]   | 選択ファイルをロールバックする  | |
| [ctrl]+[alt]+[u]   | 選択ファイルをスタッシュから取り出す  | |
| [↩︎]     | エディタにフォーカスを戻す            |  以下はエディタがアクティブ状態の時に有効    |
| [ctrl]+[alt]+[w]   | pull用のウィンドウ表示  | MergeするかRebaseするか選べる |
| [ctrl]+[alt]+[k]    | コミット用のウィンドウ表示 |  |
| [ctrl]+[shift]+[k]| push | |

### Merge操作

| キー             | 動作                               | 備考                                                                  |
| ---------------- | ---------------------------------- | --------------------------------------------------------------------- |
| [shift]+[alt],[right]    | リモートの変更を優先する        ||
| [F7] | 次の差分に移動する           |  |

## コーディング時の操作

### シンボル検索/表示

| キー           | 動作                                           | 備考                               |
| -------------- | ---------------------------------------------- | ---------------------------------- |
| [F12]          | シンボルの定義を表示                           | 基本はこっちの方が使い勝手が良い   |
| [shift]+[F12]        | 全ファイルにまたがって参照検索しファイルを開く |                                    |
| [ctrl]+[R],[R]           | シンボルのリネーム                             |                                    |

### デバッグ操作

| キー      | 動作                               | 備考 |
| --------- | ---------------------------------- | ---- |
| [F9]      | ブレークポイントの切り替え         |      |
| [F5]      | デバッグスタート又はコンティニュー |      |
| [alt]+[F5]  | アタッチする                           |      |
| [shift]+[F5]  | アタッチを外す                           |      |
| [F10]     | ステップオーバー                   |      |
| [alt]+[shift]+[F8]     | フォースステップオーバー                   |      |
| [F11]     | ステップイン                       |      |
| [shift]+[F7]     | スマートステップイン                      |      |
| [shift]+[F11] | ステップアウト                     |      |



## Vim操作

### モード切り替え

| キー  | 動作                 | 備考             |
| ----- | -------------------- | ---------------- |
| [i]   | 挿入モード           | カーソル位置から |
| [a]   | 挿入モード           | カーソルの後から |
| [:]   | コマンドラインモード |                  |
| [v]   | ビジュアルモード     |                  |
| [esc] | ノーマルモード       |                  |

### ファイル操作

| キー    | 動作                                         | 備考                                     |
| ------- | -------------------------------------------- | ---------------------------------------- |
| [:]+[e] | ファイルをパス指定で開く |                                          |
| [:]+[q] | 開いているファイルを閉じる                   | |

### エディタ操作(ノーマルモード)

| キー    | 動作                                 | 備考                                             |
| ------- | ------------------------------------ | ------------------------------------------------ |
| [dd]    | カーソルがある行を切り取り           | [dd]の前に数値を入れて切り取る行数の指定が可能   |
| [yy]    | カーソルがある行のコピー             | [yy]の前に数値を入れてコピーする行数の指定が可能 |
| [P]     | カーソルがある行にペースト           |                                                  |
| [p]     | カーソルの下の行にペースト           |                                                  |
| [u]     | Undo                                 |                                                  |
| [^]+[r] | Redo                                 |                                                  |
| [U]     | 行に対して行った変更の全てを取り消す |                                                  |
| [v]     | 選択開始                             |                                                  |
| [V]     | 行選択                               |                                                  |
| [^]+[v] | 矩形選択                             |                                                  |
| [gv]    | 直前の選択範囲を再選択               |                                                  |

### 検索/置換(ノーマルモード)

| キー                   | 動作                               | 備考                           |
| ---------------------- | ---------------------------------- | ------------------------------ |
| [/]+[文字列]           | 前方検索                           |                                |
| [?]+[文字列]           | 後方検索                           |                                |
| [#]                    | カーソル位置の単語を前方検索       |                                |
| [*]                    | カーソル位置の単語を後方検索       |                                |
| [n]                    | 次の候補                           |                                |
| [shift]+[n]                    | 前の候補                           |                                |
| [gd]                   | カーソル位置のローカル宣言を検索   |                                |
| [gD]                   | カーソル位置のグローバル宣言を検索 |                                |
| [:]+[%s/from/to/g]     | ページ全体で置換                   | fromが検索語句,toが置換語句    |
| [:]+[32,50s/from/to/g] | 32〜50行目まで置換                 | gは繰り返し、cなら一回毎に確認 |

### テキスト操作(ノーマルモード)

| キー    | 動作                                           | 備考                |
| ------- | ---------------------------------------------- | ------------------- |
| [x]     | 1文字削除                                      | Deleteキーと同じ    |
| [X]     | 1文字削除                                      | BSキーと同じ        |
| [D]     | カーソル位置から行末まで削除                   |                     |
| [s]     | 1文字削除して挿入モードへ切り替え              |                     |
| [S]     | 現在の行を削除して挿入モードへ切り替え         |                     |
| [r]     | カーソル位置の一文字だけ置換                   |                     |
| [R]     | 置換モードに切り替え                           |                     |
| [J]     | 現在の行と下の行をスペースありで連結           |                     |
| [gJ]    | 現在の行と下の行をスペースなしで連結           |                     |
|         | [~]                                            | 大文字/小文字に変換 |
| [^]+[a] | カーソル位置の数字をインクリメント             |                     |
| [^]+[x] | カーソル位置の数字をデクリメント               |                     |
| [^]+[p] | （挿入モード時）単語を後方向に検索し、補完する |                     |
| [^]+[n] | （挿入モード時）単語を前方向に検索し、補完する |                     |

### インデント操作(ノーマルモード)

| キー       | 動作                                 | 備考 |
| ---------- | ------------------------------------ | ---- |
| [>]        | 現在の行をインデント                 |      |
| [<]        | 現在の行を逆インデント               |      |

### 画面分割(ノーマルモード)

| キー            | 動作                             | 備考 |
| --------------- | -------------------------------- | ---- |
| [:]+[sp]or[vsp] | エディタウィンドウを縦に分割           |      |
| [:]+[q]         | エディタウィンドウを閉じる       |      |
| [:]+[qall]      | 全てのエディタウィンドウを閉じる |      |


### 移動操作(ノーマルモード)

| キー              | 動作                                   | 備考                          |
| ----------------- | -------------------------------------- | ----------------------------- |
| [gg]              | 最初の行へ                             |                               |
| [G]               | 最後の行へ                             |                               |
| [数値]+[G]        | 指定した行へ                           |                               |
| [0]               | 行の最初へ                             | インデント無視                |
| [^(Ctrlではない)] | 現在の行の最初へ                       | テキストの最初                |
| [$]               | 行の末尾へ                             |                               |
| [-]               | 前の行の最初へ                         |                               |
| [+]               | 次の行の最初へ                         |                               |
| [%]               | カーソル位置にある括弧に対応する括弧へ |                               |
| [H]               | エディタの上端へ移動                   | Hの前に数値で上から数えた行へ |
| [M]               | エディタの中央行へ移動                 |                               |
| [L]               | エディタの下端へ移動                   | Lの前に数値で上から数えた行へ |
| [ctrl]+[o]           | 前回のジャンプ位置へ戻る               |                               |
| [ctrl]+[i]           | 次回のジャンプ位置へ戻る               |                               |
| [z]+[↩︎]          | 現在の行をエディタの一番上に位置なるようにスクロールする                       | テキストの最初                |
| [w]               | 次の単語に移動                         |                               |
| [b]               | 前の単語に移動                         |                               |
| [e]               | 単語の末尾に移動                       |                               |
| [W]               | 次の単語に移動                         | 記号は無視                    |
| [B]               | 前の単語に移動                         | 記号は無視                    |
| [E]               | 単語の末尾に移動                       | 記号は無視                    |
| [f]+[一文字]      | カーソルを指定した文字まで移動         | 3fiで3つ目のiまで移動         |
| [t]+[一文字]      | カーソルを指定した文字の左端まで移動   | 3tiで3つ目のiの左側まで移動   |

### スクロール操作(ノーマルモード)
| キー    | 動作              | 備考                                   |
| ------- | ----------------- | -------------------------------------- |
| [ctrl]+[b] | 1画面上に移動     |                                        |
| [ctrl]+[y] | 1行上に移動       |                                        |
| [ctrl]+[f] | 1画面下に移動     |                                        |