devAlice
← Mac

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

  1. VS Code = Settings Sync(GitHub アカウント) でクラウド同期 — マスター
  2. Cursor は シンボリックリンクまたはコピースクリプト で VS Code の settings.json / keybindings.json をミラー
  3. 拡張機能: code --install-extensioncursor --install-extension にパイプ
  4. キーバインディング: Cmd+K Cmd+S で両方を同じマップに保てる
  5. 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-code

PATH に 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 cursor

cursor 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.txt

3.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+LAI チャットパネル
Cmd+Iワークスペースチャット(Composer)
TabAI 補完を承認

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 CodeAI なしでも軽量で安定
AI ペアプログラミングCursorComposer+Tab 補完
ノートブック(.ipynbVS Code最も安定した Jupyter 連携
Remote-SSH / Dev ContainersVS Code公式拡張機能が安定
大規模な LLM 駆動リファクタリングCursorComposer のマルチファイル編集
執筆 / 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 のみで使う。


次のステップ

参考リンク

更新履歴

  • 2026-05-12 — 初稿(devAlice M2 シード展開)