開発効率を上げるVS Code/JetBrains IDE（PyCharm）のショートカット16選

## はじめに

VSCode/JetBrains IDE（PyCharm）でのコーディングにおいて、個人的によく使うショートカットを紹介します。
※ VS Codeのショートカット使用時のgifも一部添付しています。

## 紹介するショートカット一覧

| # | 動作 | VS Code ショートカット名 | VS Codeショートカットキー | Pycharm ショートカット名 | PyCharmショートカットキー |
| --- | --- | --- | --- | --- | --- |
| ① | 選択範囲拡大 | editor.action.smartSelect.expand | control + shift + → | Extend Selection | option + ↑ |
| ② | 選択範囲縮小 | editor.action.smartSelect.shrink | control + shift + ← | Shrink Selection | option + ↓ |
| ③ | 定義に移動 | Go to Definition | f12 | Go to Declaration or Usages | command + b |
| ④ | カーソル履歴移動（戻る） | Go Back | control + - | ← Back | option + command + ← |
| ⑤ | カーソル履歴移動（進む） | Go Forward | control + _ | → Forward | option + command + → |
| ⑥ | 文字列選択（1つずつ） | editor.action.addSelectionToNextFindMatch | command + d | Add Selection for Next Occurrence | control + g |
| ⑦ | 文字列選択（一括） | Select All Occurrences of Find Match | command + shift + l | Select All Occurrences | control + shift + g |
| ⑧ | リネーム | editor.action.rename | f2 | Rename | shift + f6 |
| ⑨ | ファイル検索 | Go to File | command + p | Go to File | shift + command + o |
| ⑩ | クイックフィックス | editor.action.quickFix | command + . | Show Quick-Fixes | option + return |
| ⑪ | 折りたたみ切替 | editor.toggleFold | command + k command + l | Fold Selection / Remove region | command + . |
| ⑫ | 行移動(上) | editor.action.moveLinesUpAction | option + ↑ | Move Line Up | option + shift + ↑ |
| ⑬ | 行移動(下) | editor.action.moveLinesDownAction | option + ↓ | Move Line Down | option + shift + ↓ |
| ⑭ | ターミナル表示切替 | workbench.action.terminal.toggleTerminal | control + shift + @ | Terminal | option + f12 |
| ⑮ | 単語削除 | deleteWordLeft | option + backspace | Delete to Word Start | option + backspace |
| ⑯ | 行削除 | editor.action.deleteLines | shift + command + k | Delete Line | command + backspace |

## 選択範囲の拡大/縮小 - ①②

| VS Code ショートカット名 | VS Code ショートカットキー | Pycharm ショートカット名 | PyCharm ショートカットキー |
| --- | --- | --- | --- |
| editor.action.smartSelect.expand | control + shift + → | Extend Selection | option + ↑ |
| editor.action.smartSelect.shrink | control + shift + ← | Shrink Selection | option + ↓ |

**開発中に使用するショートカットランキング個人的No.1**です。キー入力ごとに、選択範囲を拡大/縮小することができます。dictやlist、関数をコピーするとき等に便利です。

![expand_shrink.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685785/464eb00b-66fc-684b-600e-fdedd004e135.gif)

また、カーソルを単語に合わせた状態で、1回だけ拡大すると単語選択となるため、単語の書き換えやコピーをする際にも使えます。

![expand_name_change.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685785/a7e20dc6-fcb0-d891-be2f-58bb0f7151db.gif)

## 定義に移動 - ③

| VS Code ショートカット名 | VS Code ショートカットキー | Pycharm ショートカット名 | PyCharm ショートカットキー |
| --- | --- | --- | --- |
| Go to Definition | f12 | Go to Declaration or Usages | command + b |

変数や関数の定義に移動することができます。

![go_def.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685785/985f37b4-d920-0a74-186f-83f8e0fc580a.gif)

## カーソル履歴移動 - ④⑤

| VS Code ショートカット名 | VS Code ショートカットキー | Pycharm ショートカット名 | PyCharm ショートカットキー |
| --- | --- | --- | --- |
| Go Back | control + - | ← Back | option + command + ← |
| Go Forward | control + _ | → Forward | option + command + → |

カーソル位置の履歴を辿って移動ができます。前述の「定義に移動」を行ったあとに、移動前のカーソル位置に戻るためにこのコマンドを使用することが多いです。

![go_def_back_forward_back.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685785/2d9758ec-fef3-97ad-fa06-63cdc329da85.gif)

## 同じ文字列を選択 - ⑥⑦

| VS Code ショートカット名 | VS Code ショートカットキー | Pycharm ショートカット名 | PyCharm ショートカットキー |
| --- | --- | --- | --- |
| editor.action.addSelectionToNextFindMatch | command + d | Add Selection for Next Occurrence | control + g |
| Select All Occurrences of Find Match | command + shift + l | Select All Occurrences | control + shift + g |

