Edited at

Vimのノーマルモード中は自動的にIMEをOFFにする。(Windowsのみ)

More than 5 years have passed since last update.

VimでIMEをオフにしようとするコマンドはset imdisableset 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