MacVimで日本語入力していると途中で英字入力に戻ってしまう。

こんばんは。
最底辺です。

表題の通りですが、MacVim(KaoriYa版)で日本語入力していると途中で英字入力に戻ってしまうことがあります。
bufferの切り替えをしたときにどうもうまくいかなくなっているようなのですが、何が原因かさっぱりです。無駄にpluginも入れているのでそのせいもあるのでしょうが、最小構成で試せば良いのですが面倒なのでやっていません。

下記の記事は最底辺には難しすぎですが、どうやらvimの日本語入力に関しては、過去から色々とあったようで一筋縄ではいかないようです。
https://mattn.kaoriya.net/software/vim/20170905113330.htm

以下のリンクをみると

set imdisable

を実施すれば、問題は解決するようですが、自動的に日本語入力(IM)をオン/オフ機能がなくなるので本末転倒です。
https://github.com/splhack/macvim-kaoriya/wiki/Readme#macvim-kaoriya%E3%81%A8%E3%81%AF
最底辺でもやっぱり入力モードから戻るときに自動的に日本語入力をオフにしてほしい!!

で色々調べてみると、Karabiner-Elementsを使って実行できるようです。
https://qiita.com/takaeda/items/38ecf7d98d1a3ef99ef0

で「set imdisable」と併用して実際に設定してみると、ん?ESCはうまくいくけど、CTRL+[で上手くいかない!!
どうやら最底辺の使っている日本語キーボードでは、
“key_code”: “open_bracket”
の部分を
“key_code”: “close_bracket”
に変更しないとだめなようです。

{
  "title": "Terminal等でESCあるいは^[で日本語入力を英数に",
  "rules": [
    {
      "description": "TerminalまたはMacVimでESCあるいは^[を押したときに日本語入力を英数に切り替える。",
      "manipulators": [
        {
          "type": "basic",
          "from": { "key_code": "escape", "modifiers": { "optional": [ "any" ] } },
          "to": [ { "key_code": "japanese_eisuu" }, { "key_code": "escape" } ],
          "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^org\\.vim\\." ] } ]
        },
        {
          "type": "basic",
          "from": { "key_code": "close_bracket", "modifiers": { "mandatory": ["left_control"] } },
          "to": [ { "key_code": "japanese_eisuu" }, { "key_code": "escape" } ],
          "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^org\\.vim\\." ] } ]
        }
      ]
    }
  ]
}

これでなんとか動くようになりました。
まあ、これだと日本語に切り替えたときキャレットの色が変わらないとかあるんですけどね。
できる人なら有用だけど最底辺にはvimは辛いなあ。

では。

未分類

Posted by koheizi