vim のESC をjj と っjに割り当てる

vim を使っていて、みんなが思っているのがESC が遠い。
今まではCapsLock にESC を割り当てていたが、ubuntu 16 になってGUI で設定できると言いながらそれで設定しても設定が活きないときがある。
 
というわけでjj にESC を割り当てる人が多い。
Vimでの日本語編集がはかどるキーマッピング - Qiita
しかしこれだけでは、日本語入力のときにjj をしたときに、っj になってしまってESC にならないことがある。
というわけで っj もESC にする。日本語入力の最中なので、っj はコンソール上に表示されるが、これを確定した瞬間にESC になっている。

" ESC to jj
inoremap <silent> jj <ESC>
" 日本語入力で”っj”と入力してもEnterキーで確定させればインサートモードを抜ける
inoremap <silent> っj <ESC>
inoremap <silent> っj <ESC>

 
ESC したら日本語入力から抜けて半角英数入力になっていたらうれしい設定がたぶんこれ。

function! Fcitx2en()
 let s:input_status = system("fcitx-remote")
 if s:input_status == 2
    let l:a = system("fcitx-remote -c")
 endif
endfunction

set ttimeoutlen=150
autocmd InsertLeave * call Fcitx2en()