FreeBSD QandA 360

FreeBSD QandA

Q. kinput2 または skkinput で kterm に日本語入力するには?

A. kinput2(1) 及び skkinput(1) は、以下の多国語変換プロトコルをサポートし
   ています。kinput2 の man ページには他にもいくつか書いてありますが、実際
   問題として現状では以下の三種類、特に kinput2 プロトコルと XIM プロトコ
   ルの、どちらかが使えれば問題になる事は少ないでしょう。

   a) Kinput/Kinput2 Protocol
     早い話が kinput2 オリジナルのプロトコルで、kinput2 の前身である 
     kinput がサポートしていた Kinput Protocol と、現在の kinput2 で採用
     された Kinput2 Protocol があります。kinput2 及び skkinput 自体は
     両方のプロトコルをサポートしています。

   b) X Input Method Protocol
     X11R6 標準のプロトコルで、省略して XIM とも呼ばれます。また、この
     プロトコルでは複数種の変換サーバを同時に実行することができ、多国語を
     取り扱うことができます。

   c) Ximp Protocol
     X11R5 以前のプロトコルで、古いアプリケーションと X サーバの組み合わ
     せで使う場合以外では、利用する機会はないでしょう。

   kinput2 及び skkinput 共に、コマンド起動時のオプション指定で、上記の
   プロトコル毎に有効・無効を選択できます。もちろん前提条件として、これら
   のプロトコルをコンパイル時に組み込む必要があります。オプション名の前に 
   `-' (ハイフン) を付けると有効に、`+' (プラス) を付けると無効化されます。
   特に指定しない限り三種類とも有効です。

     -/+kinput   Kinput/Kinput2 Protocol
     -/+xim      XIM Protocol
     -/+ximp     Ximp Protocol

   具体的には、Ximp を無効にした kinput2 の起動では、
     % kinput2 +ximp &
   また、skkinput で XIM のみ有効にしたければ、
     % skkinput +kinput -xim +ximp &
   などとすることができます。

   次にこれらの変換サーバを利用するクライアント側の設定ですが、主に X リソー
   スと環境変数を利用します。詳しくは個々のアプリケーションのマニュアルを
   参照して頂くとして、ここでは kterm(1) を具体例として説明します。
   現状の kterm version 6.2.0 では kinput2 プロトコルと XIM プロトコルを
   サポートしています。コンパイル時に有効にされているかどうかは、kterm の 
   -version オプションで確認できます。

     % kterm -version
     kterm: version 6.2.0
     options: [KTERM_MBCS] [KTERM_MBCC] [KTERM_KANJIMODE] [KTERM_XIM]
              [KTERM_KINPUT2] [KTERM_COLOR] [KTERM_NOTEK] [STATUSLINE] [KEEPALIVE]
              [WALLPAPER]

   1. Kinput2 プロトコル

   kterm はデフォルトでは kinput2 プロトコルを利用します。kinput2 または 
   skkinput のどちらかを事前に起動しておき、~/.Xresourses や ~/.Xdefaults 
   から kterm のリソース translations を探し、そこに以下の1行を挿入します。

             Shift<Key>space: begin-conversion(_JAPANESE_CONVERSION)

   i) 既にリソース translations が存在する場合
     KTerm*VT100*translations: #override \
             Shift<Key>space: begin-conversion(_JAPANESE_CONVERSION)\n\
             <Btn4Down>: scroll-back(2)\n\
             <Btn5Down>: scroll-forw(2)

   ii) リソース translations が存在しない場合
     KTerm*VT100*translations: #override \
             Shift<Key>space: begin-conversion(_JAPANESE_CONVERSION)

   リソースファイルを更新したら、
     % xrdb -load ~/.Xresources
   などとして、kterm を新たに起動します。この状態で Shift + Space キーを
   押せば変換モードに入るはずです。またトグル操作で変換モードから抜けます。

   2. XIM プロトコル

   kterm で XIM プロトコルを用いた変換を行なうには、kinput2 や skkinput を
   -xim オプションを付けて起動するようにし、

     % env XMODIFIERS="@im=kinput2"  kterm -xim
     % env XMODIFIERS="@im=skkinput" kterm -xim

   とすることで利用可能です。環境変数 XMODIFIERS を常に設定しておくには、
   csh(1) 系なら ~/.cshrc に
       setenv XMODIFIERS "@im=kinput2"
   sh(1) 系なら ~/.profile に
       export XMODIFIERS="@im=kinput2"
   を書き加えれば良いでしょう。

   もし、変換時の入力スタイルを指定する必要があれば、リソース preeditType 
   に OverTheSpot (いわゆるその場変換) または Root (別ウィンドウで変換操作)
   のどちらかを指定します。例えば、kterm で kinput2 の Root スタイルを用い
   るには、以下の2行を X リソースに追加すれば良いでしょう。

       KTerm*inputMethod: kinput2
       KTerm*preeditType: Root

   変換モードの切り換えキーは、Shift + Space のトグル操作がデフォルトです。
   また、kterm の -xim オプションはリソースに次のようにも記述できます。

       KTerm*openIm: true

同一グループへのリンク

グループ名: kinput2


間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。