macOS で VS Code の outdent line `⌘ + [` が効かない問題
5 年前ぐらいのどっかのバージョンで急に効かなくなってから、 VS Code 使わなくなったりするほど困っていた問題だったのだが、久しぶりに検索したら、解決している人がちらほらいたので私の経験もメモしておく。
VS Code で ⌘ + [
でインデント下げや ⌘ + \
でエクスプローラーを畳むといったショートカットが想定通りの動きをせず、効かなかったり、他のショートカットが動いたりするという問題。
初めは Karabiner-Elements が悪いのかと思ったが、 Karabiner-EventViewer で見る限りは正常に機能している。 Electron が悪いのかなと思ったが、昔の記憶だと、他の Electron 製アプリケーションではこの症状が出なくて、 VS Code が悪いなぁと思って、利用者も多いしそのうち直されるだろ、と思った記憶。しかし、予想に反していつまで経っても直されないのであった。
システム設定の「キーボード」の「キーボードショートカット」の「キーボード」の「次のウインドウを操作対象にする」が有効化されているところのチェックを外し、完了を押して、 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