SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

WSLのvimでインサートモードを抜けたら日本語入力OFF

問題

vimで、インサートモードを抜けたら日本語入力も解除してほしい。

答え

以下のような手段がある。

im-select、zenhan は .vimrc に以下のような設定を追加すると使える。

    augroup WSLZenhan
    autocmd!
    autocmd InsertLeave * :call system('/mnt/c/{保存先}/zenhan.exe 0')
    autocmd CmdlineLeave * :call system('/mnt/c/{保存先}/zenhan.exe 0')
    augroup END

上記は、単純に日本語入力を解除する例。

インサートモードで日本語入力ONだったかOFFだったか状態も保持して、インサートモード復帰時に状態も元に戻したいときは、もうちょっと複雑になる。

zenhan.exe はどうも動きがもっさりしているというか、タイムラグがあるというか、コマンドモードに戻るときなどに画面表示がおかしくなるような動きをする(私の環境では)。

im-select は確認していない。

vim側から何とかするのではなく、Windows側から、「Esc押下、Ctrl+[ 押下で、日本語入力解除するだけ」を実現するには vimmer-ahk が一番いい動きをしているように思う。

関連するメモ

コメント