macのAlacrittyとNeovimでeskkを使う場合
Terminalをalacrittyに変えて、Neovimとプラグインのeskkを使えばこの環境でも問題なく日本語を入力できる状態です。
でもって、ターミナルとskkが組み合わさると出てくるのが「CTRL+J」の問題
「CTRL+J」がターミナルを使うときには改行になるんで、skkとは相性が悪い
今回はKarabiner-Elementsとeskkを使ったときの回避方法。
流れとしては、下記の通り。
- eskkの日本語切り替えを「CTRL+^」に変更する。
- 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による日本語入力ができましたっと。