(FreeBSD)かなキー入力をするための設定

FreeBSD 7.1を使っていて、どうしても(ローマ字入力でない)かな入力をしたくなったので、設定方法を調べてみた。
以下、キーボードは日本語106キーボードを使用することを前提にする。

●X Windowの設定
まず、デフォルトの設定では、バックスラッシュキー(「ろ」キー)と¥キー(「ー」キー)のkeysymが同じでアプリの設定ではどうしようも無いため、「ろ」キーが"_"になるよう、keysymを変更する。また、Shift+0キーがShift+^キーと同じチルダ記号だと「を」キーとしての設定がうまくいかないことがあるので、Shift+0が"|"になるように変更する。

~/.Xmodmapに以下の2行を加える。

keycode 211 = underscore underscore
keycode 19 = 0 bar kana_WA kana_WO

それをすぐに反映するには、次のコマンドを実行する。

xmodmap ~/.Xmodmap

おかしい時は、xmodmap -pkeとして、現在の状況を確認する。

●Emacs+Anthyの場合
まず、anthy-conf.el(筆者の環境では/usr/local/share/emacs/site-lisp/anthy/にある)の「ろ」「を」「ー」キーの割り当てを変更する。ついでに、Shift+"["、Shift+"]"が「」(かぎ括弧)でなく{}(波括弧)になっているが、「」の方が使う機会が多いので、Shift+"["、Shift+"]"、を「」に割り当てる。


("_" . "ろ")
("|" . "を")
;;("_" . "ー")は削除
("\\" . "ー")
("{" . "「") ("}" . "」")

ひらがな用とカタカナ用の設定があるので、カタカナ用の設定も同じように変更する。

次に、~/.emacs.elに次の3行を加えるか、Emacs上でこれを実行する。

(load-library "anthy")
(anthy-kana-map-mode)
(setq default-input-method "japanese-anthy")

これでC-\でかな入力ができるようになる。

日本語入力切り替えキーとしてC-\が使えない時は、Canna流にC-oを割り当てる。

(global-set-key "\C-o" 'anthy-mode)

●Emacs+Cannaの場合
(1) default.canna(筆者の環境では/usr/local/share/canna/)を~/.cannaにコピー
(2) ~/.cannaの"default.cbp"を"kana.cbp"に変更
(3) ~/.cannaのdefsymbolの行を全てコメントアウトし、以下を追加

(defsymbol
?_ "ろ" "ろ" )

(4) ~/.emacs.elに(canna)を加えて、emcwsコマンドでEmacsを起動
または、
(4') emcwsコマンドでEmacsを起動し、M-x canna
これでC-oでかな入力ができるようになる。

●jvim+Cannaの場合
jvimは、DIRECT_CANNAを有効にしたもの(ONEWを無効にしたもの)をインストールすること。
packagesなら ja-jvim-direct_canna-3.0.j2.1a_2 など、"direct_canna"が付いたものを選択する。portsならjvimのmake configでDIRECT_CANNAを選んでからコンパイルする。

上記のEmacs+Cannaの場合と同様に~/.cannaを設定してjvimを起動すると、インサートモードにてC-\でかな入力ができるようになる。

以上、FreeBSDには限らない設定だとは思うが、他の環境では試していない。


ONEWが有効になっているjvimでも、次のようにしてkana.cbpを作り変えるとCannaモードでかな入力ができるようになるが、"q"キーが使えない、"2@"や"2["が「ぶ」「ぷ」に割り当てられないなどの制限があるため、便利な環境にはならない。

(1) /usr/local/share/canna/sample/src/kana.ctdをローカルにコピー
(2) 全ての"\0"を削除
(3) "か@ が"を"t@ が"に変える要領で、濁点や半濁点付き文字のキーバインドを変更
(4) mkromdic kana.ctd
(5) できたkana.cbpを/usr/local/share/canna/dic/にコピー
(6) setenv ONEW_CANNA_RKTAB kana.cbp


UNIXの日本語入力は設定が難しいことが多いと思う。何か思い通りにいかない事があると、一々設定方法を調べるのが難しいし、その前に何が悪いのかを調べるのが困難である場合も少なくない。フォントや文字コードが適切でない場合は見ればわかるが、それでも修復するにはどこから手を付けるかが難しい。他にかな漢変換サーバーやFEPの設定やキーコードに問題がある場合もあるし、X Windowを使ってればXIMやkeysymに問題があることもある。それに加えて、アプリ個別の設定に問題があることもあるのである。まともに動いてる状態の方が奇跡だと思う。

筆者の経験では、過去によくkinput2を使っていたが、これの設定には泣かされてきた。まずktermやrxvtといったアプリ毎にkinput2を起動するための設定が違うし、X resourcesを同じように設定してもkinput2が起動しない場合もある。kinput2が起動しても、kinput2からrxvtに入力される文字コードが思い通りに行かなかったこともあったし、何も入力されなかったこともあった。コンパイル方法が誤っていたのが原因だったこともあったし、結局解決できなかったことも何度かあった。いずれも、原因を調査する方法がわからず、常に試行錯誤だった。
日本語入力とは違うが、あるパソコンでだけVine LinuxのGNOMEデスクトップの日本語文字が出なくて、どうしても解決できなかったこともあった。ロケールの設定とフォントパスの設定は合っていたように見えたが、それが合っていることを確認する方法がわからなかったし、他に原因があったとすると、それを探す方法がわからなかった。

今、emcwsで起動したEmacsのフェンスモード(漢字変換する前のひらがな入力状態)でBackspaceキーが効かなくて、何が悪いのか想像ができない。

とにかく、UNIXの日本語入力で何か少しでも問題が発生すると、うんざりである。