Klávesové zkratky VS Code na macOS s ruskou klávesnicí: oprava pro Cmd+, a dalších
Na macOS otevře kombinace Cmd+, nastavení ve všech aplikacích: Safari, Finder, Chrome. V VS Code však nefunguje, pokud je aktivní ruská klávesnice. Důvodem je zpracování podle znaku, nikoli podle fyzické klávesy. Při ruské rozložce klávesnice vyvolá klávesa čárky znak „B“, a VS Code hledá příkaz Cmd+B – který neexistuje.
Aplikace postavené na Electronu, včetně VS Code, používají pro klávesové zkratky znaky, na rozdíl od nativních aplikací macOS, kde je vazba založena na scan code (kódu stisknuté klávesy).
Diagnostika: od hypotéz k pravděpodobné příčině
Zkontrolovat jsme zaměření okna, jiné klávesové zkratky (Cmd+Shift+P funguje bez problémů), systémové konflikty, rozšíření i pozadí běžících procesů – nic z toho neukázalo chybu. Klíčový test: režim „Record Keys“ v sekci Keyboard Shortcuts. VS Code správně zaznamená „cmd+[Comma]“, ale nepodaří se mu najít žádný příslušný příkaz.
Přepnutí na anglickou klávesnici potvrzuje domněnku: problém spočívá v mapování znaků pro neabecední klávesy.
Oprava v souboru keybindings.json
Vytvořte soubor ~/Library/Application Support/Code/User/keybindings.json s následující vazbou podle scan code:
[
{ "key": "cmd+[Comma]", "command": "workbench.action.openSettings" }
]
Hranaté závorky [Comma] označují fyzickou klávesu – tato vazba funguje bez ohledu na aktuální jazykovou rozložku.
Komplexní sada oprav pro neabecední klávesové zkratky
Problém se týká všech kombinací Cmd+znak při použití nelaťinských rozložek klávesnice. Doporučujeme tento kompletní 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+. — Rychlá oprava (Quick Fix)
- Cmd+/ — komentování řádku
- Cmd+[+] — zvýšení odsazení (indent)
- Cmd+\ — rozdělení editoru
Bonus: otevírání odkazů z terminálu ve vnějším prohlížeči
Nastavení remote.forwardedPorts.openBrowserKind donutí VS Code otevírat přesměrované porty (včetně lokálních serverů) ve vnějším prohlížeči místo vestavěného jednoduchého prohlížeče (Simple Browser).
V souboru settings.json přidejte:
"remote.forwardedPorts.openBrowserKind": "external"
Co je důležité vědět
- VS Code váže klávesové zkratky podle znaku, macOS podle fyzické klávesy
- Oprava pomocí
cmd+[Comma]vkeybindings.jsonřeší problém pro všechny jazykové rozložky - Dotýká se všech aplikací založených na Electronu a všech neabecedních kláves
- Režim „Record Keys“ v nastavení klávesových zkratek zobrazuje skutečný scan code
- Nastavení pro přesměrování portů funguje i pro lokální servery – přestože název obsahuje „remote"
— Editorial Team
Zatím žádné komentáře.