Help us understand the problem. What is going on with this article?

ESCAPEキーを押した時に日本語入力を解除するようにすると捗る

この記事は KLab Advent Calendar 2018 の二日目のエントリです。

日本語入力の状態管理って面倒くさい

vim を使っていて、日本語入力をする場合、NORMALモードからiを押してINSERTモードにしたあと、半角全角キーなどを使って日本語入力をONにして入力をはじめる事になりますよね。
この状態からNORMALモードに戻る時には、当然ですが、まず日本語入力をOFFにしたあとにESCキーを押してINSERTモードから抜ける事になります。

INSERTモードに入った時は日本語入力を行うかどうかはわからないので明示的にONするのは納得いくのですが、INSERTモードを抜けた後に日本語入力を行う事はないので、INSERTモードを抜ける時に自動的に日本語入力をOFFにしても問題ないはずです。

というわけで設定してみましょう。

Windowsの場合

Windowsの場合はキー設定を変更する場合、のどかを使います。(2019-09現在、サイト閉鎖されてしまったようです)
のどかの設定はホームディレクトリ下に dot.nodoka というファイルを作ってそこに書き込みます。
ESCが押された時に日本語入力をOFFにするわけですが、半角全角キーだとトグルなので、&SetImeStatusを利用して以下のように書きます。

key IL-Esc = &Default &SetImeStatus(off)
key C-IL-LeftSquareBracket = &Default &SetImeStatus(off)

IL- はIMEがONになっている時を判定するモディファイヤで、その時にEscが押されると、通常のEscが押された時の動作( &Default )と同時にIMEをOff( &SetImeStatus(off) )にします。
C-[ を押した時にも同じ動作をしてほしいので、同じ設定を二行目に書いています。

Macの場合

Windowsで設定している事は当然Macでもやりたくなりますよね。Macでキー設定をカスタマイズする場合はKarabiner-Elementsを使います。

     "rules": [
                  {
                      "description": "C-[ to ESC and KANA UNLOCK",
                      "manipulators": [
                          {
                              "from": {
                                  "key_code": "open_bracket",
                                  "modifiers": {
                                      "mandatory": [
                                          "control"
                                      ]
                                  }
                              },
                              "to": [
                                  {
                                      "key_code": "escape"
                                  },
                                  {
                                      "key_code": "lang2"
                                  }
                              ],
                              "type": "basic"
                          }
                      ]
                  },
                  {
                      "description": "ESC to ESC and KANA UNLOCK",
                      "manipulators": [
                          {
                              "from": {
                                  "key_code": "escape"
                              },
                              "to": [
                                  {
                                      "key_code": "escape"
                                  },
                                  {
                                      "key_code": "lang2"
                                  }
                              ],
                              "type": "basic"
                          }
                      ]
                  }
              ]

ことあるごとにESCを連打していこう

Windowsの場合、日本語入力のON/OFFは半角全角キーによるトグル操作なので、今の日本語入力の状態を自分で把握しておかないといけないですが、とりあえずESCキーを連打すれば日本語入力がOFFになるというのは他のエディタを使っていても直感的で便利です。

ESC連打していろんなことからESCAPEしていきましょう。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away