概要
Vim で期待しない IME のオン、オフを避けるための設定。
vim-jp Slack で質問して、現状このようになった。
環境
- Vim: gvim 8.2.0884
- Windows 10
設定
動作 になるような設定を vimrc へ記載。
let s:lastiminsert = 0
" IMEの状態を保持しておく、置換モードではIMEの状態を保持しない
" 置換モードではIMEの状態を保持しない。置換モードではIMEオフなので、置換モード後の挿入モードが常にIMEオフになることを避ける
autocmd InsertLeave * if v:insertmode !=# 'r' | let s:lastiminsert = &iminsert | set iminsert=0 | endif
" IMEの状態を復帰する。改行時には続けてIMEオンのままにしたいため。
" 挿入モード(IMEオン)→ノーマルモード→挿入モード(IMEオン) となるが。これはむしろできなくていい
" 置換モードではIMEの状態を復帰しない
autocmd InsertEnter * if v:insertmode ==# 'i' | let &iminsert = s:lastiminsert | endif
動作
凡例:
- IME ON:背景色 Lime
- ポイントの状態:文字色 赤