(2003.10.05/2004.10.01upd)

FEPあれこれ

OS/2のFEPはいろんな面で問題がある。実質的な標準FEPであるWriting Heads/2は辞書登録の制限があまりに大き過ぎて、とてもではないが実用にはならない。キーアサインの変更もできない連文節かな漢字は論外。ATOKは…ないとは言わないが…。結局、現実的な選択肢はWX3 for OS/2しかないわけだ。ところが、切り札のWX3もOS/2版はデキが良いとは言えず、いろんな問題が出てくる。

■Ctrl+英字を使うにはv3.04を使うこと

これは大前提の知識。最初に出荷された3.00では、何とCtrl+英字が使えなかったのである。なお、3.0→3.04用のRevison Up用のバッチはVectorなどでまだ公開されていると思う。しかし、こいつにはいろいろ問題がある。

■ショートカット・キーのスルーは[半]で

WX3を通常のPMアプリで使っていると、FEPが起動している間はアプリケーション側のショートカット・キーが使えなくなってしまう。たとえば、Ctrl+Fで検索とか、Ctrl+Wでタブを閉じる、といった操作も、いちいちFEPを切らなければできない。しかし、半角モードで使用していれば、これらのキーもスルーしてくれる。ちなみに、半角モードにしても、ちゃんと全角・ローマ字入力が可能なので心配なく(未変換文字の表示が少し変わるだけ)。

ただし、この[半]モードでは「全角スペースが入力できない」というかなり重度の副作用が出る。しかし、WX3のキーアサインを変更して、スペースを強制的に全角スペースに割り当てればよい。

もう一つ、[半]モードでは記号も半角になるが、未確定の状態で全角に変換できるので大きな支障はない。だが、一つ困ったことに[半]モードでは「/」が「・」にならない。これはけっこう深刻。仕方ないので、これは辞書登録で対応する。読みとして全角の「/」を登録しておけば、半角「/」→「・」という変換が可能になる。

■記号の半角→全角

「/」→「・」だけでなく、「?」→「?」などのように、半角を全角に変換するときも、辞書登録を使うと便利。このとき重要なのは、「語句」も「読み」もともに全角で登録すること。半角記号の読みは登録できないし、また全角で登録しても、半角が全角に変換される。

■起動トグルはCtrl+`のみ

これはたぶん、本質的にはOS/2 Warp 3 の問題だろう。Warp 3では、FEPの起動トグルはCtrl+`に固定されていて、他のキーに割り当てることができなかった。Warp 4で変更可能になったようだが、Warp 3時代に開発されたWX3では当然対応できないものと思われる。

でも、WX3のキーアサインにはちゃんと「起動トグル」という項目がある。これはいったい何じゃろう? というと、実は「直接入力トグル」のこと。つまり、本当にWX3をオン/オフしているんではなくて、素通しではあるが一応WX3を通してアプリケーション側にキーを渡している。それだけなら問題ないのだが、実はこれにもかなり深刻な問題が出て来る。直接入力モードでは「半角スペースが入力できない」のである。しかも、これには対処法がない。

■したいこと、できないこと

さて、ではもう少し具体的に考えてみよう。私が望むのは、

 @FEP起動中もアプリケーションのショートカット・キーを有効にする
 A「Ctrl+Space」を起動トグルとする
 Bスペースは、FEPオン時は全角、FEPオフ時は半角とする

の三点。ささやかなものじゃないか。Windowsなら何の障害もなく実現可能だろう。でも、OS/2ではたいへんなのだ。

まず、@の問題は[半]モードにすることで基本的に解決。しかし、前述のようにBの問題に引っ掛かる(FEPオンで半角になってしまう)。そこで、WX3のキーアサインを変更して、スペースキーに強制的に「*全角空白」を割り当ててしまう。これはこれでよし。

