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
手順
- vim + im_control.vim をインストール
- im-select のインストール (/usr/local/bin/ に配置)
- .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’ は真面目に実装する必要はない。
