次のページ 前のページ 目次へ

8. viによる日本語入力(6th Step)

8.1 はじめに

Kondara MNU/LinuxやVine Linuxといった最近の日本語対応ディストリビューションでは、 Wnn、Cannaを問わず、個人で特に設定することなくkinput2による日本語入力が可能になっています。 ですので、以下の説明はやや時代遅れの内容となっていますが(2001/02/26現在)、 参考のため、作成時の内容のまま載せます。

こうした便利な環境の構築をしていただいたディストリビューション開発者の方々に感謝いたします。

8.2 日本語対応viのための環境設定の方法

/bin/viは日本語に対応していない場合がありますので、 日本語の文書を入力する場合は、マルチバイト対応vimnvijvimjelvisといった日本語入力に対応したviクローンを使う必要があります。

viによる日本語入力を常用する場合は、 これらのコマンドを"vi"という名前で起動できるように、 コマンド名の別名置換の設定をするのが便利です。

以下はjvimが/usr/local/bin/にある場合の例です。

bashを使っている場合

ホームディレクトリの.bashrcに設定を書き加えます。

      # cd
      # vi  .bashrc
       (以下の設定をファイルの後ろの方に追加して保存終了します)
      alias vi='/usr/local/bin/jvim'
      # source  .bashrc
    

csh,tcshを使っている場合

ホームディレクトリの.cshrcに設定を書き加えます。

      % cd
      % vi .cshrc
       (以下の設定をファイルの後ろの方に追加して保存終了します)
      alias vi '/usr/local/bin/jvim'
      % source  .cshrc
    

8.3 日本語変換の方法

emacsでは、cannaやWnnの日本語変換サーバと直接やりとりして日本語変換処理を行ないますが、 viでは私の知る範囲で5つの方法があります。

最初の3つはX環境でしか使えませんが、 後の2つはkonというコンソールを日本語化するソフトを動かせば、 コンソール上でも使えるはずです。

これらの方法それぞれについての解説は、 viの解説を趣旨とする本文書の範囲を越えてしまうのでここでは説明しません、 と言いたいところですが、それでは困ってしまう方もいらっしゃいますので、 ここでは、私が日頃使っている Wnn4.2(Wnn6)+kinput2 による日本語入力についてのみ簡単に解説します。

日本語変換辞書サーバ(jserver)の起動

日本語変換処理をしてくれる辞書の機能を持つのがこれです。 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
    !!
    !!
  

viを起動するターミナル

X環境でviを使って日本語入力する場合、 viを起動するターミナルが日本語に対応していなければなりません。 Linuxの場合、ktermやrxvtがこれにあたります。xtermは日本語に対応していません。

kinput2の起動

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を起動することができます。


次のページ 前のページ 目次へ