メイン環境では「Mac mini」に日本語JISキーボードを接続して使用しています。
MacにJISキーボードを接続して使用する場合、「¥」キーでバックスラッシュが入力できないという問題が発生するため「~/Library/KeyBindings/DefaultKeyBinding.dict」を作成する方法で凌いでいたのですが、最近この方法が適用できない現象に遭遇しました。
統合開発環境「IntelliJ」がバージョンアップしたせいか、上記方法を使用しても、「¥」キーで¥マークが入力されるようになり、どうやってもバックスラッシュが入力できないのです。試しにDefaultKeyBinding.dictを削除すると「Option + ¥」でバックスラッシュが入力できるので、設定が逆効果になっている模様。
以下この現象を解決する方法を説明します。
Karabiner-Elementsで入れ替え
バックスラッシュを入力する方法として、macOS標準日本語IMEの設定を変更する方法もありますが、手元の環境ではATOKを使用しているため、「Karabiner-Elements」を使用する方法を採用しました。
事前に「~/Library/KeyBindings/DefaultKeyBinding.dict」を削除しておきます。
Karabiner-Elementsの設定画面を開き「Complex modifications」タブを開きます。左下の「Add rule」をクリックし、ポップアップした画面で「Import more rules from the internet」を選びます。
ブラウザが開いたら「Swap ¥ and \ always on JIS keyboard」を検索し、右横の「Import」ボタンをクリックします。Karabiner-Elementsにルールがインポートできたら「Change ¥ to Alt + ¥」と「Change Alt + ¥ to ¥」の両方のルールを「Enable」ボタンを押して有効化します。
これで元々の挙動が逆転し、「¥」キーでバックスラッシュが、「Option + ¥」で¥マークが入力されるようになります。
設定変更後IntelliJで、バックスラッシュが正しく入力できるか確認します。
ついでにiTerm2も変更
上記設定を行うと今度はなぜかiTerm2上でバックスラッシュが入力できなくなってしまいました。
これを解決するため、iTerm2の設定を変更します。設定画面で「Keys > Keybindings」を選び、以下の設定を追加します。
- Keyboard Shortcut: Option + ¥
- Action: Send Text
- \(バックスラッシュ)
iTerm2の場合、もともと特別な設定しなくても「¥」キーでバックスラッシュが入力できていたようなので(?)、今回の設定が悪影響を及ぼしている可能性があります。
まとめ
IntelliJでバックスラッシュをワンキーで入力する方法を説明しました。DefaultKeyBinding.dictの方法より複雑化しているのが気になりますが、元々Karabiner-Elementsを使っているならば、許容範囲内かと思います。
開発者の方でバックスラッシュが入力できなくて困っている方は試してみてはいかがでしょうか。