Mac での VS Code vs Cursor — 設定を同期して両方を使いこなす
macOS 上で VS Code と Cursor を並行稼働しながら、設定・拡張機能・キーマップを 1 つの情報源で管理する実践的セットアップ。
VS Code と Cursor はどちらも VS Code OSS ベースのため、settings.json は約 90% 互換で、keybindings.json は 100% 互換だ。放置すると、それぞれが独自の設定を持って乖離していく。最もクリーンなパターンは VS Code をマスター、Cursor をミラーとして扱うことだ。
このガイドは macOS 14 以降 / VS Code 1.95 以降 / Cursor 0.45 以降 を対象とする。Mac 初期セットアップ の後に 30 分で両方の IDE をクリーンに動かすためのセットアップだ。
TL;DR
- VS Code = Settings Sync(GitHub アカウント) でクラウド同期 — マスター
- Cursor は シンボリックリンクまたはコピースクリプト で VS Code の
settings.json/keybindings.jsonをミラー - 拡張機能:
code --install-extensionをcursor --install-extensionにパイプ - キーバインディング:
Cmd+K Cmd+Sで両方を同じマップに保てる - Cursor 専用の AI バインディングだけは Cursor のみに残す(例:
Cmd+Lチャット、Cmd+Kインライン編集)
前提条件
- macOS 14 以降、Homebrew インストール済み — Mac 初期セットアップ
- GitHub アカウント(VS Code Settings Sync 用)
1. VS Code をインストール+Settings Sync を有効化 — 10 分
1.1 インストール
brew install --cask visual-studio-codePATH に code CLI を登録する(VS Code を開いて Cmd+Shift+P → 「Shell Command: Install 'code' command in PATH」)。
1.2 Settings Sync を ON にする — 重要なステップ
VS Code 左下の歯車 → 「バックアップと設定の同期...」 → GitHub でサインイン。
同期項目(すべてチェック):
- ✅ 設定
- ✅ キーボードショートカット
- ✅ 拡張機能
- ✅ ユーザースニペット
- ✅ UI の状態
- ✅ タスク
- ✅ プロファイル
これで新しい Mac でも、VS Code をインストールして同じ GitHub アカウントでサインインするだけで約 5 分で環境が復元される。
1.3 macOS の設定パス
~/Library/Application Support/Code/User/
├── settings.json # マスター設定
├── keybindings.json # マスターキーバインディング
└── snippets/ # ユーザースニペット
Cursor はこれらのパスをミラーする。
2. Cursor をインストール+マスターをミラーする — 10 分
2.1 インストール
brew install --cask cursorcursor CLI を登録(Cursor を開いて Cmd+Shift+P → 「Shell Command: Install 'cursor' command in PATH」)。
2.2 Cursor の設定パス
~/Library/Application Support/Cursor/User/
├── settings.json
├── keybindings.json
└── snippets/
VS Code と同じ JSON 形式のため、同期しやすい。
2.3 オプション A — シンボリックリンク(最もクリーン)
VS Code の設定を Cursor にミラー。どちら側で編集しても即座に反映される。
# Cursor を終了した状態で
cd "$HOME/Library/Application Support/Cursor/User"
# 既存ファイルをバックアップ
[ -f settings.json ] && mv settings.json settings.json.bak
[ -f keybindings.json ] && mv keybindings.json keybindings.json.bak
[ -d snippets ] && mv snippets snippets.bak
# VS Code 設定へのシンボリックリンク
ln -s "$HOME/Library/Application Support/Code/User/settings.json" settings.json
ln -s "$HOME/Library/Application Support/Code/User/keybindings.json" keybindings.json
ln -s "$HOME/Library/Application Support/Code/User/snippets" snippets⚠️ 注意: Settings Sync が VS Code のファイルを書き換えると、inode が変わってシンボリックリンクが切れることがある。その場合は
ln -sを再実行するか、オプション B に切り替える。
2.4 オプション B — コピースクリプト(より安定)
リンクの代わりに、ときどき同期コマンドを実行する。
# ~/bin/sync-cursor-from-vscode.sh
#!/usr/bin/env bash
set -euo pipefail
SRC="$HOME/Library/Application Support/Code/User"
DST="$HOME/Library/Application Support/Cursor/User"
mkdir -p "$DST"
cp "$SRC/settings.json" "$DST/settings.json"
cp "$SRC/keybindings.json" "$DST/keybindings.json"
rsync -a --delete "$SRC/snippets/" "$DST/snippets/"
echo "✓ Cursor を VS Code からの設定で同期しました"実行可能にして+エイリアスを設定:
chmod +x ~/bin/sync-cursor-from-vscode.sh
echo 'alias sync-cursor=~/bin/sync-cursor-from-vscode.sh' >> ~/.zshrc設定変更後に sync-cursor を実行。(launchd で毎日スケジュールする — このガイドの範囲外。)
3. 拡張機能を同期する — 5 分
VS Code は Settings Sync で自動化される。Cursor は初回のみミラーリングが必要だ。
3.1 VS Code 拡張機能をエクスポート
code --list-extensions > ~/code-extensions.txt3.2 Cursor に一括インストール
cat ~/code-extensions.txt | xargs -n1 cursor --install-extension⚠️ Cursor は VS Code マーケットプレイスではなく Open VSX を使う。一部の Microsoft 独自拡張機能(C/C++、Remote-SSH など)は Cursor のフォーク版または代替が必要になる。インストール失敗はスキップして構わない。
3.3 今後のインストールポリシー
- AI 非依存の拡張機能 → VS Code にインストール → Settings Sync 自動+Cursor への定期ミラー
- AI 関連(Cursor 独自の AI)→ Cursor のみ、VS Code へのミラーなし
- コード解析・リファクタリング・言語サーバー → VS Code にインストールし、Cursor にミラー
4. キーバインディング — Mac 標準+IDE 共通+Cursor 専用
4.1 Mac 標準ショートカット(両方で自動的に動作)
| キー | 操作 |
|---|---|
Cmd+P | ファイルクイックオープン |
Cmd+Shift+P | コマンドパレット |
Cmd+B | サイドバーの切り替え |
Cmd+J | パネルの切り替え(ターミナル) |
Cmd+T | シンボルのクイックオープン |
Cmd+\ | エディターを分割 |
Cmd+/ | 行コメントの切り替え |
4.2 追加推奨 — keybindings.json
// keybindings.json
[
// 新規ターミナル
{
"key": "cmd+shift+t",
"command": "workbench.action.terminal.new",
"when": "terminalProcessSupported"
},
// サイドバーフォーカス: エクスプローラー
{
"key": "cmd+1",
"command": "workbench.view.explorer"
},
// サイドバーフォーカス: 検索
{
"key": "cmd+2",
"command": "workbench.view.search"
},
// サイドバーフォーカス: git
{
"key": "cmd+3",
"command": "workbench.view.scm"
},
// 次・前タブ
{ "key": "cmd+alt+right", "command": "workbench.action.nextEditor" },
{ "key": "cmd+alt+left", "command": "workbench.action.previousEditor" }
]4.3 Cursor 専用キー(そのまま残す)
| キー | Cursor の操作 |
|---|---|
Cmd+K | インライン AI 編集 |
Cmd+L | AI チャットパネル |
Cmd+I | ワークスペースチャット(Composer) |
Tab | AI 補完を承認 |
VS Code のデフォルトと競合する場合がある — Cursor 専用にしておき、VS Code 側の割り当てを変更する。
5. 推奨 settings.json キー — 両方で共通
最小の変更で最大の効果:
// settings.json
{
// エディター
"editor.fontFamily": "'JetBrains Mono', 'D2Coding', monospace",
"editor.fontSize": 14,
"editor.fontLigatures": true,
"editor.lineHeight": 1.6,
"editor.tabSize": 2,
"editor.detectIndentation": true,
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit",
"source.fixAll.eslint": "explicit"
},
"editor.bracketPairColorization.enabled": true,
"editor.guides.bracketPairs": "active",
"editor.minimap.enabled": false,
// ファイル
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"files.eol": "\n",
"files.exclude": {
"**/.DS_Store": true,
"**/.git": false,
"**/node_modules": true
},
// ワークベンチ
"workbench.editor.enablePreview": false,
"workbench.startupEditor": "none",
// ターミナル
"terminal.integrated.fontFamily": "'JetBrains Mono', monospace",
"terminal.integrated.fontSize": 13,
"terminal.integrated.defaultProfile.osx": "zsh"
}フォントのインストール: brew install --cask font-jetbrains-mono。
6. 実践的なワークフロー — どちらの IDE を何に使うか
| タスク | IDE | 理由 |
|---|---|---|
| 日常的なコーディング | VS Code | AI なしでも軽量で安定 |
| AI ペアプログラミング | Cursor | Composer+Tab 補完 |
ノートブック(.ipynb) | VS Code | 最も安定した Jupyter 連携 |
| Remote-SSH / Dev Containers | VS Code | 公式拡張機能が安定 |
| 大規模な LLM 駆動リファクタリング | Cursor | Composer のマルチファイル編集 |
| 執筆 / Markdown | どちらでも | Cursor は AI レビューとの相乗効果あり |
ワークスペース分割を推奨する:
~/work— 仕事プロジェクトは VS Code~/personal— 個人プロジェクト+AI 実験は Cursor
各 IDE は最後に開いたフォルダを自動的に再開するため、コンテキストが自然に分離される。
7. トラブルシューティング
Settings Sync の競合
2 つのマシンが同時にプッシュすると競合プロンプトが表示される。「ローカルで置き換え」 または 「リモートで置き換え」 を選ぶ。
Cursor が settings.json を上書きする
オプション A 使用中、Cursor のアップデートでシンボリックリンクが壊れることがある。ln -s を再実行する。頻繁に起きる場合はオプション B に切り替える。
cursor CLI が見つからない
Cursor を開いて Cmd+Shift+P → 「Shell Command: Install 'cursor' command in PATH」 → 新しいターミナル。
一部の拡張機能が Cursor にインストールできない
Open VSX にない。代替を探す(Open VSX で検索)か、その機能は VS Code のみで使う。
次のステップ
- Mac 初期セットアップ — Homebrew、SSH、gh
- Mac 開発ツールチェーン(mise) — Node/Python/Go のバージョン管理
- Claude Code セットアップ — ターミナルネイティブの AI ペア
- Cursor セットアップ詳細 — Cursor ルール、MCP、Composer パターン
参考リンク
- VS Code Settings Sync
- Open VSX Registry — Cursor のマーケットプレイス
- Cursor Docs
更新履歴
- 2026-05-12 — 初稿(devAlice M2 シード展開)