設定に難儀したのでメモを残します。
手順
windowsでwsl2でvscode-neovimを早めにしたいに書いてあるとおりです。
手順としては以下のようになります。
- WSL+VS Code+VS Code Neovim環境構築
- WSL側にzenhanをインストール
- コマンドは上記リンク先のものが秀逸なのでそのまま転記
curl -fLO https://github.com/iuchim/zenhan/releases/download/v0.0.1/zenhan.zip unzip zenhan.zip chmod u+x zenhan/bin64/zenhan.exe sudo mv zenhan/bin64/zenhan.exe /usr/local/bin/zenhan
- init.vimにzenhanを利用した自動IME/ON OFFの設定を書く
if executable('zenhan')
autocmd InsertLeave * :call system('zenhan 0')
autocmd CmdlineLeave * :call system('zenhan 0')
endif
- VSCode再起動
難儀した部分
手順は上記のとおり、非常に簡単なのですが、以下らへんが分からず難儀しました
-
zenhanの作者様の紹介ページの設定は必要なのか、どう設定するのか
"vim.autoSwitchInputMethod.enable": true, "vim.autoSwitchInputMethod.defaultIM": "0", "vim.autoSwitchInputMethod.obtainIMCmd": "C:\\users\\foo\\bin\\zenhan.exe", "vim.autoSwitchInputMethod.switchIMCmd": "C:\\users\\foo\\bin\\zenhan.exe {im}",
- setting.jsonに書いても読み込まれない
- 結果、これはVSCodeVimというもっと以前からあるvscodeのvim拡張利用時に行う設定で、VSCode Neovimでは設定しない
- ちなみにVSCode Neovimを使う場合、VSCodeVimがインストールされていれば、無効化(orアンインストール)が必要
-
im-selectは必要なのか??
- im-selectを同時に設定している紹介記事がちらほら
- てかim-selectって何?
- 結果、これもVSCodeVimでIMEを制御するためのやつで、今回は必要ない
-
zenhanはWSLに置くのか、Windowsに置くのか
- これはWSLでした(zenhan.exeなのでWindowsに置くと思い込んでいました)
-
zenhan.exeが読み込まれない
- Pathが通っていればどこでもOKと思っていましたが、init.vim読み込み時にログインプロファイルは読み込まれないようでハマっていました
余談
- 動作したときは気分があがり、よししばらくこれで日本語文章書いてくぞという感じだったのですが、書き始めてすぐ日本語入力がバグってることに気が付きます..
- 日本語入力して、ノーマルモードに戻るとき、ひとつの漢字が2回連続して入力されていたり、2文字の漢字が両方同じ漢字に置き換えられていたり(変換時は普通です)します。例えば、作業と変換してノーマルモードにすると、作作となったり..
- どういう条件かなど詳しく試していないのですが、なかなかストレスです。まだ解決策は調べていません(zenhanを使えるようにするところで力尽きた)
- それさえなければ、日本語入力してすぐノーマルモードでカーソル移動してまた入力、という操作はなかなか快適なのですが..
- ちなみに上記の設定だけだと、ノーマルモードから入力モードにするときは毎回IMEOFFになりますが、これはこれでマークダウンで箇条書きをしていて先頭にハイフンをつける場面で逆に楽だったり、入力モードにしたときのIME ON/OFFを気にしなくて良いのでいいかなと思いました。ノーマルモードにする直前のIMEの状態を復元してくれる方法もあるようなのでそれを試してみてもいいかもです