VS Code-Tastenkürzel unter macOS mit russischer Tastaturbelegung: So beheben Sie Cmd+, und mehr
Unter macOS öffnet die Tastenkombination Cmd+, in nahezu jeder nativen App – Safari, Finder, Chrome – die Einstellungen. In VS Code funktioniert sie jedoch nicht, sobald die russische Tastaturbelegung aktiv ist. Die Ursache? VS Code verarbeitet Tastenkürzel nach Zeichen, nicht nach physischer Tastenposition. Bei der russischen Belegung erzeugt die Komma-Taste das Zeichen „B“ – VS Code sucht daher nach Cmd+B und findet keinen passenden Befehl.
Apps auf Electron-Basis – darunter auch VS Code – binden Tastenkürzel an Zeichen, während native macOS-Apps an Scan-Codes (physische Tastenpositionen) binden.
Das Problem diagnostizieren: Von der Hypothese zur Wurzelursache
Die Fehlersuche – inklusive Prüfung des Fokus, Testen anderer Kürzel (Cmd+Shift+P funktioniert einwandfrei), Ausschluss von Systemkonflikten, Erweiterungen oder Hintergrundprozessen – ergab keine Hinweise auf Fehlerquellen. Der entscheidende Schritt ist der Tasten-Aufzeichnungsmodus in VS Codes Tastaturkürzel-Einstellungen: Er registriert korrekt „cmd+[Comma]“, doch kein Befehl wird ausgelöst.
Ein Wechsel zur englischen Tastaturbelegung bestätigt das Problem: Die Schwierigkeit liegt in der unterschiedlichen Zuordnung nicht-alfanumerischer Tasten zwischen verschiedenen Tastaturbelegungen.
Lösung über keybindings.json
Erstellen oder bearbeiten Sie die Datei ~/Library/Application Support/Code/User/keybindings.json und fügen Sie eine Bindung mit dem physischen Tastennamen hinzu:
[
{ "key": "cmd+[Comma]", "command": "workbench.action.openSettings" }
]
Die eckigen Klammern um [Comma] weisen VS Code an, sich an die physische Taste zu binden – nicht an deren Zeichenausgabe. Diese Lösung funktioniert zuverlässig unabhängig von der aktiven Tastaturbelegung.
Vollständiger Satz an Korrekturen für nicht-alfanumerische Tastenkürzel
Dieses Problem betrifft alle Cmd+Symbol-Kürzel bei nicht-lateinischen Tastaturbelegungen. Hier ist eine empfohlene Konfiguration für keybindings.json:
[
{ "key": "cmd+[Comma]", "command": "workbench.action.openSettings" },
{ "key": "cmd+[Period]", "command": "editor.action.quickFix", "when": "editorHasCodeActionsProvider && editorTextFocus" },
{ "key": "cmd+[Slash]", "command": "editor.action.commentLine", "when": "editorTextFocus" },
{ "key": "cmd+[BracketLeft]", "command": "editor.action.outdentLines", "when": "editorTextFocus" },
{ "key": "cmd+[BracketRight]", "command": "editor.action.indentLines", "when": "editorTextFocus" },
{ "key": "cmd+[Backslash]", "command": "workbench.action.splitEditor" }
]
- Cmd+. – Schnellkorrektur auslösen
- Cmd+/ – Zeilenkommentar umschalten
- Cmd+[+] – Ausgewählte Zeilen einrücken (über
[BracketRight]) - Cmd+\ – Editor teilen
Bonus: Terminal-Links im Standardbrowser öffnen
Legen Sie remote.forwardedPorts.openBrowserKind fest, um VS Code zu zwingen, weitergeleitete Ports – etwa lokale Entwicklungsserver – im externen Standardbrowser statt im integrierten Simplified Browser zu öffnen.
In settings.json:
"remote.forwardedPorts.openBrowserKind": "external"
Wichtigste Erkenntnisse
- VS Code bindet Tastenkürzel nach Zeichen, macOS nach Scan-Code (physische Taste)
- Die Verwendung von
cmd+[Comma]inkeybindings.jsonlöst das Problem universell – kein Umschalten der Tastaturbelegung nötig - Betroffen sind alle Electron-basierten Apps sowie sämtliche nicht-alfanumerischen Tasten (z. B.
/,.,[,],\,,) - Der Tasten-Aufzeichnungsmodus in den Tastaturkürzel-Einstellungen zeigt den tatsächlichen Scan-Code an – nutzen Sie ihn zur Überprüfung Ihrer Bindungen
- Die Port-Weiterleitungs-Einstellung funktioniert auch für lokale Entwicklungsserver – obwohl sie
remote.*heißt
— Editorial Team
Noch keine Kommentare.