Raccourcis VS Code sur macOS avec clavier russe : solution pour Cmd+, et autres
Sur macOS, le raccourci Cmd+, ouvre les réglages dans presque toutes les applications natives — Safari, Finder, Chrome. Dans VS Code, en revanche, il ne fonctionne pas lorsque la disposition clavier russe est activée. Pourquoi ? Parce que VS Code interprète les raccourcis par caractère, et non par position physique de la touche. Avec la disposition russe, la touche virgule produit « B » — VS Code cherche donc Cmd+B, sans trouver de commande correspondante.
Les applications basées sur Electron — dont VS Code — associent les raccourcis aux caractères, contrairement aux applications natives macOS, qui les lient aux codes de balayage (positions physiques des touches).
Diagnostiquer le problème : de l’hypothèse à la cause racine
Les étapes de dépannage — vérification du focus, test d’autres raccourcis (Cmd+Maj+P fonctionne parfaitement), exclusion de conflits système, d’extensions ou de processus en arrière-plan — n’ont révélé aucun dysfonctionnement. L’étape décisive est le mode Enregistrer les touches des raccourcis clavier dans VS Code : il détecte correctement « cmd+[Comma] », mais aucune commande n’est déclenchée.
Basculer vers la disposition anglaise confirme le problème : la difficulté réside dans la façon dont les touches non alphabétiques sont mappées entre les différentes dispositions clavier.
Correction via keybindings.json
Créez ou modifiez le fichier ~/Library/Application Support/Code/User/keybindings.json et ajoutez une liaison utilisant le nom physique de la touche :
[
{ "key": "cmd+[Comma]", "command": "workbench.action.openSettings" }
]
Les crochets autour de [Comma] indiquent à VS Code de lier le raccourci à la touche physique, et non à son caractère généré. Cette correction fonctionne de manière fiable quelle que soit la disposition clavier.
Ensemble complet de corrections pour les raccourcis non alphabétiques
Ce problème affecte tous les raccourcis Cmd+symbole sur les dispositions non latines. Voici une configuration recommandée pour 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+. — Déclenche la correction rapide
- Cmd+/ — Active/désactive le commentaire sur la ligne
- Cmd+] — Indente les lignes sélectionnées (via
[BracketRight]) - Cmd+\ — Divise l’éditeur
Astuce bonus : ouvrir les liens du terminal dans votre navigateur par défaut
Définissez remote.forwardedPorts.openBrowserKind pour forcer VS Code à ouvrir les ports transférés — y compris les serveurs de développement locaux — dans votre navigateur externe par défaut, plutôt que dans le navigateur intégré Simple Browser.
Dans settings.json :
"remote.forwardedPorts.openBrowserKind": "external"
Points clés à retenir
- VS Code lie les raccourcis par caractère ; macOS les lie par code de balayage (position physique)
- Utiliser
cmd+[Comma]danskeybindings.jsonrésout universellement le problème — plus besoin de changer de disposition clavier - Ce comportement concerne toutes les applications Electron et toutes les touches non alphabétiques (ex. :
/,.,[,],\,,) - Le mode Enregistrer les touches des raccourcis clavier affiche le code de balayage réel — utilisez-le pour valider vos liaisons
- Le paramètre de transfert de ports fonctionne aussi pour les serveurs de développement locaux, même si son nom contient
remote.*
— Editorial Team
Aucun commentaire pour le moment.