ぱんだツールズぱんだツールズ

技術背景

VS Codeショートカット厳選ガイド — マルチカーソル・検索・移動で爆速に

約7分

「行を複製しようとして⌘ + Dを押したら、複製されずに同じ単語が選択されてしまった」—— JetBrains系IDE(Integrated Development Environment・統合開発環境)からVS Codeに乗り換えた人が 必ずと言っていいほど経験するつまずきです。 あるいは、マウスで1行ずつドラッグして選択し、削除キーを何度も押して行を消している人も少なくありません。 VS Codeには数百のショートカットが存在しますが、実務の体感速度を大きく変えるのはそのうちのごく一部です。 この記事ではコマンドパレット・行操作・マルチカーソル・検索置換・画面分割の5つに絞って 必修ショートカットを整理し、Windows/Mac両方の表記とVim・JetBrainsからの乗り換え時の注意点もあわせて紹介します。

1. まず覚える基本 — コマンドパレット・クイックオープン

すべての操作の起点になるのがこの2つです。ファイル名やコマンド名を覚えていなくても、 キーワードの一部を入力するだけで目的の操作にたどり着けます。

操作MacWindows用途
コマンドパレット⌘ + ⇧ + PCtrl + Shift + Pすべての機能をキーワードで検索・実行
クイックオープン(ファイル検索)⌘ + PCtrl + Pファイル名の一部でファイルを開く
ファイル内シンボル検索⌘ + ⇧ + OCtrl + Shift + O関数・クラス名でファイル内を検索

コマンドパレットはVS Codeの全機能への入り口です。メニューを何階層も辿るより、 Cmd+Shift+Pを押して機能名の一部を打つ方が確実に速く、ショートカットが割り当てられていない コマンド(ミニマップの表示切り替えなど)を実行するときにも使えます。

2. 行操作で編集速度を上げる

マウスでドラッグして選択・削除・移動する作業は、慣れると本当に不要になります。 以下の5つはコーディング中に最も頻繁に使う行操作です。

やりたいことMacWindows
行を複製(下に)⌥ + ⇧ + ↓Alt + Shift + ↓
行を複製(上に)⌥ + ⇧ + ↑Alt + Shift + ↑
行を上下に移動⌥ + ↑ / ↓Alt + ↑ / ↓
行を削除⌘ + ⇧ + KCtrl + Shift + K
行をコピー(選択なしで現在行)⌘ + CCtrl + C

特に行の複製と移動は、似た処理を1行下・1行上に増やしたいときに効果を発揮します。 マウス操作だと「選択→コピー→カーソル移動→貼り付け」の4手順が必要な作業を、 キーひとつで済ませられます。

3. マルチカーソルで同時編集する

複数箇所にカーソルを置いて同時に編集できるのがVS Codeの強力な機能です。 変数名の一括変更や、揃った形式のテキストを一気に書き換えるときに活躍します。

やりたいことMacWindows
同じ単語を選択し、押すたびに次の一致も追加選択⌘ + DCtrl + D
同じ単語をすべて一括選択⌘ + ⇧ + LCtrl + Shift + L
上/下の行にカーソルを追加⌘ + ⌥ + ↑ / ↓Ctrl + Alt + ↑ / ↓
矩形選択(列選択)⌥ + ⇧ + ドラッグAlt + Shift + ドラッグ

⌘ + D(WindowsはCtrl + D)は 同じ変数名を数か所だけ書き換えたいときに便利です。リネーム機能(F2)を使うほどではない 一時的な書き換えや、コメントアウトされたコードを含めて変更したい場合など、 F2の一括リネームより細かく対象を選びたいときに使います。

矩形選択は、コピーしてきたCSV風のテキストや揃った桁のログの一部だけを縦に切り出したいときに便利です。 マウスドラッグの代わりに、選択後カーソルキーの上下でも矩形範囲を伸ばせます。

4. 検索・置換を使いこなす

ファイル内・プロジェクト全体という2つのスコープと、正規表現モードの組み合わせを理解しておくと、 大規模な書き換えも一気に片付けられます。

やりたいことMacWindows
ファイル内検索⌘ + FCtrl + F
ファイル内置換⌘ + ⌥ + FCtrl + H
プロジェクト全体検索⌘ + ⇧ + FCtrl + Shift + F
プロジェクト全体置換⌘ + ⇧ + HCtrl + Shift + H
正規表現モードの切り替え(検索バー内)⌘ + ⌥ + RAlt + R

