vim-users.jp

Hack #79: ATOK X3をGVimで使用する

Posted at 2009/09/28
このエントリーをはてなブックマークに追加

Linux環境において標準的な日本語入力システムであるAnthyは変な癖が無く便利なのですが、ATOKに慣れた身では誤変換の多さが目につきます。ここではLinux版ATOKであるATOK X3をVimで使用する際の注意点について解説します。

ATOK X3とは

ATOK X3はLinux環境におけるATOKです。Anthyとは違い、商用ソフトですが意外と愛好家は多いです。ベースとなっているのがATOK 2007であるため、最新版のATOKにある機能は使えず古さは否めませんが、それでも通常の変換精度においては軽くAnthyを凌駕します。ただしインストール作業がかなり複雑なので、素人にはお勧めできません。ここでは正常にATOK X3がインストールされている環境を仮定して、話を進めます。

ATOK X3をVim上で使用する

ATOK X3をターミナルのVim上で使用する事は簡単です。ATOK X3をONにしてから普通に日本語を入力変換すればよいです。ただしVimがATOK X3を認識することができないため、「Insert modeで<ESC>を押すことでATOK X3をOFF」といった設定ができません。

ESC入力時、自動的にATOK X3をOFFにする

これは有名な設定ですが、一応書いておきます。GVim上でしか動作しないので注意してください。 この他に、<ESC>をKey-mappingするという方法もあります。

augroup MyAutoCmd
    autocmd!
augroup END
autocmd MyAutoCmd InsertLeave * set iminsert=0 imsearch=0

ATOK X3をGVim上で使用する

ATOK X3をGVim上で使用する場合は注意が必要です。次のような設定を.gvimrcに書いていないと変換時にフリーズします。

let $GTK_IM_MODULE='xim'
set imactivatekey=C-space

Shift-SpaceでATOK X3をONにする設定にしている場合、次のように設定します。

let $GTK_IM_MODULE='xim'
set imactivatekey=S-space

UIMにおいても同様な設定をする必要があるので、uim-anthy用の設定もおいておきます。

let $GTK_IM_MODULE='uim-anthy'
set imactivatekey=C-space

使用上の注意

GVimの場合、VimからATOK X3やUIMを制御できるのですが、プラグインによっては勝手にATOKやUIMがONになってしまうことがあります。特にautocomplpopでは自動補完が暴走し、使い物になりません。neocomplcacheでは対策をしていますが、注意してください。なぜこのような動作になるのかというと、GVimがIMの状態を上手く取得できず、勝手にIMをONにしようとするためです。一種のバグであるため、いつかは修正されることと思いますが、今はプラグイン内で対策するほかありません。対策する場合にはIMがONになるコードの後で、次の処理を入れます。Insert modeからの関数呼び出しにおいて、問題が起こりやすいようです。ちなみに、autocomplpopで問題が発生するのは、<C-r<=で関数を呼び出している部分です。

let &l:iminsert = 0
let &l:imsearch = 0

Shougo

もどる
blog comments powered by Disqus