Atajos de VS Code en macOS con teclado ruso: solución para Cmd+, y más
En macOS, el atajo Cmd+, abre la configuración en prácticamente todas las aplicaciones nativas: Safari, Finder, Chrome. Sin embargo, en VS Code falla cuando está activo el diseño de teclado ruso. ¿Cuál es la causa? VS Code procesa los atajos por carácter, no por posición física de la tecla. Con el diseño ruso, la tecla de coma emite «B», por lo que VS Code busca Cmd+B y no encuentra ningún comando asociado.
Las aplicaciones basadas en Electron —incluido VS Code— vinculan los atajos a caracteres, a diferencia de las apps nativas de macOS, que los vinculan a códigos de exploración (posición física de la tecla).
Diagnosticar el problema: de la hipótesis a la causa raíz
Los pasos de resolución de problemas —como verificar el foco activo, probar otros atajos (Cmd+Shift+P funciona perfectamente), descartar conflictos del sistema, extensiones o procesos en segundo plano— no revelaron anomalías. El paso clave para diagnosticar el problema es usar el modo Grabar teclas en Configuración de teclado de VS Code: registra correctamente «cmd+[Comma]», pero no se ejecuta ningún comando.
Al cambiar al diseño de teclado inglés se confirma el problema: la raíz está en cómo se mapean las teclas no alfabéticas entre distintos diseños de teclado.
Solución mediante keybindings.json
Crea o edita el archivo ~/Library/Application Support/Code/User/keybindings.json y añade un enlace usando el nombre físico de la tecla:
[
{ "key": "cmd+[Comma]", "command": "workbench.action.openSettings" }
]
Los corchetes alrededor de [Comma] indican a VS Code que se vincule a la tecla física, no a su salida de carácter. Esta solución funciona de forma fiable en todos los diseños de teclado.
Conjunto completo de soluciones para atajos con símbolos
Este problema afecta a todos los atajos Cmd+simbolo en diseños no latinos. A continuación, una configuración recomendada para 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+. — Aplica correcciones rápidas
- Cmd+/ — Alternar comentario de línea
- Cmd+[+] — Sangrar líneas seleccionadas (mediante
[BracketRight]) - Cmd+\ — Dividir el editor
Extra: abrir enlaces de terminal en tu navegador predeterminado
Configura remote.forwardedPorts.openBrowserKind para forzar a VS Code a abrir puertos reenviados —incluidos servidores locales de desarrollo— en tu navegador externo predeterminado, en lugar del navegador integrado Simple Browser.
En settings.json:
"remote.forwardedPorts.openBrowserKind": "external"
Conclusiones clave
- VS Code vincula atajos por carácter; macOS lo hace por código de exploración (posición física de la tecla)
- Usar
cmd+[Comma]enkeybindings.jsonresuelve el problema de forma universal: no es necesario cambiar de diseño de teclado - Esto afecta a todas las aplicaciones Electron y a cualquier tecla no alfabética (por ejemplo,
/,.,[,],\,,) - El modo Grabar teclas en Configuración de teclado muestra el código de exploración real: úsalo para verificar tus vinculaciones
- La configuración de reenvío de puertos también funciona con servidores locales de desarrollo, aunque su nombre incluya
remote.*
— Editorial Team
Aún no hay comentarios.