devAlice
← Mac

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

  1. VS Code = Settings Sync (GitHub-Konto) für Cloud-Synchronisierung — Master
  2. Cursor spiegelt VS Codes settings.json / keybindings.json via Symlink oder Kopierskript
  3. Erweiterungen: code --install-extension in cursor --install-extension pipen
  4. Keybindings: mit Cmd+K Cmd+S kannst du dieselbe Zuordnung auf beiden behalten
  5. Nur Cursors KI-spezifische Bindings bleiben Cursor-exklusiv (z. B. Cmd+L Chat, Cmd+K Inline-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-code

Das 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 cursor

Das 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 -s erneut 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' >> ~/.zshrc

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

3.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)

TasteAktion
Cmd+PSchnelles Datei-Öffnen
Cmd+Shift+PBefehlspalette
Cmd+BSeitenleiste umschalten
Cmd+JPanel umschalten (Terminal)
Cmd+TSchnelles 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)

TasteCursor-Aktion
Cmd+KKI-Inline-Bearbeitung
Cmd+LKI-Chat-Panel
Cmd+IWorkspace-Chat (Composer)
TabKI-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

AufgabeIDEGrund
Tägliches CodingVS CodeLeichtgewichtig, stabil ohne KI
KI-Pair-ProgrammingCursorComposer + Tab-Vervollständigung
Notebooks (.ipynb)VS CodeStabilste Jupyter-Integration
Remote-SSH / Dev-ContainerVS CodeStabile offizielle Erweiterungen
Großes LLM-gesteuertes RefactoringCursorComposer Mehr-Datei-Bearbeitungen
Schnelles Schreiben / MarkdownBeideCursor 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

Referenzen

Changelog

  • 2026-05-12 — Erster Entwurf (devAlice M2 Seed-Erweiterung)