経緯
過去に、いろいろな環境でVIMのコマンドモード復帰時にIMEをオフにする話題がありましたが、自分が使っているCygwin+VIMだと情報が乏しかったり、リンク切れだったりしたので、まとめなおしてみました。
必要なもの
以下のサイトを参考にしています。
Cygwin版VimでIME自動切り替えへの道 - 野望編
minttyの置き換え
以下のパッチをminttyのソースに当ててビルドする。といいたいところですが、パッチが古いのでいろいろ中身を解釈してマージして下さい。
GitHubGist/kanonji/mintty-manage-ime.patch
面倒な方は自分がビルドしたものをここに上げておきます。
mintty.exeのzip書庫 (cygwin 64bit用)im_control.vimを ~/.vim/pluginにコピーする。
~/.vimrcに以下の設定を記述する
.vimrc
function! IMCtrl(cmd)let cmd =a:cmdif cmd =='On'silent!echo -n-e"\0033[1v"redraw!elseif cmd =='Off'silent!echo -n-e"\0033[0v"redraw!elseif cmd =='Toggle'silent!echo -n-e"\0033[2v"redraw!endifreturn''endfunction
以上です。
終わりに
atsuoishimotoさん、kanonjiさん、ありがとうございます。
おかげでめちゃ快適です。