VS Code vs. Cursor auf dem Mac — beide mit synchronisierten Einstellungen verwenden
Praktisches Setup für das parallele Betreiben von VS Code und Cursor auf macOS bei gleichzeitiger Verwaltung von Einstellungen/Erweiterungen/Keymaps aus einer einzigen Wahrheitsquelle.
VS Code und Cursor basieren beide auf VS Code OSS — daher ist settings.json zu ~90 % kompatibel und keybindings zu 100 %. Ohne Pflege häuft jede IDE eine eigene verstreute Konfiguration an. Das sauberste Muster ist VS Code als Master, Cursor als Spiegel.
Ich glaube, was die Symlink-Strategie hier so sauber macht, ist nicht die Eleganz des Ansatzes, sondern dass sie die Frage „welche Einstellungsdatei ist die aktuelle?" ein für alle Mal beantwortet — weil divergierende Konfigurationen auf zwei IDEs früher oder später zu Verwirrung führen, statt zu einem konsistenten Workflow. Früher habe ich beide IDEs separat konfiguriert; heute ist VS Code mein Master und Cursor der Spiegel, da ich verstanden habe, dass doppelte Pflege mehr kostet als sie spart.
Dieser Leitfaden richtet sich an macOS 14+ / VS Code 1.95+ / Cursor 0.45+. Es ist ein 30-minütiges Setup nach der Mac-Ersteinrichtung, um beide IDEs sauber zu betreiben.
TL;DR
- VS Code = Settings Sync (GitHub-Konto) für Cloud-Synchronisierung — Master
- Cursor spiegelt VS Codes
settings.json/keybindings.jsonvia Symlink oder Kopierskript - Erweiterungen:
code --install-extensionincursor --install-extensionpipen - Keybindings: mit
Cmd+K Cmd+Skannst du dieselbe Zuordnung auf beiden behalten - Nur Cursors KI-spezifische Bindings bleiben Cursor-exklusiv (z. B.
Cmd+LChat,Cmd+KInline-Bearbeitung)
Voraussetzungen
- macOS 14+, Homebrew installiert — Mac-Ersteinrichtung
- GitHub-Konto (für VS Code Settings Sync)
1. VS Code installieren + Settings Sync aktivieren — 10 Min.
1.1 Installieren
brew install --cask visual-studio-codeDas code-CLI im PATH registrieren (VS Code öffnen, Cmd+Shift+P → „Shell Command: Install 'code' command in PATH").
1.2 Settings Sync aktivieren — der entscheidende Schritt
VS Code unten links Zahnrad → Backup and Sync Settings... → Mit GitHub anmelden.
Sync-Elemente (alles ankreuzen):
- ✅ Einstellungen
- ✅ Tastenkombinationen
- ✅ Erweiterungen
- ✅ Benutzer-Snippets
- ✅ UI-Zustand
- ✅ Aufgaben
- ✅ Profile
Danach stellt ein frischer Mac die vollständige Umgebung in ~5 Minuten wieder her: VS Code installieren, mit demselben GitHub-Konto anmelden, fertig.
1.3 macOS-Einstellungspfade
~/Library/Application Support/Code/User/
├── settings.json # Master-Einstellungen
├── keybindings.json # Master-Keybindings
└── snippets/ # Benutzer-Snippets
Cursor spiegelt diese Pfade.
2. Cursor installieren + Master spiegeln — 10 Min.
2.1 Installieren
brew install --cask cursorDas cursor-CLI registrieren (Cursor öffnen, Cmd+Shift+P → „Shell Command: Install 'cursor' command in PATH").
2.2 Cursors Einstellungspfade
~/Library/Application Support/Cursor/User/
├── settings.json
├── keybindings.json
└── snippets/
Gleiches JSON-Format wie VS Code — die Synchronisierung ist damit denkbar einfach.
2.3 Option A — Symlink (sauberste Lösung)
VS Codes Konfig in Cursor spiegeln. Bearbeitungen auf beiden Seiten spiegeln sich sofort wider.
# Mit geschlossenem Cursor
cd "$HOME/Library/Application Support/Cursor/User"
# Bestehende Dateien sichern
[ -f settings.json ] && mv settings.json settings.json.bak
[ -f keybindings.json ] && mv keybindings.json keybindings.json.bak
[ -d snippets ] && mv snippets snippets.bak
# Mit VS Code-Einstellungen verlinken
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⚠️ Vorbehalt: Wenn Settings Sync die VS Code-Datei überschreibt, kann sich der Inode ändern und dein Symlink bricht.
ln -serneut ausführen oder zu Option B wechseln.
2.4 Option B — Kopierskript (stabiler)
Statt Links gelegentlich einen Sync-Befehl ausführen.
# ~/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 von VS Code synchronisiert"Ausführbar machen + Alias:
chmod +x ~/bin/sync-cursor-from-vscode.sh
echo 'alias sync-cursor=~/bin/sync-cursor-from-vscode.sh' >> ~/.zshrcsync-cursor nach einer Einstellungsänderung ausführen. (Oder täglich mit launchd planen — über diesen Leitfaden hinaus.)
3. Erweiterungen synchronisieren — 5 Min.
VS Code synchronisiert automatisch über Settings Sync. Cursor benötigt eine einmalige Erstsynchronisierung.
3.1 VS Code-Erweiterungen exportieren
code --list-extensions > ~/code-extensions.txt3.2 In Cursor in einem Schritt installieren
cat ~/code-extensions.txt | xargs -n1 cursor --install-extension⚠️ Cursor verwendet Open VSX, nicht VS Codes Marketplace. Einige MS-proprietäre Erweiterungen (C/C++, Remote-SSH) benötigen einen Cursor-Fork oder eine Alternative. Fehler sind in Ordnung — überspringen.
3.3 Richtlinie für zukünftige Installationen
- KI-unabhängige Erweiterungen → in VS Code installieren → Settings Sync automatisch + gelegentliche Cursor-Spiegelung
- KI-spezifisch (Cursors eigene KI) → nur Cursor, keine Spiegelung zu VS Code
- Code-Analyse / Refactoring / Sprachserver → in VS Code installieren, Cursor spiegeln
4. Keybindings — Mac-Standard + IDE-Gemeinsam + Cursor-Exklusiv
4.1 Mac-Standardtasten (automatisch in beiden)
| Taste | Aktion |
|---|---|
Cmd+P | Schnelles Datei-Öffnen |
Cmd+Shift+P | Befehlspalette |
Cmd+B | Seitenleiste umschalten |
Cmd+J | Panel umschalten (Terminal) |
Cmd+T | Schnelles Symbol-Öffnen |
Cmd+\ | Editor aufteilen |
Cmd+/ | Zeilenkommentar umschalten |
4.2 Empfohlene Ergänzungen — keybindings.json
// keybindings.json
[
// Neues Terminal
{
"key": "cmd+shift+t",
"command": "workbench.action.terminal.new",
"when": "terminalProcessSupported"
},
// Seitenleiste fokussieren: Explorer
{
"key": "cmd+1",
"command": "workbench.view.explorer"
},
// Seitenleiste fokussieren: Suche
{
"key": "cmd+2",
"command": "workbench.view.search"
},
// Seitenleiste fokussieren: Git
{
"key": "cmd+3",
"command": "workbench.view.scm"
},
// Nächster / vorheriger Tab
{ "key": "cmd+alt+right", "command": "workbench.action.nextEditor" },
{ "key": "cmd+alt+left", "command": "workbench.action.previousEditor" }
]4.3 Cursor-exklusive Tasten (unangetastet lassen)
| Taste | Cursor-Aktion |
|---|---|
Cmd+K | KI-Inline-Bearbeitung |
Cmd+L | KI-Chat-Panel |
Cmd+I | Workspace-Chat (Composer) |
Tab | KI-Vervollständigung akzeptieren |
Diese können mit VS Code-Standardbelegungen kollidieren — Cursor-exklusiv belassen und VS Codes Varianten ggf. neu zuweisen.
5. Empfohlene settings.json-Schlüssel — für beide gemeinsam
Minimale Änderungen für maximale Wirkung:
// settings.json
{
// Editor
"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,
// Dateien
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"files.eol": "\n",
"files.exclude": {
"**/.DS_Store": true,
"**/.git": false,
"**/node_modules": true
},
// Workbench
"workbench.editor.enablePreview": false,
"workbench.startupEditor": "none",
// Terminal
"terminal.integrated.fontFamily": "'JetBrains Mono', monospace",
"terminal.integrated.fontSize": 13,
"terminal.integrated.defaultProfile.osx": "zsh"
}Schrift installieren: brew install --cask font-jetbrains-mono.
6. Praktischer Workflow — welche IDE wofür
| Aufgabe | IDE | Grund |
|---|---|---|
| Tägliches Coding | VS Code | Leichtgewichtig, stabil ohne KI |
| KI-Pair-Programming | Cursor | Composer + Tab-Vervollständigung |
Notebooks (.ipynb) | VS Code | Stabilste Jupyter-Integration |
| Remote-SSH / Dev-Container | VS Code | Stabile offizielle Erweiterungen |
| Großes LLM-gesteuertes Refactoring | Cursor | Composer Mehr-Datei-Bearbeitungen |
| Schnelles Schreiben / Markdown | Beide | Cursor fügt KI-Review-Synergie hinzu |
Workspace-Aufteilung empfohlen:
- VS Code für
~/work— Unternehmens-Projekte - Cursor für
~/personal— persönliche Projekte + KI-Experimente
Jede IDE öffnet automatisch den zuletzt verwendeten Ordner — so bleiben die Kontexte natürlich getrennt.
7. Problembehandlung
Settings Sync Konflikte
Wenn zwei Geräte gleichzeitig pushen, siehst du eine Konflikt-Aufforderung. Lokal ersetzen oder Remote ersetzen wählen.
Cursor überschreibt settings.json
Bei Option A kann ein Cursor-Update den Symlink beschädigen. ln -s erneut ausführen. Passiert das wiederholt, zu Option B wechseln.
cursor-CLI nicht gefunden
Cursor öffnen → Cmd+Shift+P → „Shell Command: Install 'cursor' command in PATH" → neues Terminal.
Einige Erweiterungen schlagen bei Cursor fehl zu installieren
Nicht auf Open VSX. Eine Alternative finden (Open VSX durchsuchen) oder diese Funktion nur in VS Code behalten.
Nächste Schritte
- Mac-Ersteinrichtung — Homebrew, SSH, gh
- Mac-Entwicklungs-Toolchain (mise) — Node/Python/Go-Versionsverwaltung
- Claude Code Setup — terminal-natives KI-Pair
- Cursor Setup vertieft — Cursor-Regeln, MCP, Composer-Muster
Referenzen
- VS Code Settings Sync
- Open VSX Registry — Cursors Marketplace
- Cursor Docs
Changelog
- 2026-05-12 — Erster Entwurf (devAlice M2 Seed-Erweiterung)