Hatena::ブログ(Diary)

数日に1回はvim

2018-05-11

macのAlacrittyとNeovimでeskkを使う場合

Terminalをalacrittyに変えて、Neovimとプラグインのeskkを使えばこの環境でも問題なく日本語を入力できる状態です。

でもって、ターミナルskkが組み合わさると出てくるのが「CTRL+J」の問題

「CTRL+J」がターミナルを使うときには改行になるんで、skkとは相性が悪い

今回はKarabiner-Elementsとeskkを使ったときの回避方法。

流れとしては、下記の通り。

  1. eskkの日本語切り替えを「CTRL+^」に変更する。
  2. Alacrittyを使うときのみCTRL+Jを送信すると、CTRL+^に切り替える。


eskkの設定

init.vimには次の通り設定

 set imdisable
 imap <C-^> <Plug>(eskk:enable)

1行目の set imdisable でimのAquaSKKなり、ことえりなり使えないようにしておく。元々alacrittyはimが使えないので問題ないけど、念の為

2行目で 「CTRL+^」をeskkを有効にするに割り当て。

eskkのhelpを見るとキーマッピングには3つあるけど、toggleにするとeskkを使う状態にしてから、日本語入力に切り替えるのがうまくいかなかった。

なので、eskk:enableを「CTRL+J」に割り当て。

ちなみにhelpは↓の通り

<Plug>(eskk:enable) (icl)		*<Plug>(eskk:enable)*
<Plug>(eskk:disable) (icl)		*<Plug>(eskk:disable)*
<Plug>(eskk:toggle) (icl)		*<Plug>(eskk:toggle)*

Karabiner-Elements の設定。

専用のコンフィグファイルを作成する。

作業場所は「 ~/.config/karabiner/assets/complex_modifications」

ここにCTRL+J_to_CTRL+^.jsonを作成。内容は以下

{
    "title": "Change CTRL+J on Alacritty",
    "rules": [
        {
            "description": "Change CTRL+J to CTRL+^ on Alacritty",
            "manipulators": [
                {
                    "type": "basic",
                    "from":
                        {
                            "key_code": "j",
                            "modifiers": {
                                "mandatory":["left_control"]
                            }
                        },
                    "to": [
                        {
                            "key_code": "equal_sign",
                            "modifiers": ["left_control"]
                        }
                    ],
                    "conditions": [
                        {
                            "type": "frontmost_application_if",
                            "bundle_identifiers": [
                                "io.alacritty"
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}

ポイントはconditionsにおいてウィンドウを指定していること。

bundle_identifiersはKarabiner-Elementsに添付してあるKarabiner-Eventviewerを使えばすぐに分かる。

この設定をして、有効にしたらAlacritty上のNeovimで快適にSKKによる日本語入力ができましたっと。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/homaju/20180511/1525994768