Mac에서 VS Code vs Cursor — 동시 사용 + 설정 동기화
맥에서 VS Code와 Cursor를 둘 다 쓰면서 settings/extensions/keymap을 한쪽으로만 관리하는 실전 셋업.
VS Code와 Cursor는 같은 VS Code OSS 기반이라 settings.json 90%, 키바인딩 100% 호환된다. 하지만 그냥 두면 각자 알아서 흩어진 설정을 들고 가게 되니, VS Code를 마스터, Cursor를 미러로 동기화하는 패턴이 제일 깔끔하다.
이 가이드는 macOS 14+ / VS Code 1.95+ / Cursor 0.45+ 기준. Mac 초기 셋업 이후 두 IDE를 동시에 쓰기 위한 30분짜리 셋업이다.
TL;DR
- VS Code는 **Settings Sync(GitHub 계정)**로 클라우드 동기화 — 마스터
- Cursor는 VS Code의
settings.json/keybindings.json을 심볼릭 링크 또는 복사 스크립트로 미러 - extension은
code --install-extension을cursor --install-extension으로 한 줄 미러 - 키바인딩은
Cmd+K Cmd+S로 같은 단축키 표 양쪽 적용 - 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-codecode 명령어를 PATH에 등록 (VS Code 실행 후 Cmd+Shift+P → "Shell Command: Install 'code' command in PATH").
1.2 Settings Sync 켜기 — 마스터로 만드는 핵심
VS Code 좌하단 톱니바퀴 → Backup and Sync Settings... → GitHub 계정으로 로그인.
동기화 항목 체크 (전부):
- ✅ Settings
- ✅ Keyboard Shortcuts
- ✅ Extensions
- ✅ User Snippets
- ✅ UI State
- ✅ Tasks
- ✅ Profiles
이 단계 이후 새 맥에서 VS Code만 깔고 같은 GitHub로 로그인하면 5분 안에 동일 환경 복원.
1.3 macOS의 settings 경로
~/Library/Application Support/Code/User/
├── settings.json # 마스터 설정
├── keybindings.json # 마스터 키바인딩
└── snippets/ # 사용자 스니펫
이 경로를 Cursor가 미러한다.
2. Cursor 설치 + 마스터 설정 미러 — 10분
2.1 설치
brew install --cask cursorCursor도 cursor CLI를 PATH 등록 (Cursor 실행 후 Cmd+Shift+P → "Shell Command: Install 'cursor' command in PATH").
2.2 Cursor의 settings 경로
~/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 — 복사 스크립트 (안정적)
링크 대신 가끔 한 번씩 sync 명령으로 복사.
# ~/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 synced from VS Code"실행 권한 + 별칭:
chmod +x ~/bin/sync-cursor-from-vscode.sh
echo 'alias sync-cursor=~/bin/sync-cursor-from-vscode.sh' >> ~/.zshrc설정 변경 후 sync-cursor 한 번. (또는 launchd로 1일 1회 자동화 가능 — 본 가이드 범위 외.)
3. Extensions 동기화 — 5분
VS Code는 Settings Sync로 자동. Cursor는 한 번 수동 미러.
3.1 VS Code 설치된 extension 목록 추출
code --list-extensions > ~/code-extensions.txt3.2 Cursor에 일괄 설치
cat ~/code-extensions.txt | xargs -n1 cursor --install-extension⚠️ Cursor는 자체 marketplace가 아닌 Open VSX를 사용. 일부 MS 독점 확장(C/C++, Remote-SSH 등)은 Cursor 자체 fork 또는 대안을 써야 한다. 설치 실패 시 무시하고 넘어가도 OK.
3.3 향후 어디서 깔지 정책
- AI 무관 extension → VS Code에서 설치 → Settings Sync로 자동 + 가끔 Cursor에 미러
- AI 관련(예: Cursor 자체 AI 기능) → Cursor에서만 동작 (VS Code 미러 안 함)
- 코드 분석/리팩토링/언어 서버 → VS Code에 깔고 Cursor로 미러
4. 키바인딩 — Mac 표준 + IDE 공통 + Cursor 전용
4.1 Mac 표준 단축키 (VS Code/Cursor 모두 자동)
| 키 | 동작 |
|---|---|
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"
},
// 사이드바 explorer 포커스
{
"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 권장 키 — 양쪽 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 | 이유 |
|---|---|---|
| 일상 코딩 | VS Code | AI 안 쓸 때 가볍고 안정 |
| AI 페어 프로그래밍 | Cursor | Composer + Tab 자동완성 |
Notebook (.ipynb) | VS Code | Jupyter 통합 가장 안정 |
| Remote-SSH / Dev Containers | VS Code | 공식 확장 안정 |
| 큰 리팩토링 (LLM 활용) | Cursor | Composer 다중 파일 편집 |
| 빠른 글쓰기/Markdown | 둘 다 | Cursor에서 AI 리뷰 시너지 |
워크스페이스 분리 권장:
- VS Code는
~/work류의 회사 프로젝트 - Cursor는
~/personal류의 개인 프로젝트 + AI 실험
마지막 열었던 폴더가 자동으로 뜨므로 자연스럽게 IDE별 컨텍스트 분리.
7. 트러블슈팅
Settings Sync 충돌
VS Code가 두 머신에서 동시에 sync push하면 충돌 화면이 뜬다. 로컬 우선(Replace Local) vs 원격 우선(Replace Remote) 선택.
Cursor가 settings.json 덮어쓰기
옵션 A(심볼릭 링크) 사용 중에 Cursor 업데이트 후 링크가 끊긴 경우. 다시 ln -s. 자주 발생하면 옵션 B(복사 스크립트)로 전환.
cursor CLI not found
Cursor 앱 실행 → Cmd+Shift+P → "Shell Command: Install 'cursor' command in PATH" → 새 터미널.
확장 일부가 Cursor에서 install 실패
Open VSX 미수록 확장. 대안 확장 찾거나 (Search Open VSX) 해당 기능은 VS Code에서만 사용.
다음 단계
- Mac 초기 셋업 — Homebrew·SSH·gh 셋업
- Mac 개발 툴체인 (mise) — Node·Python·Go 버전 관리
- Claude Code 셋업 — 터미널 기반 AI 페어
- Cursor 셋업 심화 — Cursor rules·MCP·Composer 패턴
참고 링크
- VS Code Settings Sync
- Open VSX Registry — Cursor가 사용하는 marketplace
- Cursor Docs
변경 이력
- 2026-05-12 — 초안 (devAlice M2 시드 확장)