LoginSignup
19
17

More than 5 years have passed since last update.

Ubuntu上のVimでIME制御する

Last updated at Posted at 2015-10-18

やりたいこと

Vimでインサートモード時にIMEをONにし日本語入力を行ったあとで、 ESC などでノーマルモードに入ったときに、自動でIMEをOFFにする

前提条件

  • IMEFcitx を使用
  • ターミナルで fcitx-remote コマンドが使用できること
IMEをONにする
$ fcitx-remote -o
IMEをOFFにする
$ fcitx-remote -c

Vimの設定

.vimrc
function! ImInActivate()
  call system('fcitx-remote -c')
endfunction
inoremap <silent> <C-[> <ESC>:call ImInActivate()<CR>

これでインサートモードからノーマルモードに切り替わるタイミング(つまり ESC キーや Ctrl+[ の入力時)と同時IMEもOFFになる

おまけ

私は日本語の入力に mozc を使っているが、日本語入力時に(IMEがONの状態のとき)に Shift を押しながらキー入力を行うとローマ字入力に自動で切り替わる機能があります。この機能使用時に全角のローマ字が入力されてしまうことがあります。デフォルトで半角英語を入力したい場合は ~/.config/fcitx/profile を下記のように編集したあとに、 fcitx を再起動すると意図どおりに動作するようになります。

~/.config/fcitx/profile
[Profile]
# FullWidth=True
FullWidth=False
19
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
17