Volver al inicio

Arreglar Cmd+, VS Code distribución rusa macOS

El artículo explica la razón por la que Cmd+, y otros atajos no funcionan en VS Code con distribución rusa macOS. Ofrece una solución mediante vinculación de código de escaneo en keybindings.json. Además — configuración para abrir puertos en navegador externo.

Solución al problema de Cmd+, en VS Code con distribución rusa
Advertisement 728x90

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.

Google AdInline article slot

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.

Google AdInline article slot

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:

Google AdInline article slot
"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] en keybindings.json resuelve 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

Advertisement 728x90

Leer después