Kondara MNU/LinuxやVine Linuxといった最近の日本語対応ディストリビューションでは、 Wnn、Cannaを問わず、個人で特に設定することなくkinput2による日本語入力が可能になっています。 ですので、以下の説明はやや時代遅れの内容となっていますが(2001/02/26現在)、 参考のため、作成時の内容のまま載せます。
こうした便利な環境の構築をしていただいたディストリビューション開発者の方々に感謝いたします。
/bin/vi
は日本語に対応していない場合がありますので、
日本語の文書を入力する場合は、マルチバイト対応vim
、nvi
、jvim
、
jelvis
といった日本語入力に対応したviクローンを使う必要があります。
viによる日本語入力を常用する場合は、 これらのコマンドを"vi"という名前で起動できるように、 コマンド名の別名置換の設定をするのが便利です。
以下はjvimが/usr/local/bin/にある場合の例です。
ホームディレクトリの.bashrc
に設定を書き加えます。
# cd # vi .bashrc (以下の設定をファイルの後ろの方に追加して保存終了します) alias vi='/usr/local/bin/jvim' # source .bashrc
ホームディレクトリの.cshrc
に設定を書き加えます。
% cd % vi .cshrc (以下の設定をファイルの後ろの方に追加して保存終了します) alias vi '/usr/local/bin/jvim' % source .cshrc
emacsでは、cannaやWnnの日本語変換サーバと直接やりとりして日本語変換処理を行ないますが、 viでは私の知る範囲で5つの方法があります。
最初の3つはX環境でしか使えませんが、 後の2つはkonというコンソールを日本語化するソフトを動かせば、 コンソール上でも使えるはずです。
これらの方法それぞれについての解説は、 viの解説を趣旨とする本文書の範囲を越えてしまうのでここでは説明しません、 と言いたいところですが、それでは困ってしまう方もいらっしゃいますので、 ここでは、私が日頃使っている Wnn4.2(Wnn6)+kinput2 による日本語入力についてのみ簡単に解説します。
日本語変換処理をしてくれる辞書の機能を持つのがこれです。 Wnnの場合、jserverというプログラムがこれを担当しています。
例えば以下のようにjserverのプロセスが表示されれば、 jserverは動いています(これはWnn4.2のインストールしてある私のマシンの例です)。
Wnn4.2は今は、FreeWnnという名前になっています。
#ps ax | grep jserver 140 ? S 0:23 /usr/local/bin/Wnn4/jserver #
上の例のようにjserverのプロセスが表示されなかった場合、 まずは手動で起動しましょう。
# which jserver (←jserverの所在確認) /usr/local/bin/Wnn4/jserver # /usr/local/bin/Wnn4/jserver (←jserverの起動) # ps ax | grep jserver (←jserverの起動確認) 12345 ? S 0:23 /usr/local/bin/Wnn4/jserver #
.Xdefaults
の編集次に、kinput2をX環境およびviで使うための設定を準備します。
具体的には、各ユーザーのホームディレクトリにある.Xdefaults
に設定を追加します。
この設定は.Xdefaults
の最後に追加した方が間違いがないと思います。
この作業はもちろん(?)viで行なって下さい(笑)。
以下に私の.Xdefaults
のリソース設定例を示します。
特に重要なのは、VT100
云々のところで、
これがないとktermからkinput2を呼び出すことができませんので、
viでもkinput2が使えなくなってしまいます。
!! !! setup for jserver and Wnn !! *CcWnn.jserver: localhost *CcWnn.wnnEnvrc: /home/mkhatto/.Wnn4/wnnenvrc *CcWnn.ccdef: /home/mkhatto/.Wnn4/myccdef !! !! setup for kinput2 !! *VT100*translations: \ #override Shift<Key>space: \ begin-conversion(JAPANESE_CONVERSION) !! Kinput2.mappedWhenManaged: false Kinput2.width: 1 Kinput2.height: 1 Kinput2*ConversionStartKeys: Shift<Key>space Kinput2*OverTheSpotConversion.modeLocation: bottomleft !! *KinputProtocol.BackwardCompatible: true *KinputProtocol.XlcConversionStartKey: Shift<Key>space !! !!
X環境でviを使って日本語入力する場合、 viを起動するターミナルが日本語に対応していなければなりません。 Linuxの場合、ktermやrxvtがこれにあたります。xtermは日本語に対応していません。
kterm等から、次のように入力して下さい。 特に問題がなければ、寡黙に起動されます。
# /usr/X11R6/bin/kinput2 -jserver localhost & #
警告メッセージが出てkinput2がうまく起動されない場合の多くは、 Wnn(jserver)の設定がうまくいっていない場合です。 日本語環境に対応したディストリビューションで、 Wnnを正常にインストールしてあれば、 こうした問題はほとんど発生しないはずですが、もし問題が発生した場合は、 Wnn関係のパッケージを再インストールするとよいでしょう。
先ほど説明した.Xdefaults
のリソース設定の中に実は起動の方法が書いてあります。
!! !! setup for kinput2 !! *VT100*translations: \ #override Shift<Key>space: \ begin-conversion(JAPANESE_CONVERSION) !!
そうです、[SHIFT]+[SPACE]
のキー操作で、
kinput2による変換開始を行なうことができます。
このキー設定を変えれば任意のキー操作により変換の開始を行なうことができます。
この辺りのことは、『Linuxを256倍使うための本』(ASCII)に詳しく出ています。 よろしかったら御一読下さい。
defaultのキー操作は、/usr/lib/X11/ccdef/rule.func
に書かれています。以下にその内容を示します。
# conversion function key bindings # function key bindings "" '^J' "" convert "" Kanji "" convert "" '^C' "" convert-s "" '^G' "" unconvert "" '^F' "" forward "" '^B' "" backward "" '^N' "" next "" mod1-n "" next-s "" '^P' "" previous "" mod1-p "" previous-s "" Right "" forward "" Left "" backward "" Down "" next "" Up "" previous "" '^A' "" move-top "" '^E' "" move-bottom "" shift-Right "" expand "" shift-Left "" shrink "" '^L' "" fix "" '^U' "" clear "" '^M' "" carriage-return "" '^I' "^I" fix "" '^H' "" backspace "" Delete "" delete "" F1 "" to-katakana "" mod1-1 "" to-katakana "" F2 "" to-hiragana "" mod1-2 "" to-hiragana "" F3 "" to-hankaku "" mod1-3 "" to-hankaku "" F4 "" to-zenkaku "" mod1-4 "" to-zenkaku "" shift-Escape "" symbol-input "" @keypad "&" "" @printable "&"
^C([Ctrl]+C)
で変換し、
^L([Ctrl]+L)
で決定するようになっています。
これを変更したい場合は、次のようにします。
# mkdir /home/hoge/Wnn4 # cp /usr/lib/X11/ccdef/ccdef Wnn4 # cp /usr/lib/X11/ccdef/rule.func Wnn4 # cd Wnn4 # chmod u+w ccdef # chmod u+w rule.func # vi ccdef (ccdefを変更) ..................... ### もしあなたがたまごのキーバインディングに慣れているならば ### 'rule.func' の代わりに 'rule.eggfunc' をインクルードして下さい # include 'rule.func' include '/home/hoge/Wnn4/rule.func' ..................... # vi rule.func (rule.funcをお好みのキー設定に変更) # kinput2 -jserver localhost -ccdef /home/hoge/Wnn4/ccdef & (自分の設定でkinput2を起動する)
これで、自分の設定したキー設定でkinput2を起動することができます。