VimでIMEをオフにしようとするコマンドはset imdisable
やset iminsert
など
ありますが、結構使いどころが難しいです。
なので、rbtnn/winime.vimというVimプラグイン
を作りました。 これをインストールするとWindowsのIMEをVim scriptから制御できます。
で、これをインストールした後以下のコードをvimrcなどに記述すれば、
ノーマルモード中、誤って「半角/全角キー」を押したとしても自動的にIMEをOFFにしてくれます。
set updatetime=1000
function! s:winime_off()
if exists("g:loaded_winime") && (has('win32') || has('win64'))
if mode() !=# 'i'
call winime#off()
call feedkeys(mode() ==# 'i' ? "\<C-g>\<ESC>" : "g\<ESC>", 'n')
endif
endif
endfunction
augroup winime_off
autocmd!
autocmd CursorHold,CursorHoldI * call s:winime_off()
augroup END