devAlice
← Mac

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

  1. VS Code는 **Settings Sync(GitHub 계정)**로 클라우드 동기화 — 마스터
  2. Cursor는 VS Code의 settings.json / keybindings.json심볼릭 링크 또는 복사 스크립트로 미러
  3. extension은 code --install-extensioncursor --install-extension으로 한 줄 미러
  4. 키바인딩은 Cmd+K Cmd+S로 같은 단축키 표 양쪽 적용
  5. 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

code 명령어를 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 cursor

Cursor도 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.txt

3.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+LAI 채팅 패널
Cmd+I작업 영역 채팅 (Composer)
TabAI 자동완성 수락

이 키들은 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 CodeAI 안 쓸 때 가볍고 안정
AI 페어 프로그래밍CursorComposer + Tab 자동완성
Notebook (.ipynb)VS CodeJupyter 통합 가장 안정
Remote-SSH / Dev ContainersVS Code공식 확장 안정
큰 리팩토링 (LLM 활용)CursorComposer 다중 파일 편집
빠른 글쓰기/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에서만 사용.


다음 단계

참고 링크

변경 이력

  • 2026-05-12 — 초안 (devAlice M2 시드 확장)

댓글