MacOS + Vim + im_control.vim + im-select の設定方法

MacVim で <C-^> による IME 制御が効いていないみたいなので、im-select を使って解決したよ、という話。

使うもの

  • MacVim (Homebrew cask の “macvim”)
  • im_control.vim
    https://github.com/fuenor/im_control.vim
  • im-select
    https://github.com/daipeihust/im-select

手順

  1. vim + im_control.vim をインストール
  2. im-select のインストール (/usr/local/bin/ に配置)
  3. .vimrc に以下のように書く
if (g:os == "Darwin")
  let IM_CtrlMode = 1
  inoremap <silent> <C-j> <C-r>=IMState('FixMode')<CR>
  function! IMCtrl(cmd)
    let cmd = a:cmd
    if cmd == 'On'
      let res = system('im-select com.apple.inputmethod.Kotoeri.RomajiTyping.Japanese > /dev/null 2>&1')
    elseif cmd == 'Off'
      let res = system('im-select com.apple.keylayout.ABC > /dev/null 2>&1')
    elseif cmd == 'Toggle' " dummy
      let res = system('im-select > /dev/null 2>&1')
    endif
    return ''
  endfunction
endif

IM_CtrlMode を 1 にしているので、IMCtrl()は ‘On’ か ‘Off’ を引数に呼ばれるので ‘Toggle’ は真面目に実装する必要はない。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です