エンジニアの皆さん、日々のコーディングにおいて「マウスに手を伸ばす時間」がどれほどのロスを生んでいるか、考えたことはあるでしょうか。
1回2秒のマウス操作も、1日に1000回繰り返せば約33分の損失です。1ヶ月で約11時間、1年で約130時間――つまり、ショートカットキーを習得していないだけで、年間で丸々半月分の業務時間を「ただの手の移動」に費やしている計算になります。逆に言えば、ショートカットキーをマスターすることは、エンジニアとしての寿命を延ばし、よりクリエイティブな課題解決に時間を割くための投資に他なりません。
開発現場に身を置く社畜エンジニアとして、現場で「手が止まらないエンジニア」と「マウスを探して手が止まるエンジニア」の違いを見てきました。その決定的な差は、キーボードショートカットの習得度にあります。
この記事では、単なるショートカットキーの一覧表を提供するのではなく、「なぜその操作が必要なのか」「どの文脈で使うと最速なのか」という実践的なノウハウと共に、VSCode(Visual Studio Code)のショートカットを徹底的に解説します。Windows/Mac両対応の操作方法から、IntelliJやVimからの乗り換えユーザー向けの設定、さらには「ショートカットが効かない」というトラブルシューティングまで、現場で直面するあらゆる課題を網羅しました 。
読み終える頃には、あなたのコーディングスタイルは劇的に変化し、マウスに触れる回数が激減していることを約束します。
第1章:生産性を加速させる「脱マウス」の哲学

1.1 認知負荷とコンテキストスイッチのコスト
プログラミングは高度な知的作業であり、脳のワーキングメモリをフル活用します。コードのロジックを組み立てている最中に、視線をエディタから外し、マウスカーソルを探し、アイコンをクリックするという一連の動作は、脳にとって微細な思考の切り替えを引き起こします。
ショートカットキーを使用することで、このスイッチングコストをゼロに近づけることができます。思考の速度と指先の入力速度が同期する状態、いわゆる「フロー状態」を維持するためには、キーボードから手を離さないことが絶対条件です。VSCodeはこの哲学に基づいて設計されており、ほぼ全ての操作をキーボードのみで完結させることが可能です 。
1.2 エディタ操作の「無意識化」を目指す
ショートカットキーの習得には段階があります。
- 意識的無能: ショートカットがあることは知っているが、使えない。
- 意識的有能: 考えながらショートカットを使える。
- 無意識的有能: 指が勝手に動く。
この記事のゴールは、皆さんを「無意識的有能」の領域へ導くことです。「行をコピーしたい」と思った瞬間に、脳を経由せず指が動くレベルに達して初めて、真の時短効果が得られます。これから紹介するテクニックは、一度にすべて覚える必要はありません。日々の業務の中で一つずつ取り入れ、指に覚え込ませていきましょう。
第2章:ナビゲーションの極意 – ファイルとコードの海を瞬時に渡る

大規模なプロジェクトになればなるほど、ファイルの移動や特定箇所の探索に時間がかかります。エクスプローラー(サイドバー)を目視でクリックしていく方法は、今日で卒業しましょう。
2.1 Quick Open(クイックオープン):ファイルへの瞬間移動
最も頻繁に使用し、かつ最も効果が高いショートカットが「Quick Open」です。

- Windows/Linux:
Ctrl + P - macOS:
Cmd + P
このコマンドを入力すると、画面上部に検索窓が表示されます。ここにファイル名の一部を入力するだけで、プロジェクト内のあらゆるファイルへ瞬時にジャンプできます。
実践的な活用法:あいまい検索(Fuzzy Search)

VSCodeの検索アルゴリズムは非常に強力です。例えば UserController.ts というファイルを開きたい場合、正確に User と打つ必要はありません。uscon や uctrl のように、ファイル名に含まれる文字を順番に打つだけで候補に上がります。
- 深い階層のファイル:
src/components/Button/PrimaryButton.tsxを開く場合、src primのようにディレクトリ名の一部とファイル名の一部をスペースで区切って入力すると、より精度高く絞り込めます 。
2.2 行へのジャンプ:デバッグ時の必須スキル

エラーログに Error at line 21 と表示された時、スクロールバーをドラッグしていませんか?
- Windows/Linux:
Ctrl + G - macOS:
Ctrl + G
このショートカットを押した後に行番号(例: 21)を入力してEnterを押すと、その行へ直接カーソルが移動します。Quick Open (Ctrl + P) の後に : を入力することでも同様の動作となります(例: Ctrl + P -> PrimaryButton.tsx:21)。
2.3 シンボルへの移動:構造を把握する

