Vimで強制的にIMをオフにする @Ubuntu
http://idak604.blog39.fc2.com/blog-entry-2.html
uimにあるvi協調モード.
Insert modeからNormal modeに戻るときに強制的にIMEをオフにしてくれる.
uim入れてみたけど使い勝手が微妙だったから削除(vi協調モードは動作した).
Ubuntu標準のSCIMにこの機能はついていない.
これをvim側で対処する.
手順は3つ
1. xvkbdをインストール
# apt-get install xvkbd
2. SCIMでIME終了のホットキーを作成
今回は,Ctrl + Shift + Spaceを使用
自分で打つことはないだろうから適当でOK
・SCIMを設定 -> フロントエンド -> 全体設定 -> ホットキー -> 終了
で設定可能
3. .vimrcに記述
inoremap <silent> <esc> <esc>:call ForceImeOff()<cr> inoremap <silent> <C-[> <esc>:call ForceImeOff()<cr> function! ForceImeOff() let imeoff = system('xvkbd -text "\[Control]\[Shift]\[space]" > /dev/null 2>&1') endfunction
以上.
本当は
noremap!
にしたかったけど,Command modeでエラーが出る(なんで?)から断念.
cnoremap <silent> <cr> <cr>:call ForceImeOff()<cr>
とかしてもいいかも.(中止)
追記(09/02/08)