devAlice
← Mac

Mac 上的 VS Code vs Cursor — 同步设置,双 IDE 并行运行

在 macOS 上同时运行 VS Code 和 Cursor,并通过单一真实来源管理设置/扩展/键位映射的实战配置。

VS Code 和 Cursor 均基于 VS Code OSS,因此 settings.json 约 90% 兼容,keybindings 100% 兼容。但如果放任不管,两者各自会产生散乱的配置。最简洁的模式是:VS Code 作为主控,Cursor 作为镜像

我认为双 IDE 并行的关键不在于功能对比,而在于配置主从关系的确立。以前两个 IDE 各自维护配置;如今通过 VS Code 主控加符号链接镜像,所谓的「单一真实来源」才能在两个工具上都成立,因为配置分裂只会带来维护负担。

本指南适用于 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-extension 的输出管道到 cursor --install-extension
  4. 键位:用 Cmd+K Cmd+S 在两个 IDE 上保持相同映射
  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 — 关键步骤

VS Code 左下角齿轮 → 备份与同步设置... → 用 GitHub 登录。

同步项目(全部勾选):

  • ✅ 设置
  • ✅ 键盘快捷方式
  • ✅ 扩展
  • ✅ 用户代码片段
  • ✅ UI 状态
  • ✅ 任务
  • ✅ 配置文件

完成后,新 Mac 约 5 分钟即可恢复完整环境 — 安装 VS Code,用同一 GitHub 账户登录,完成。

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 "✓ 已从 VS Code 同步到 Cursor"

设置可执行权限 + 别名:

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 使用 Open VSX,而非 VS Code 的扩展市场。部分 MS 专有扩展(C/C++、Remote-SSH)需要 Cursor 的 fork 版或替代品。失败的安装可以跳过。

3.3 未来安装策略

  • 与 AI 无关的扩展 → 安装到 VS Code → Settings Sync 自动处理 + 偶尔镜像到 Cursor
  • AI 相关(Cursor 自有 AI)→ 仅 Cursor,不镜像到 VS Code
  • 代码分析 / 重构 / 语言服务器 → 安装到 VS Code,镜像到 Cursor

4. 键位映射 — Mac 标准 + IDE 共享 + Cursor 专属

4.1 Mac 标准快捷键(两个 IDE 自动生效)

按键操作
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)
Tab接受 AI 补全

这些可能与 VS Code 默认键位冲突 — 保留为 Cursor 专属,重新映射 VS Code 的对应键位。


5. 推荐 settings.json 配置 — 两个 IDE 共享

最小改动,最大效益:

// 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 结对编程CursorComposer + Tab 补全
Notebook(.ipynb)VS Code最稳定的 Jupyter 集成
Remote-SSH / Dev ContainersVS Code稳定的官方扩展
大规模 LLM 驱动重构CursorComposer 多文件编辑
快速写作 / Markdown均可Cursor 增加 AI 审阅协同

推荐工作区拆分

  • VS Code 用于 ~/work — 公司项目
  • Cursor 用于 ~/personal — 个人项目 + AI 实验

每个 IDE 会自动重新打开上次的文件夹,上下文自然分离。


7. 故障排除

Settings Sync 冲突

两台机器同时推送时,会出现冲突提示。选择替换本地替换远端

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 种子扩展)