ファイル内置換だけはMacとWindowsでキーの傾向が異なり、Macは⌘ + ⌥ + F、 WindowsはCtrl + Hという覚え方の異なるキーが割り当てられています。他の操作のような単純な 「⌘→Ctrl、⌥→Alt」の読み替えが通用しない数少ない例なので、意識して覚えておくと迷いません。

検索バーの正規表現モードをオンにしてプロジェクト全体置換を行うと、書き方次第で 意図しない範囲まで一致して書き換わってしまうリスクがあります。パターンに自信がない場合は、正規表現テスターで実際にマッチする範囲を事前に確認してから置換を実行すると安全です。 入力したテキストがサーバーに送信されることもなく、ブラウザ内だけで動作を確かめられます。

5. エディタ分割・タブ移動で画面を整理する

複数ファイルを見比べながら作業するときは、タブの切り替えとエディタ分割を組み合わせると効率が上がります。

やりたいことMacWindows
エディタを右に分割⌘ + \Ctrl + \
次のタブに切り替え⌘ + ⌥ + →Ctrl + PageDown
前のタブに切り替え⌘ + ⌥ + ←Ctrl + PageUp
サイドバーの表示/非表示⌘ + BCtrl + B
統合ターミナルの表示/非表示⌃ + `Ctrl + `

エディタ分割は、実装ファイルとテストファイルを並べて見比べたいときや、 設定ファイルを参照しながら別のファイルを編集したいときに特に有効です。 サイドバーとターミナルを必要なときだけ表示する習慣をつけると、 画面が狭いノートPCでもコード領域を広く保てます。

6. Vim・JetBrainsから乗り換えた人がハマりやすい罠

他のエディタから移ってきた人は、体に染みついたキー操作とVS Codeの割り当てが食い違って 誤動作しがちです。代表的な4つの罠を整理します。

操作JetBrains / Vim での操作感VS Codeでの実際の動作
⌘ + DJetBrains: 現在行を複製同じ単語を順次選択(行複製は⌥+⇧+↓)
選択範囲の拡張JetBrains: ⌃+Wで単語→式→行→ブロックと段階的に拡張⌘+⇧+⌃+→でSmart Select(拡張の粒度はやや異なる)
やり直し(Redo)Vim: Ctrl + R(他のエディタとは大きく異なる)⌘ + ⇧ + Z(Windowsは Ctrl + Shift + Z)
矩形選択・複数行同時入力Vim: Ctrl + Vでビジュアルブロックモードに入り、Iで各行先頭に入力⌥+⇧+ドラッグで矩形選択、通常のマルチカーソルで同時入力

特に⌘ + Dの意味の違いは影響範囲が大きく、慣れるまでは無意識に押して事故を起こしやすい操作です。 どうしてもVimのキーバインドを手放したくない場合は、VS Code拡張機能のVimエミュレーター (VSCodeVimなど)を導入すれば、モード切り替えやddyyといった主要な操作をVS Code上でもそのまま再現できます。

自分の使うエディタ・IDEごとの対応キーをまとめて確認したい場合は、エディタ キーボードショートカット横断検索でVS Code・JetBrains・Vim・Cursorのキーを「やりたいこと」から並べて比較できます。

まとめ

  • 迷ったらまずコマンドパレット(Cmd+Shift+P / Ctrl+Shift+P)を開けば大抵の操作にたどり着ける
  • 行複製・行移動・行削除を覚えるだけでマウス操作の大半が不要になる
  • マルチカーソル(⌘+D系)は変数名の部分的な書き換えに強い。全置換したいなら⌘+⇧+Lか置換機能を使う
  • 正規表現を使った一括置換は影響範囲が大きいので、実行前にプレビューか正規表現テスターで確認する
  • JetBrainsからの乗り換えは⌘+D(行複製 vs 単語選択)の意味の違いに要注意
  • OSをまたぐ場合は⌘→Ctrl・⌥→Altの読み替えが基本だが、ファイル内置換など例外もある
  • より多くのキーやエディタ間の比較を確認したいときはエディタ キーボードショートカット横断検索、OS標準のショートカットとの違いを確認したいときはOSショートカットキー横断検索が便利

よくある質問

VS CodeとJetBrains系IDE(IntelliJ・WebStormなど)で、⌘+D(Ctrl+D)の動作はどう違いますか?

