# VS Code クイックリファレンス

*ナビゲーション、編集、マルチカーソル、ターミナル、デバッグ、拡張機能*

> Source: VS Code Documentation (code.visualstudio.com/docs) · MIT

## ナビゲーション

### ファイルとシンボルのナビゲーション

| Command | Description |
|---------|-------------|
| `Ctrl+P` | ファイル名でクイックオープン |
| `Ctrl+Shift+P` | コマンドパレット |
| `Ctrl+Shift+O` | ファイル内のシンボルへ移動 |
| `Ctrl+T` | ワークスペース内のシンボルへ移動 |
| `Ctrl+G` | 行番号へ移動 |
| `F12` | 定義へ移動 |
| `Alt+F12` | 定義をピーク |
| `Shift+F12` | すべての参照を検索 |
| `Ctrl+Shift+\` | 対応する括弧へジャンプ |

### タブとエディタのナビゲーション

| Command | Description |
|---------|-------------|
| `Ctrl+Tab` | 開いているタブを順番に切り替え |
| `Ctrl+1 / 2 / 3` | エディタグループ 1 / 2 / 3 にフォーカス |
| `Ctrl+\` | エディタを分割 |
| `Ctrl+B` | サイドバーの表示切り替え |
| `Ctrl+J` | 下部パネルの表示切り替え |

## 編集

### 行操作

| Command | Description |
|---------|-------------|
| `Ctrl+Shift+K` | 行全体を削除 |
| `Alt+Up / Down` | 行を上 / 下に移動 |
| `Shift+Alt+Up / Down` | 行を上 / 下にコピー |
| `Ctrl+Enter` | 下に行を挿入 |
| `Ctrl+Shift+Enter` | 上に行を挿入 |
| `Ctrl+Shift+[` | リージョンを折りたたむ |
| `Ctrl+Shift+]` | リージョンを展開 |

### テキスト操作

| Command | Description |
|---------|-------------|
| `Ctrl+D` | 単語を選択（繰り返すと次のマッチを追加） |
| `Ctrl+Shift+L` | 選択のすべての出現箇所を選択 |
| `Ctrl+L` | 行全体を選択 |
| `Ctrl+/` | 行コメントを切り替え |
| `Shift+Alt+A` | ブロックコメントを切り替え |
| `Tab / Shift+Tab` | インデント / アンインデント |

## マルチカーソル

### カーソルの追加

| Command | Description |
|---------|-------------|
| `Alt+Click` | クリック位置にカーソルを追加 |
| `Ctrl+Alt+Up / Down` | 上 / 下にカーソルを追加 |
| `Ctrl+D` | 選択の次の出現箇所を追加 |
| `Ctrl+Shift+L` | すべての出現箇所にカーソルを追加 |
| `Ctrl+U` | 最後に追加したカーソルを元に戻す |
| `Esc` | マルチカーソルモードを終了 |

### マルチカーソルのワークフロー

```
// Select a word, then Ctrl+D to add matches
// Type replacement — all cursors update
// Ctrl+Shift+L selects ALL matches at once
// Alt+Click for arbitrary cursor placement
```

## ターミナル

### ターミナルのショートカット

| Command | Description |
|---------|-------------|
| `Ctrl+`` | 統合ターミナルの切り替え |
| `Ctrl+Shift+`` | 新しいターミナルを作成 |
| `Ctrl+Shift+5` | ターミナルを分割 |
| `Ctrl+PgUp / PgDn` | ターミナルを上 / 下にスクロール |
| `Ctrl+Shift+C` | ターミナルで選択をコピー |
| `Ctrl+Shift+V` | ターミナルに貼り付け |

### ターミナルの管理

| Command | Description |
|---------|-------------|
| `Ctrl+Shift+P → Terminal: Kill` | アクティブなターミナルを終了 |
| `Ctrl+Shift+P → Terminal: Rename` | ターミナルタブを名前変更 |
| `Terminal dropdown` | ターミナルを切り替え |
| `terminal.integrated.shell.*` | デフォルトシェルを変更する設定 |

## デバッグ

### デバッグコントロール

| Command | Description |
|---------|-------------|
| `F5` | デバッグ開始 / 続行 |
| `Shift+F5` | デバッグ停止 |
| `Ctrl+Shift+F5` | デバッグ再起動 |
| `F9` | ブレークポイントの切り替え |
| `F10` | ステップオーバー |
| `F11` | ステップイン |
| `Shift+F11` | ステップアウト |

### launch.json の例

```
{
  "type": "node",
  "request": "launch",
  "name": "Run App",
  "program": "${workspaceFolder}/app.js"
}
```

### デバッグ機能

| Command | Description |
|---------|-------------|
| `Watch panel` | デバッグ中に式を監視 |
| `Call Stack` | 実行コールスタックを表示 |
| `Debug Console` | ブレークポイントで式を評価 |
| `Conditional breakpoint` | ブレークポイントを右クリック → 条件を編集 |
| `Logpoint` | 実行を停止せずにメッセージをログ |

## 拡張機能

### 拡張機能の管理

| Command | Description |
|---------|-------------|
| `Ctrl+Shift+X` | 拡張機能ビューを開く |
| `@installed` | インストール済みの拡張機能でフィルター |
| `@enabled / @disabled` | 有効 / 無効でフィルター |
| `@recommended` | 推奨拡張機能を表示 |

### 必須拡張機能

| Command | Description |
|---------|-------------|
| `Prettier` | コードフォーマッター（JS、TS、CSS、HTML） |
| `ESLint` | JavaScript/TypeScript のリンティング |
| `GitLens` | 拡張 Git 統合とブレーム表示 |
| `Remote - SSH` | SSH 経由でリモートマシンで開発 |
| `Live Server` | ライブリロード付きローカル開発サーバー |
| `Thunder Client` | VS Code 内の REST API クライアント |

## 設定

### 設定へのアクセス

| Command | Description |
|---------|-------------|
| `Ctrl+,` | 設定 UI を開く |
| `Ctrl+Shift+P → settings.json` | 設定 JSON を開く |

### 一般的な設定（JSON）

```
{
  "editor.fontSize": 14,
  "editor.tabSize": 2,
  "editor.formatOnSave": true,
  "editor.wordWrap": "on",
  "files.autoSave": "afterDelay"
}
```

### ワークスペース vs ユーザー

| Command | Description |
|---------|-------------|
| `User settings` | グローバル、すべてのプロジェクトに適用 |
| `Workspace settings` | プロジェクトごと、.vscode/settings.json に保存 |
| `Workspace overrides User` | ワークスペース設定が優先 |

## キーボードショートカット

### カスタマイズ

| Command | Description |
|---------|-------------|
| `Ctrl+K Ctrl+S` | キーボードショートカットエディタを開く |
| `keybindings.json` | カスタムバインド用 JSON ファイル |

### 必須ショートカット

| Command | Description |
|---------|-------------|
| `Ctrl+Shift+P` | コマンドパレット（すべてにアクセス） |
| `Ctrl+P` | ファイルをクイックオープン |
| `Ctrl+Shift+F` | すべてのファイルを検索 |
| `Ctrl+H` | ファイル内で検索と置換 |
| `Ctrl+Shift+H` | ファイル全体で検索と置換 |
| `F2` | シンボルの名前変更 |
| `Ctrl+.` | クイックフィックス（コードアクション） |
| `Ctrl+Space` | IntelliSense のトリガー |
| `Ctrl+Shift+I` | ドキュメントをフォーマット |

## Git 統合

### ソースコントロールビュー

| Command | Description |
|---------|-------------|
| `Ctrl+Shift+G` | ソースコントロールパネルを開く |
| `+` | 変更をステージ（SCM ビュー内） |
| `-` | 変更をアンステージ |
| `Ctrl+Enter` | ステージ済みの変更をコミット |
| `...` | その他のアクション（プッシュ、プルなど） |

### インライン Git 機能

| Command | Description |
|---------|-------------|
| `Gutter indicators` | 追加/変更/削除に対する緑/青/赤のマーク |
| `Ctrl+Shift+P → Git: Checkout` | ブランチを切り替え |
| `Ctrl+Shift+P → Git: Pull` | リモートからプル |
| `Ctrl+Shift+P → Git: Push` | リモートへプッシュ |
| `Click gutter change` | 変更された行のインライン差分表示 |

### 差分とマージ

| Command | Description |
|---------|-------------|
| `SCM → Open Changes` | サイドバイサイド差分表示 |
| `Inline diff arrows` | 個別の変更を元に戻す |
| `3-way merge editor` | コンフリクトを視覚的に解決（1.69+） |

## よく使うパターン

### ワークスペース機能

| Command | Description |
|---------|-------------|
| `Ctrl+Shift+E` | ファイルエクスプローラーにフォーカス |
| `Ctrl+Shift+D` | デバッグビューにフォーカス |
| `Ctrl+Shift+M` | 問題パネルを表示 |
| `Ctrl+K Ctrl+T` | カラーテーマを変更 |
| `Ctrl+K Z` | Zen モードへ |

### スニペット

```
// File → Preferences → Configure Snippets
"Print": {
  "prefix": "log",
  "body": "console.log('$1');",
  "description": "Console log"
}
```

### タスク（tasks.json）

```
{
  "label": "build",
  "type": "shell",
  "command": "npm run build",
  "group": "build"
}
```