長いファイルの中で、特定のメソッドやクラス定義に飛びたい場合は「シンボル検索」が有効です。
- Windows/Linux:
Ctrl + Shift + O - macOS:
Cmd + Shift + O
ファイル内のクラス、メソッド、変数が一覧表示されます。@ に続けて文字を入力することでフィルタリングが可能です。さらに : を追加して @: とすると、シンボルが種類ごと(クラス、関数、変数など)にグループ化されて表示され、全体構造の把握に役立ちます 。
2.4 エディタグループの操作:画面分割を制する

広範な修正を行う際、画面を左右に分割してコードを見比べたい場面があります。マウスでタブをドラッグ&ドロップする操作は直感的ですが、キーボードだけで行う方が高速です。
- エディタを分割:
Ctrl + \(Win) /Cmd + \(Mac) - フォーカスの移動:
Ctrl + 1,Ctrl + 2… (Win/Mac) で、分割された1番目、2番目のグループへフォーカスを移動できます。 - エディタを閉じる:
Ctrl + W(Win) /Cmd + W(Mac)
これらの操作を組み合わせることで、マウスを使わずにタブの整理、参照、クローズを一瞬で行えるようになります 。
| アクション | Windows / Linux | macOS | コマンドID |
| Quick Open | Ctrl + P | Cmd + P | workbench.action.quickOpen |
| 行へ移動 | Ctrl + G | Ctrl + G | workbench.action.gotoLine |
| シンボルへ移動 | Ctrl + Shift + O | Cmd + Shift + O | workbench.action.gotoSymbol |
| エディタ分割 | Ctrl + \ | Cmd + \ | workbench.action.splitEditor |
| サイドバー開閉 | Ctrl + B | Cmd + B | workbench.action.toggleSidebarVisibility |
第3章:編集の魔術 – テキスト操作を最適化する

コーディングにおいて、文字を一文字ずつ打つ時間は実はそれほど長くありません。むしろ、「行を入れ替える」「行をコピーする」「不要な行を消す」といった構造的な編集作業が大半を占めます。
3.1 行の移動(Move Line):コピペ地獄からの解放
コードの順序を入れ替えたい時、「選択して切り取り、移動して貼り付け」という手順はあまりに非効率です。
- Windows/Linux:
Alt + ↑ / ↓ - macOS:
Opt + ↑ / ↓
このショートカットを使うと、カーソルがある行(または選択された複数行)がそのまま上下に移動します。コードのロジック順序を整理したり、CSSのプロパティ順を並び替えたりする際に、驚くほどの威力を発揮します 。
3.2 行の複製(Copy Line):テンプレート作成の加速
似たような処理を連続して書きたい場合、行の複製が便利です。
- Windows/Linux:
Shift + Alt + ↑ / ↓ - macOS:
Shift + Opt + ↑ / ↓
カーソル行をそのまま上、または下に複製します。Alt + ↑ / ↓(移動)と組み合わせることで、コードの量産と配置修正がキーボードのみで完結します 。
3.3 スマートな選択(Smart Selection):文脈を理解した範囲選択

マウスドラッグで正確に単語やカッコの中身だけを選択するのは、意外と神経を使います。VSCodeの「選択範囲の拡大/縮小」機能を使いましょう。
- 拡大 (Expand):
Shift + Alt + →(Win) /Ctrl + Shift + Cmd + →(Mac) - 縮小 (Shrink):
Shift + Alt + ←(Win) /Ctrl + Shift + Cmd + ←(Mac)(注: キー割り当てはバージョンや設定により異なる場合がありますが、デフォルトでは上記の傾向があります。)
この機能は、カーソル位置から「単語」→「引用符の中身」→「カッコの中身」→「行全体」→「親要素」といった具合に、コードの構文構造(AST)に従って選択範囲を段階的に広げてくれます。HTMLタグの中身だけを修正したい時や、特定のifブロック全体をコピーしたい時に非常に有効です 。
3.4 コメントアウトの切り替え