ファイル内の同じ文字列を検索し、選択することができます。VS Codeの場合は「command + d」で順番に選択、「command + shift + l」で一括選択できます。「command + k」に続けて「command + d」で1つ選択をスキップすることもできます。

![word_select.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685785/b32cdbe2-1d36-1266-896b-56f113d34c42.gif)

## リネーム - ⑧

| VS Code ショートカット名 | VS Code ショートカットキー | Pycharm ショートカット名 | PyCharm ショートカットキー |
| --- | --- | --- | --- |
| editor.action.rename | f2 | rename | shift + f6 |

シンボル（変数や関数等）やファイル名をリネームすることができます。ファイル内だけでなく、他のファイルのシンボルも併せてリネームしてくれます。

![symbol_select.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685785/3755591a-88b8-751c-8fe0-e4bfc7f197e3.gif)

## ファイル検索 - ⑨

| VS Code ショートカット名 | VS Code ショートカットキー | Pycharm ショートカット名 | PyCharm ショートカットキー |
| --- | --- | --- | --- |
| Go to File | command + p | Go to File | shift + command + o |

開きたいファイルのファイル名がわかっているときは、ファイルの一覧からファイルをクリックして選択するよりも、このコマンドを使ったほうが素早く開けます。

![file_search.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685785/00bc98fa-a531-7e3d-1905-631cfe491443.gif)

## クイックフィックス - ⑩

| VS Code ショートカット名 | VS Code ショートカットキー | Pycharm ショートカット名 | PyCharm ショートカットキー |
| --- | --- | --- | --- |
| editor.action.quickFix | command + . | Show Quick-Fixes | option + return |

エラー箇所でこのコマンドを実行すると、エラーを修正するサジェストを表示してくれます。個人的には未importモジュールをimportするときによく使います。

![quick_fix.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685785/22451316-7d4e-e59b-cc37-3a562c8ef017.gif)

## 折りたたみ切替 - ⑪

| VS Code ショートカット名 | VS Code ショートカットキー | Pycharm ショートカット名 | PyCharm ショートカットキー |
| --- | --- | --- | --- |
| editor.toggleFold | command + K command + L | Fold Selection / Remove region | command + . |

listやdictを折りたたむことができます。要素数の多いdictやlistをこのコマンドで一時的に折りたたむと、コードの見通しが良くなります。

![toggle_fold.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685785/ab8626b0-b17a-417b-b42f-8292108e5746.gif)

## 行移動 - ⑫⑬

| VS Code ショートカット名 | VS Code ショートカットキー | Pycharm ショートカット名 | PyCharm ショートカットキー |
| --- | --- | --- | --- |
| editor.action.moveLinesUpAction | option + ↑ | Move Line Up | option + shift + ↑ |
| editor.action.moveLinesDownAction | option + ↓ | Move Line Down | option + shift + ↓ |

行を丸ごと移動させることができます。listやdictの要素の並び替えなどに使えます。

![move_line.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685785/c368853d-619b-a5b2-4f58-117afc96cbdd.gif)

範囲選択しながらだと複数行同時に移動できます。

![move_multi_line.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685785/60ec490c-8f3c-9963-0629-3947e670e086.gif)

## ターミナル表示切替 - ⑭

| VS Code ショートカット名 | VS Code ショートカットキー | Pycharm ショートカット名 | PyCharm ショートカットキー |
| --- | --- | --- | --- |
| workbench.action.terminal.toggleTerminal | control + shift + @ | Terminal | option + F12 |

エディタとターミナル間の移動は開発中に高頻度で行うと思います。ポインター操作＆クリックでフォーカスを切り替えるよりも、このコマンドを使ったほうが楽です。gifは割愛。

## 単語削除/行削除 - ⑮⑯

| VS Code ショートカット名 | VS Code ショートカットキー | Pycharm ショートカット名 | PyCharm ショートカットキー |
| --- | --- | --- | --- |
| deleteWordLeft | option + backspace | Delete to Word Start | option + backspace |
| editor.action.deleteLines | shift + command + K | Delete Line | command + backspace |

backspace連打よりもスマートに素早く文字列を削除できます。gifは割愛。

## おわりに

個人的にはPyCharmのショートカットの方が打ちやすいため、VS Codeには[JetBrains IDE Keymap](https://marketplace.visualstudio.com/items?itemName=isudox.vscode-jetbrains-keybindings)のExtensionをインストールしています。加えて、方向キー（↑↓←→）を使用するショートカットはホームポジションが崩れて打ちにくいため、方向キーを使用しないキー割当てをKarabiner Elementsで設定しています（[ホームポジションを絶対維持するためのKarabiner設定](https://qiita.com/shntaki/items/32a26a6dbbb155307e18)）。

もし使用したことのないショートカットがあったら使用してみてください。