トップ 最新

ただのにっき

2000-02-26(土) [長年日記]

VJE-Delta 3.0

 会社帰りに町田のヨドバシカメラに寄ったら、VJE-Delta 3.0を見つけてしまったので買ってしまった。ちなみに町田はVACS(VJEの開発元)の所在地なので、置いてなかったらそれはそれで悲しかったけど(でも最後の1個だった)。実はDOS時代のVJE-βからず〜〜〜〜っとVJEユーザで、その間いちども浮気をしたことがない。現在では決して最高の日本語変換エンジンではないけれど、指も頭も完全にVJEの癖になじんでしまっているので、おいそれと他に乗り換えられるものではない。というわけで、VACSがちゃんとLinuxやBSDにVJEを移植してくれているのは嬉しい。しかもWindows版がまだ2.5なのに、Linux版は3.0だ。

 CD-ROMにはRPMパッケージがちゃんと含まれているので、インストールは簡単。もちろん(?)Kondaraはサポート対象に入っていないけど、リストの中にはLASERの6.0なんかもあるので大丈夫でしょう。入れたあとは、今まで使っていたCannaからVJEへ設定を書き換えなければいけない。daemonであるvjedは例によって自動的に入っているようなので、やるべきことは以下の2点:

  • 環境変数LANGXMODIFIRESの書き換え
  • kinput2の代わりにvjeを起動

 マニュアルでは環境変数は.bashrcでと書いてあるけど、$HOMEXMODIFIRESを設定している「.」で始まるファイルを探してみると、X関係のファイルだけで3つもある(.Xclients.xinitex.xsession)。現在、どのファイルの設定が働いているのかわからないけど、なんにせよこっちを変えた方がいいみたい。というわけで、それらのファイルのCannaの設定をコメントにして、以下の3行を追加する:

# VJE-Delta
XIM=vje
XIM2=""

 いったんlogoutしたあと、入り直して試してみる。環境変数はちゃんと設定されてるし、vjedvjeも動いている。しかし、Shift-spaceを押しても漢字モードにならない。そもそもVJEのパネルが出てないじゃないか。どこに行ったんだ……と思ったら、KDEのパネルの下に隠れてた(笑)。どっちも最上位に表示されるウィンドウだからなぁ。デスクトップを移動すると普通のウィンドウの下にも隠れちゃったりして、ちょっとこのへんは完成度が低い感じがする。マニュアルを読むと、変換キーはCtrl+spaceだそうで。そらあかんわな(笑)。しかし、IMごとにここまで違うと、さすがに混乱する。

 それにしても、Ctrl+spaceってのは押しづらい。今使っているキーボードはテンキー部分だけを切り落とした(カーソルキーはある)富士通製109キーボードで、これはうちの連中に人気があってどこの家にもあるというシロモノ。Linuxerには101キーボードファンが多いみたいだけど、おれはJIS配列じゃないとダメな上に(101の方が変だと思うんだけどね……)、左利きのためカーソルキーをけっこう便利に使うため(マウスと一緒に使える)、こういうキーボードはいい。こいつで使いやすくキーバインドを変えたい。ちなみにWindowsで使っているVJE-Deltaでは、「変換」キーでON/OFFを切り替えているので、それができると嬉しい。VJEのFAQを読んでみると、xmodmapとVJEのキーボード設定ファイルgeneral.keyを使って設定できそう。

xmodmap

 まず、xevを実行して、変換キーを押すことでこのキーのキーコードを得ることができる:

KeyRelease event, serial 27, synthetic NO, window 0x3400001,
    root 0x26, subw 0x0, time 2384090846, (496,124), root:(500,653),
    state 0x0, keycode 129 (keysym 0xff21, Kanji), same_screen YES,
    XLookupString gives 0 characters:  ""

 「keycode 129」とある。続いてxmodmao -pkでキーコード129を見ると、こんな感じに現在はスペースに割り当てられていることがわかる:

129         0x0020 (space)

 VJEのFAQによれば、これをKanjiというキーに変えればいいみたい。とりあえず一時的にこんか感じで変えてみる:

$ xmodmap -e 'keycode 129 = Kanji'

 これで変換キーを押すとKanjiというコードが発生することになるんだな(たぶん)。そしたら次は、VJEの設定でKanjiキーに機能を割り当てればいい。まず、$HOME/.vje/にVJEのディレクトリからdefault.keygeneral.keyとしてコピー、次の1行を追加する:

XK_Kanji=F_SCRN F_SCRN F_SCRN F_SCRN F_SCRN

 vjekillしていったんvjeを殺してから、vjeを再度実行。試しに漢字変換してみると、おお、ちゃんと変換キーでVJEがON/OFFされる……けど、何か入力してかな漢字変換をさせようとすると、OFFになってしまうぅ。文字入力中は、変換動作をするようにしないといけないんだな。VJEのマニュアルを読むと、さっき追加した行の各フィールドは、VJEの状態によって何をさせるかを指定しているようだ。さっきの設定ではいつでもON/OFFを切り替えることになっている。これを以下のように置き換えた:

XK_Kanji=F_SCRN F_CNV F_CNV_NCNV F_CNV_NCNV F_CNV_NCNV

 これはXK_spaceのパクり。これで文字入力状態では変換キーとして働き、何も入力されていないときにはOFFになる。めでたし。この調子でキーアサインを好きなように変えていけばいいだろう。

 続いて単語登録はどうなっているのか調べたら、なんとGUIでは登録できないみたいで、vaddというコマンドでやれとある。これはCanna以下だなぁ。なんでWindowsみたいにGUIにしないんだろう。まぁ、このコマンドでも対話式に登録できるからいいけどね。試しにいくつか登録してみたけど、なぜか変換されない。vdispdコマンドで調べるとちゃんと登録されているのに。ふふん、これはたぶん、辞書が書き変わったことを変換エンジンが知らないせいだな。試しに、vjedHUPを送ってみたら、ちゃんと変換できるようになった。うーむ、ちょっとアレな仕様だが、これくらいマニュアルに書いとけって >VACS なんにせよ、これで快適生活だ♪