Zpět na domů

Oprava Cmd+, VS Code ruská klávesnice macOS

Článek rozebírá příčinu nefunkčnosti zkratek Cmd+, a dalších ve VS Code na ruské klávesnici macOS. Nabízí opravu přes přiřazení podle scan code v keybindings.json. Dodatečně – nastavení otevírání portů ve vnějším prohlížeči.

Řešení problému Cmd+, ve VS Code na ruské klávesnici
Advertisement 728x90

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.

Google AdInline article slot

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.

Google AdInline article slot

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:

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

Advertisement 728x90

Číst dál