ここが乗り換え組の最大のつまずきポイントです。JetBrains系IDEでは⌘+D(Windows/LinuxはCtrl+D)は「現在行を複製」する操作です。一方VS Codeでは同じキーが「カーソル位置の単語を選択し、押すたびに次の同じ単語も選択範囲に追加する」操作(Add Next Occurrence)に割り当てられています。JetBrainsの感覚のままVS Codeで⌘+Dを押すと、行が複製されず単語だけが選択されて戸惑うことになります。VS Codeで行を複製したい場合はMacで⌥+⇧+↓(下に複製)または⌥+⇧+↑(上に複製)、WindowsはAlt+Shift+↓/Alt+Shift+↑を使います。

コマンドパレットとは何ですか?

コマンドパレットは、VS Codeが持つほぼすべての機能をキーワード検索して実行できる入力ボックスです。MacはCmd+Shift+P、WindowsはCtrl+Shift+Pで開きます。メニューの奥深くにある設定や、ショートカットが割り当てられていないコマンド(ミニマップの表示切り替えなど)も、コマンドパレットに機能名の一部を入力するだけで見つけて実行できます。メニュー階層を辿るよりコマンドパレットで検索する方が速いため、迷ったらまずCmd+Shift+Pを押す習慣をつけると操作全体が速くなります。

マルチカーソルで複数箇所を選択したあと、通常のカーソルに戻すにはどうすればいいですか?

Escキーを1回押すと、追加したカーソルがすべて解除されて通常の単一カーソルに戻ります。マルチカーソル状態のまま保存やビルドコマンドを実行しても動作自体に支障はありませんが、次に矢印キーやクリックで移動しようとしたときに意図しない箇所にカーソルが残っていると誤入力の原因になります。複数箇所の編集が終わったら、次の操作に移る前にEscで解除する癖をつけておくと安全です。

正規表現を有効にしたままファイル内置換を実行すると何が起こりますか?

検索バーの正規表現モード(Mac: Cmd+Option+R / Windows: Alt+R)がオンのまま通常の文字列のつもりで置換パターンを入力すると危険です。`.`や`(`のような正規表現の特殊文字がそのまま構文として解釈され、意図しない範囲まで一致してしまうことがあります。特にプロジェクト全体置換(Cmd+Shift+H / Ctrl+Shift+H)は変更範囲が広く、誤ったパターンで実行すると多数のファイルが一括で書き換わってしまいます。実行前にプレビュー欄で置換対象を必ず確認し、パターンに自信がなければ先に正規表現テスターで挙動を確かめてから使うと安全です。

Vimのキーバインドに慣れている場合、VS Codeでも同じ操作性を維持できますか?

ある程度は可能です。VS Code標準の操作はVimの操作体系(モード切り替え・hjklでの移動など)とは根本的に異なります。ただしVim拡張機能(VSCodeVimなど)を導入すれば、ノーマルモード・ビジュアルモード・`dd`や`yy`といった主要なVimキーバインドをVS Code上でそのまま使えます。拡張機能はVS Code標準のショートカット(Cmd+Dでの単語選択など)と一部競合することがあるため、導入直後はキーバインド設定画面(Cmd+K → Cmd+S)で競合がないか確認しておくと安心です。

Windows版でMacと同じショートカットを使う場合、キーの対応関係はどう読み替えればいいですか?

基本的にはMacの⌘(Command)がWindowsのCtrlに、Macの⌥(Option)がWindowsのAltに対応します。⇧(Shift)と矢印キーはOSを問わず共通です。多くの操作はこの単純な読み替えで対応しますが、一部は例外があります。たとえばファイル内置換はMacがCmd+Option+Fである一方、WindowsはCtrl+Hという全く異なるキーが割り当てられています。読み替えが通用しない操作もあるため、本記事の表ではMac表記とWindows表記を必ず併記しています。

行操作のショートカット(行複製・行移動など)を押しても反応しない場合、何を確認すればいいですか?

まずエディタ内にカーソルフォーカスがあるかを確認してください。パネルやサイドバーにフォーカスがある状態では、エディタ用のショートカットは動作しません。次に、他の拡張機能(IME関連や一部のVim拡張など)が同じキーの組み合わせを上書きしていないかを、キーボードショートカット設定画面(Cmd+K → Cmd+S、またはCtrl+K → Ctrl+S)の検索ボックスに対象のキーを入力して確認します。競合しているコマンドが表示された場合は、どちらか一方のキー割り当てを変更すれば解消できます。

このサイトでショートカットを検索した内容はサーバーに送信されますか?

ぱんだツールズのエディタ キーボードショートカット横断検索は、キーワード入力や絞り込みの処理も含めてすべてブラウザ内のJavaScriptだけで完結します。何を検索したか、どのショートカットを調べたかがサーバーに送信されることはないため、業務ツールの選定作業中などでも気兼ねなく利用できます。

この記事で紹介したツール