FcitxでVimからIM制御する

Fcitxを用いてVimからIMの状態を制御するプラグインを作成しました。

過去にも何度か取り上げてきましたが、Linuxでの日本語制御にはとても難しい問題が常につきまといます。

私は以前から書いているとおりXubuntuを使っているのですが、iBusに愛想を尽かして以降はUIMでMozcを使うようになっていました。しかし結構な頻度で、急にIMが利用できなくなってしまうという現象に見舞われていました。それはIMを通じた入力ができなくなる(英語は入力できる)という現象で、VimからだけではなくChromeでも同様の症状に悩まされていました。

あたかもIMから切断されたような、この現象の原因はUIMではないかと推測し、とりあえずFcitxに切り替えてみようと思い、やってみることにしました。まずは Fcitx のインストールです。

$ sudo apt-get install fcitx fcitx-mozc

あとは設定マネージャから言語サポートを選択し、「キーボード入力に使うIMシステム」に fcitx を変更、再起動。これでFcitxが使えるようになります。

残る問題はVimからのIM制御です。ということで、これをできるようにするプラグインを 作成し、imcsc-vimfcitx-python として追加しときました。その際 fcitx-vimパクり 参考にしました。

利用に必要なのは if_python が有効化された Vim (gvim) です。私はPython3で使ってますが一応Python2でも動くようにしたつもりです。if_python を有効にしたVimの作り方は vim-jp の説明を参照してください。

インストール方法ですが fcitx-py.vimfcitx-py.py の2つのファイルをダウンロードして、あなたの ~/.vim/plugin へコピーしちゃうのが一番簡単でしょう。パッケージマネージャとかを使っても良いですが、特に考慮したプロジェクト構成になってないので、ご自身の責任で。

この記事もVimで Fcitx + Mozc を使って書いているわけですが、IMから切断されることもなく、そこそこ快適に日本語入力できています。もし同様の現象で困っているようでしたら Fcitx を試してみることをおすすめいたします。