Vim のノーマルモードであぁぁー!ってなってイライラすることありますよね。
ググっても、なかなか理想的なソリューションが見つからず諦めていましたが、
英数入力に切り替えるのは AppleScript 使えばいい感じにできんじゃね?と思いついてしまいました。
次に2つの場合に自動的に切り替えられます。
- インサートモードを抜けてノーマルモードになった時
- アプリケーション移動で Vim にフォーカスが移った時
if executable('osascript')lets:keycode_jis_eisuu =102letg:force_alphanumeric_input_command ="osascript -e 'tell application \"System Events\" to key code " . s:keycode_jis_eisuu . "' &"inoremap<silent><Esc><Esc>:call system(g:force_alphanumeric_input_command)<CR>
autocmd!FocusGained *
\ call system(g:force_alphanumeric_input_command)endif
実は、入力ソースを切り替える方法でかなり試行錯誤しました。
例えば、ここにある方法では、
ATOK や Google 日本語入力を入れている場合では入力ソースの名前が異なるため厄介なのと、
GUI 操作をするので、Accessibility で許可しなければならない上処理が遅い問題がありました。
そこで、「英数に切り替えるためのキーコード」をシステムに送信するという全く異なるアプローチを取ることにしました。
ちなみに、私の vimrc は Github で公開されていますのでよかったらご参考に。