FreeBSD QandA 359

FreeBSD QandA

Q. kterm 上のコマンドプロンプトに日本語を入力すると化けてしまいます。

A. まず、[管理番号 358] および [管理番号 360] を参照してください。

   kterm(1) の中では、通常ユーザからのコマンド入力を処理するプログラム 
   shell (シェル) が走っています。高機能 shell (tcsh, zsh, bash) は、
   その編集機能のための入力と日本語文字入力とを区別できないので、これら
   に日本語を入力したいときはしかるべき設定をしなければなりません。また、
   現状では両者を完全に両立するのは難しいようです。

   1. tcsh (ports/shells/tcsh), ja-tcsh (ports/japanese/tcsh),
      4.1-RELEASE 以降では csh(1) (/bin/csh) は tcsh のハードリンク。

      コンパイル時に漢字サポートを有効にしたものであれば、
         % set dspmbyte=euc
      とすれば日本語が入力できると思います。漢字コードについては `euc' 
      と `sjis' をサポートしています。漢字サポートが有効かどうかは、
      シェル変数 version に `kan' 及び `dspm' を含むかどうかで判断でき
      ますので、もしこれが無効になっている場合、tcsh をコンパイル仕直す
      必要があります。
         % echo $version
         tcsh 6.09.01 (Astron) 2000-01-14 (i386-intel-FreeBSD) 
                options 8b,nls,dl,al,kan,sm,rh,color,dspm
                                     ^^^             ^^^^
      また、シェル変数 nokanji が設定されていないことも条件です。
      これでも日本語を通さないようなら stty(1) で 8bit を通すように
      設定してみてください。
         % stty cs8 -istrip -parenb

   2. zsh (ports/shells/zsh), (ports/shells/zsh-devel)
      デフォルトで EUC なら入力できます。
      zsh-3.1.6           The Z shell (development version)
      というバージョンで、一応編集もできています (ja-rxvt-2.7.2 上で確認)。
      JIS X0208 な文字を一文字と認識してくれないので、そこに気を使う必要は
      ありますが…。

   3. bash 1.x (ports/shells/bash1), bash 2.x (ports/shells/bash2)
      ~/.inputrc に以下の記述を加えておけば EUC を扱えます。
           set convert-meta off
           set meta-flag on
           set output-meta on
      また非公式ですが、日本語パッチを適用することで、上記の設定なしに
      日本語の行編集も行なえるようです。

同一グループへのリンク

グループ名: kterm


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