⏮️

macOS で VS Code の outdent line `⌘ + [` が効かない問題

に公開

5 年前ぐらいのどっかのバージョンで急に効かなくなってから、 VS Code 使わなくなったりするほど困っていた問題だったのだが、久しぶりに検索したら、解決している人がちらほらいたので私の経験もメモしておく。

VS Code で ⌘ + [ でインデント下げや ⌘ + \ でエクスプローラーを畳むといったショートカットが想定通りの動きをせず、効かなかったり、他のショートカットが動いたりするという問題。

初めは Karabiner-Elements が悪いのかと思ったが、 Karabiner-EventViewer で見る限りは正常に機能している。 Electron が悪いのかなと思ったが、昔の記憶だと、他の Electron 製アプリケーションではこの症状が出なくて、 VS Code が悪いなぁと思って、利用者も多いしそのうち直されるだろ、と思った記憶。しかし、予想に反していつまで経っても直されないのであった。

https://github.com/microsoft/vscode/issues/114075

https://blog.summerwind.jp/posts/20211117/

https://aotamasaki.hatenablog.com/entry/command_with_open_bracket_is_unavailable

https://chaika.hatenablog.com/entry/2023/10/27/080000

システム設定の「キーボード」の「キーボードショートカット」の「キーボード」の「次のウインドウを操作対象にする」が有効化されているところのチェックを外し、完了を押して、 VS Code を再起動したら、⌘ + [ は効くようになった。一方で ⌘ + \ は Atom のショートカットであって、 VS Code ではデフォルトだと別の意味に割り当てられているようだ。 VS Code ではデフォルトだと ⌘ + B がエクスプローラーの fold/unfold である。ちょうど、この問題が起きたのが多分私が Atom から VS Code に乗り換え始めた時期だったので、混乱していたのだろう。 Atom でも ⌘ + [ の問題は起きていたとおぼろげに記憶している。

私は物理的 JIS 配列キーボードを Karabiner-Elements で論理的 US 配列をもとに改造して使っている。つまり、見た目は JIS キーボードだが、機能的には US キーボード + α として使っている。この問題は Intel Mac でも ARM Mac でも関係なく症状が現れたので、多分そこは関係ないと思う。

しかし、これを読む限り、物理的 US 配列キーボードを論理的 US 配列キーボードとして使っていてもこの症状が出るらしい。なので、多分 Karabiner-Elements はあんまり悪くなくて、 macOS 、つまりは Apple が悪いらしい。 Apple の人、早くどうにかして下さい。

Discussion