コードの一時的な無効化やメモ書きにはコメントアウトが必須です。
- 行コメント:
Ctrl + /(Win) /Cmd + /(Mac) - ブロックコメント:
Shift + Alt + A(Win) /Shift + Opt + A(Mac)
言語ごとにコメント記号(//, #, “)を使い分ける必要はありません。VSCodeがファイルタイプを判別し、適切な記号を挿入してくれます 。
第4章:マルチカーソルの衝撃 – 一人で10人分の働きをする

VSCodeの最大の特徴であり、一度使うと他のエディタに戻れなくなる機能が「マルチカーソル(複数選択)」です。これを使えば、単純な繰り返し作業を一瞬で終わらせることができます。
4.1 次の一致を選択(Add Selection to Next Find Match)
同じ変数名やクラス名を一括変更したい時、検索置換機能を使うまでもない場合があります。

- Windows/Linux:
Ctrl + D - macOS:
Cmd + D
修正したい単語にカーソルを置き、Ctrl + D を押すと、その単語が選択されます。もう一度押すと、次に登場する同じ単語も選択され、カーソルが2つになります。これを繰り返して必要な箇所だけを選択し、そのままタイプすれば、すべての箇所が同時に編集されます。 「あ、ここだけは変更したくない」という箇所があれば、Ctrl + K Ctrl + D (Win) / Cmd + K Cmd + D (Mac) でスキップすることも可能です 。
4.2 すべての出現箇所を選択(Select All Occurrences)
ファイル内の特定の単語を問答無用ですべて選択したい場合は、こちらを使います。

- Windows/Linux:
Ctrl + Shift + L - macOS:
Cmd + Shift + L
一瞬で数十、数百のカーソルが生成されます。例えば、CSSファイル内のすべての色の値を一括変更したり、ログファイルの特定のパターンを一斉に削除したりする際に絶大な効果を発揮します 。
4.3 矩形選択(Column/Box Selection):縦方向の支配者

CSVデータや、整然と並んだ配列定義など、縦方向に揃ったテキストを編集する際に便利です。
- キーボード操作:
Ctrl + Alt + ↑ / ↓(Win) /Cmd + Opt + ↑ / ↓(Mac) - マウス操作:
Shift + Alt(Win/Mac) を押しながらドラッグ or マウスホイールを押し込みながらドラッグ
カーソルが縦に伸びるように増えていきます。行頭に一括で文字を挿入したり、インデントの調整を一気に行ったりする際に重宝します。
トラブルシューティング:画面が回転してしまう場合(Windows)
Windowsユーザー、特にIntel製グラフィックス搭載PCを使用している場合、Ctrl + Alt + ↑ / ↓ を押すと画面が上下逆さまに回転してしまうという深刻なトラップが存在します 。
原因: Intel Graphics Command Centerなどのドライバユーティリティが、同じショートカットキーを「画面回転」に割り当てているため、VSCodeより先にシステム側で反応してしまいます。
解決策:
- デスクトップで右クリックし、「インテル グラフィックス・コマンド・センター」を開く。
- 「システム」タブ → 「ホットキー」を選択。
- 「システムのホットキーを有効にする」をオフにする、または「画面の回転」の割り当てを無効化する。
- これでVSCode側でショートカットが正常に動作するようになります 。
| アクション | Windows / Linux | macOS | コマンドID |
| 次の一致を選択 | Ctrl + D | Cmd + D | editor.action.addSelectionToNextFindMatch |
| 全出現箇所を選択 | Ctrl + Shift + L | Cmd + Shift + L | editor.action.selectHighlights |
| 矩形選択(キー) | Ctrl + Alt + ↑/↓ | Cmd + Opt + ↑/↓ | editor.action.insertCursorAbove/Below |
| 矩形選択(マウス) | Shift + Alt + Drag | Shift + Opt + Drag | N/A |
第5章:インテリジェンスとリファクタリング – コード品質を高める操作

VSCodeは単なるテキストエディタではなく、強力なIDE(統合開発環境)としての側面も持っています。Language Server Protocol (LSP) に基づく高度なコード解析機能を、キーボードから呼び出しましょう。
5.1 定義への移動(Go to Definition)とピーク(Peek)

他人が書いたコードやライブラリの挙動を理解するためには、定義元を確認することが不可欠です。
- 定義へ移動:
F12- その関数やクラスが定義されているファイルへジャンプします。
- 定義をここに表示 (Peek Definition):
Alt + F12(Win) /Opt + F12(Mac)- 画面を移動せず、現在の行の下にポップアップウィンドウ(インラインエディタ)を開いて定義を表示します。文脈を維持したまま中身を確認できるため、思考が分断されません 。
5.2 シンボルの名前変更(Rename Symbol):安全な一括置換

変数名や関数名を変更する際、単なる「検索して置換」は危険です。コメント内の同じ単語や、異なるスコープの同名変数を誤って書き換えてしまう可能性があるからです。
- ショートカット:
F2
カーソル位置のシンボルに対して F2 を押すと、VSCodeがそのシンボルのスコープ(有効範囲)を解析し、影響を受ける箇所だけを安全にリネームしてくれます。これはリファクタリングの基本中の基本であり、バグを防ぐための最重要ショートカットの一つです 。
5.3 クイックフィックス(Quick Fix):AIペアプログラミング

波線が表示されているエラー箇所や、改善の提案がある箇所で使います。
- Windows/Linux:
Ctrl +.(ドット) - macOS:
Cmd +.(ドット)
これを押すと、インポート文の自動追加、不要なコードの削除、インターフェースの実装メソッドの生成など、VSCodeが提案する修正アクションリストが表示されます。マウスで電球アイコンをクリックするよりも圧倒的に高速です 。
第6章:ターミナルとGit連携 – コンソールを行き来しない

現代の開発では、コマンドライン操作(CLI)が不可欠です。VSCodeにはターミナルが統合されており、ウィンドウを切り替えることなくコマンドを実行できます。
6.1 統合ターミナルの表示と切り替え
- ターミナルの表示/非表示:
Ctrl + `(バッククォート) (Win/Mac) - 新しいターミナルの作成:
Ctrl + Shift + `(Win/Mac)
コードを書いていて「あ、パッケージをインストールしなきゃ」と思った時、即座にターミナルを呼び出し、npm install などを実行して、またすぐにエディタに戻る。このシームレスな体験が生産性を高めます。
6.2 ソース管理(Git)の操作

Git操作もショートカットで完結させましょう。
- ソース管理パネルを開く:
Ctrl + Shift + G(Win) /Ctrl + Shift + G(Mac) - コミット: メッセージを入力して
Ctrl + Enter(Win) /Cmd + Enter(Mac)
また、コマンドパレット (Ctrl + Shift + P) から Git: Checkout や Git: Pull などを呼び出すことも可能です。慣れてくれば、GUIクライアントよりも速く操作できるようになります 。エクスプローラーは(Ctrl + Shift + E)で移動できます。
第7章:カスタマイズとトラブルシューティング – 自分だけの最強環境を作る

VSCodeのデフォルト設定は優秀ですが、完璧ではありません。自分の手の大きさ、使用しているキーボード、過去に使っていたエディタの癖に合わせてカスタマイズすることで、真の効率化が実現します。
7.1 キーバインドの変更方法
特定のコマンドに独自のキーを割り当てたい場合、以下の手順で行います。
- GUIで設定:
Ctrl + KCtrl + S(Win) /Cmd + KCmd + S(Mac) を押して「キーボードショートカット」画面を開きます。 - コマンドの検索: 変更したい機能を検索します(例:
word wrap)。 - キーの割り当て: 該当行の左側にある鉛筆アイコンをクリック(またはダブルクリック)し、割り当てたいキーコンビネーションを入力してEnterを押します 。
7.2 When句の編集による高度な設定

上級者は When句を編集することで、より細かな制御が可能です。これは「特定の条件下でのみショートカットを有効にする」設定です。
7.3 ショートカットの競合を解決する
「設定したはずなのに動かない」「別の機能が動いてしまう」という場合、競合が発生しています。
- キーボードショートカット画面 (
Ctrl + KCtrl + S) を開く。 - 右上のキーボード型のアイコン(キー入力の記録)をクリック 。
- 調査したいキー(例:
Ctrl + Shift + F)を押す。 - 現在そのキーに割り当てられている全てのコマンドが表示されます。
- 不要な割り当てを右クリックして「キーバインドの削除」を行うか、
when句を調整して競合を回避します 。
特にmacOSでは、OS標準のショートカット(Mission ControlやSpotlightなど)とVSCodeのショートカットが競合することが多々あります。その場合、macOS側の「システム設定 > キーボード > ショートカット」からOSの設定を変更するか、VSCode側のキーバインドを変更する必要があります 。
第8章:IntelliJやVimからの移行 – ストレスフリーな乗り換え術

長年使い込んだエディタの手癖は、そう簡単に矯正できるものではありません。VSCodeへの移行をためらう最大の理由が「キー操作の違い」ですが、VSCodeにはこれを解決する強力なエコシステムがあります。
8.1 Keymap拡張機能の導入
VSCodeには、他のエディタのキーバインドを再現する「Keymap拡張機能」が公式・コミュニティから提供されています。これらをインストールするだけで、慣れ親しんだ操作感をVSCode上で再現できます 。
| 元のエディタ | 推奨拡張機能 | 拡張機能ID | 特徴 |
| IntelliJ IDEA | IntelliJ IDEA Keybindings | k--kato.intellij-idea-keybindings | JetBrains系IDEの操作を再現。Shift+Shift (Search Everywhere) などもサポート 。 |
| Vim | Vim | vscodevim.vim | VSCode内にVimエミュレーションを導入。Normal/Insertモード、マクロ、:s 置換などが動作 。 |
| Sublime Text | Sublime Text Keymap | ms-vscode.sublime-keybindings | マルチカーソルやコマンドパレットの操作感をSublime風に変更。 |
8.2 IntelliJユーザー向け:CamelHumpsの設定
IntelliJユーザーが特に違和感を覚えるのが、キャメルケース(例: userProfileController)の単語移動です。IntelliJでは Ctrl + → で user -> Profile -> Controller と単語の区切りごとに移動できますが(CamelHumps)、VSCodeのデフォルトでは一気に末尾まで飛んでしまいます。
これを再現するには、IntelliJ IDEA Keybindings 拡張機能を導入した上で、設定で以下を有効にします。
- 設定項目:
intellij-idea-keybindings.useCamelHumpsWords - 値:
true
これにより、キャメルケースの山(Hump)ごとの移動が可能になり、IntelliJ時代の快適な操作感が戻ってきます 。
8.3 Vimユーザー向け:.vimrcの活用
VSCodeVim 拡張機能は、実験的機能として .vimrc の読み込みをサポートしています。
"vim.vimrc.enable": true"vim.vimrc.path": "~/.vimrc"
これにより、使い慣れたVimのキーマッピングや設定の一部をVSCodeに持ち込むことが可能です。ただし、すべてのVimプラグインが動くわけではない点に注意が必要です 。
よくある質問(FAQ)
Q1. ショートカットが多すぎて覚えられません。効率的な覚え方は?
A. 「必要に迫られた時」が覚えるチャンスです。一度に全部覚える必要はありません。
おすすめの方法は、「マウスを使って面倒だな」と感じた操作を1日1つだけピックアップし、そのショートカットを付箋に書いてモニターの端に貼っておくことです。そして、その操作をする時は必ずショートカットを使うように意識します。3日もすれば手癖になり、付箋を剥がせます。まずは Ctrl + P(ファイル検索)と Ctrl + Shift + P(コマンドパレット)の2つから始めましょう。
Q2. 英語キーボード(US配列)と日本語キーボード(JIS配列)で操作は違いますか?
A. はい、一部の記号キーに関連するショートカットが異なります。
例えば、「ターミナルの表示」はUS配列では Ctrl + ` ですが、JIS配列ではキーの配置が異なるため、Ctrl + @ などに割り当てられている場合があります。ショートカット一覧を見る際は、自分のキーボード配列に合った情報を参照するか、コマンドパレットでコマンド名を検索して、右側に表示されるキーを確認するのが確実です。
Q3. MacのTouch Bar搭載モデルを使っていますが、ファンクションキー(F1-F12)が押しづらいです。
A. キーバインドを変更するか、Touch Barの設定を見直しましょう。 F12(定義へ移動)や F2(リネーム)は頻繁に使いますが、Touch Barでは直感的ではありません。VSCodeの設定でこれらの機能を Cmd + 任意のキー に変更するのが一つの手です。また、macOSのシステム設定で、VSCode起動時のみTouch Barに常にファンクションキーを表示するように設定することも可能です 。
まとめ:ショートカットは一生モノの資産
この記事では、VSCodeのショートカットキーについて、基本操作から高度なカスタマイズ、トラブルシューティングまで網羅的に解説してきました。
ここで紹介したテクニックを全て習得した時、あなたのコーディング速度は確実に今の倍以上になっているはずです。しかし、最も重要なのは「速度」そのものではありません。操作のストレスから解放され、純粋にロジックやアーキテクチャの思考に没頭できる「質」の高い時間を手に入れることこそが、ショートカット習得の真の価値です。
本記事の要点(Checklist)
- [ ] Quick Open (
Ctrl/Cmd+P) でファイルツリー操作から卒業する。 - [ ] マルチカーソル (
Ctrl/Cmd+D) で繰り返し作業を自動化する。 - [ ] 行操作 (
Alt/Opt+↑↓) でコピペを使わずにコードを整形する。 - [ ] 定義ジャンプ (
F12) と リネーム (F2) でコードリーディングと改修を安全に行う。 - [ ] Keymap拡張機能 を活用し、過去の経験を無駄にしない。
参考サイト
VSCodeのショートカット一覧:https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf
VSCodeのコマンドパレット編集:https://code.visualstudio.com/docs/configure/keybindings
IntelliJ:https://marketplace.visualstudio.com/items?itemName=k–kato.intellij-idea-keybindings
Vimの拡張機能:https://marketplace.visualstudio.com/items?itemName=vscodevim.vim


コメント