続・Mac の Vim でインサートモードを抜けるときに日本語入力を OFF にしたい

こちらの記事で「swim がビルドできないので osascript を使うようにした」と書きました。

Mac の Vim でインサートモードを抜けるときに日本語入力を OFF にしたい

が、現在は問題が解消されて再び swim を使えるようになっています。めでたし。

Can’t build swim with swift 5.0

osascript を使うことで外部ツールに頼らず IME をオフにできるようになったとはいえ、インサートモードを抜けるときの遅延は多少気になります。(遅延との戦いは上記の記事を参照してください)

そこで、swim が使えるときは swim を使うようにし、使えない場合は osascript を使うように vimrc を変更しました。現在は以下のような形で落ち着いています。

function! s:disableIme()
    if has('mac')
        if executable('swim')
            call job_start(['swim', 'use', 'com.apple.keylayout.US'],
                        \ {'in_io': 'null', 'out_io': 'null', 'err_io': 'null'})
        else
            call job_start(['osascript', '-e', 'tell application "System Events" to key code {102}'],
                        \ {'in_io': 'null', 'out_io': 'null', 'err_io': 'null'})
        endif

    elseif  " Windows 用の設定...
    endif
endfunction

コメントを残す

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