Vimにフォーカスが移ると自動で英数入力にする方法(Mac版)

※本ページはプロモーションが含まれています

公開日:

vim英数に自動変換 Vimを使っているとこんなことありませんか?

コードを書いている時に調べ物をしたくなる。 ↓ ブラウザで日本語入力にして調べる。 ↓ Vimに戻りカーソルを移動しようとすると ↓ 「っっっっっっっっっっっっっっっっっっっj」

入力モードを英数に変えるのを忘れて、Vimのノーマルモードなのに日本語入力のままキーを押してしまう。

プログラム初心者の僕にとっては調べるということは日常茶飯事で、毎回こうなるとイライラしてしょうがないです。

そこで見つけたのが「Vim 英数入力に自動で切り替える神スクリプト - Qiita」という記事。

この問題を解決することができたので紹介します。

AppleScriptを使う

vimrcに下記コードを追加。 /Applications/MacVim.app/Contents/Resources/vim/vimrc

if executable('osascript')
  let s:keycode_jis_eisuu = 102
  let g:force_alphanumeric_input_command = "osascript -e 'tell application \"System Events\" to key code " . s:keycode_jis_eisuu . "' &"

  inoremap   :call system(g:force_alphanumeric_input_command)

  autocmd! FocusGained *
    \ call system(g:force_alphanumeric_input_command)
endif

追加後Vimを再起動すればOK。

おわりに

コーディングをしていてVimを離れた後、日本語入力にしない時もあり、Vimに戻ってもそのまま使えるばあいもあるので、たまにする日本語入力のままにするというミスがとても苦痛でした。

そんななかこのコードに出会えたので良かったです!まさに神スクリプト!

しかし、この手の情報が全くないのは不思議でした。皆さん不便を感じずにやってるんですかね?