次にAの問題だが、結論から言うとこれは諦めた。確かに、WX3で「起動トグル」を割り当てれば、疑似的にCtrl+Spaceでのオン/オフは可能になる(ただし、いったんCtrl+`で起動したあと:WX3の起動トグルは本当の起動トグルではないので)。ところが、半角時にスペースが全角化するのは対処法がない。

原因は、FEPをオフにした状態(実は直接入力状態)では[あ]モードになってしまっているため。[英]モードにすればきちんと半角スペースが入力できるが、FEPのオフと同時に[英]モードにするのが難しい。また、仮にそれができても、[英]モードにすると本当にFEPがオフになってしまうため、今度はCtrl+Spaceでの再起動ができなくなる。Ctrl +`が必要になる。それでは意味がない。

結局、ここが最大のネックとなり、起動トグルの変更は断念。ただし、Future Wave Editorのようなアプリケーションでは、独自のキーアサイン機能を持っているので、Ctrl+Spaceに「本当の」起動トグルを割り当てることも可能。OS/2ネイティブでの長文入力はほとんどFuture Wave Editorを使っているので、Future Wave Editorで可能ならばよしとする。ただ、他のPMアプリケーションやコマンドラインではどうにもならない。

■入力モードが勝手にカタカナに変わる

文字入力の最中に、入力モードが勝手にカタカナモードに切り変わってしまうことがある。これは101キーボードで顕著。おそらく、原因は[無変換]キーのエミュレーション。101では日本語入力用のいくつかのキーが欠落しているため、別のキーのコンビネーションでエミュレートしているが、[無変換]は「左Shiftの押し離し」という、非常に危なっかしいもの。しかも、WX3ではこの[無変換]に「かなトグル」が割り当てられている。バシバシ入力していれば勝手にカタカナ入力モードに切り替えられるのも道理。[無変換]キーのエミュレーション自体を無効にする方法はないので、WX3のキー・カスタマイズで、[無変換]を「無効」に割り当てる。

また、次のキー・コンビネーションも注意。

  Shift+CapsLock 英数
Ctrl+CapsLock ひらがな
Alt+CapsLock カタカナ

CapsLockに関しては、WX3のキー・アサインでの変更は不可能なようなので、どうしても気になるようなら、mykbdのようなフリーのドライバを使って、スキャンコードを他のキーと交換してしまうとよい。ちなみに、キーのエミュレーションやスキャンコードの一覧は、オンラインヘルプの「日本語版ご使用の手引き」に書いてある。う〜ん、これは褒めてつかわす。

なお、[Ctrl+P]や[Ctrl+O]を削除しておくことを推奨。このあたりも入力モードが勝手に切り替わる原因になる。

■FEPの切り替え

これは試行錯誤の途中で気が付いたことなのだが、Warp 4.52ではキー操作で複数のFEPがの切り替えられるようになっている。Ctrl+Spaceへの割り付けもOK。だから、「かな漢字変換なし」とWX3を切り替えることで、疑似的にFEPの起動トグルにならないか、と思ったんだが……そう、FEPを切り替えることと起動することはまったく別の話、根本的に間違い。

■[かな漢字変換]のINIファイル

でも、副産物もあった。Warp 4.52でFEPを使うには、連文節かな漢字変換か、Writing Heads/2(WH2)のいずれかをインストールしなければならない。そうすると、たとえばWH2、WX3、なしの3つの設定を切り替えることになる。私がやりたかったのは、WX3となしの二つを切り替えることだったので、何とかWH2だけを削除できないか…と考えてみた。Warp 4.52ではWH2とシステムを融合してしまっているので、IMESETUP.CMDでの削除はできないようだ。かと言って、プログラムの削除で消すとFEP全体が消えてしまう……のかどうかわからんが、どうも上手くない。

で、個別にWH2だけ葬り去れないかと思っていろいろ調べたところ、D:\OS2\OS2IM.INIというファイルに[かな漢字変換]の設定が書き込まれていることがわかった(バイナリファイル)。FEPのリストはたぶん、末尾部分にあるデータで、各FEPのデータはA4 03から始まっているようだ。A4 03つまり、03A4は932という日本語のcode pageを表している。また、項目の終わりは00 00でなくてはならないだろう(こっちはあんまり確信がない)。

と、まあ見当を付けたんだが、ところが、それだけではどうも上手くないようで、単純に書き換えるとけっこうシステムハングする。基本的に、A4 03から始まる「かな漢字変換なし」の項目をブロックコピーして、WH2の上にペーストしてみたんだが…。で、ごちゃごちゃやっていたら、偶然WH2が消えてくれた。全然参考にならん(^_^; 削除・再起動・再インストールなどのタイミングの問題かなあ…。少なくとも、現在の私のデスクトップでは、「なし」とWX3だけになっている。

■NPSWPSのキーアサイン変更機能

これも忘れちゃいけない。結論から言うと、FEPの起動トグルには使えなかったけど、けっこう使える。Eエディタでもダイヤモンドカーソルくらいは使えるようになる。それはそれでありがたい。そうそう、Mozillaの入力フィールドでもCtrl+Hが効いた、これは真面目にありがたい。ポイントは、キーコンビネーションの+と−の違いね。たとえば、
c+h c-backspace
はCtrl+HをBackSpaceに変更する。c+hがCtrl+Hを意味するのはすぐ判るが、backspaceの前の「c-」は何? ここが律義なところで、Ctrlを押したままHを押しているわけで、そのキーが即座にBackSpaceに変換されると、BackSpaceのキーコードが発生したときもCtrlキーは押されていて、つまり、Ctrl+BackSpaceになっちゃう。この余分なCtrlを取るために、わざわざ「c-」を付けているのである。ああ、自分でも何を書いているのかわからなくなってきた。

■プログラマブルキーボードの可能性

たぶん、最終的にはここに行き着くだろう。「極」のメーカーさんに問い合わせたら、キー配置を変更するものだから、たとえばCtrl+HをBackSpaceに変更するというように、複数キーを別キーにアサインはできないとのこと。しかし、FnキーをCtrlキーの代りに使えば、疑似的に同等なことができるそうだ。極のFnキーはShiftやCtrlのような併用キーではなく、レイアウトそのものを切り替えるものらしい。つまり、Fnを押したときには、Hキーの位置にBackSpaceが来るようにすればよいようだ。

ただ、我が家にはマシンが複数あるし、ノートPCもある。特定のキーボードに依存した環境作りも問題だとは思う。それに、2ストロークキーの問題もあるしねえ……たとえば、前述のような割り当てをすると、Ctrl+K-Hは強制的にCtrl(Fn)+K-BackSpaceに変換されてしまうわけで、Sibylのエディタでは厳しいなあ。

【逆襲のOS/2目次】 【ホーム】