cygtermで日本語入力ができない場合の対処

 WindowsXP + Cygwin1.7.x + teraterm(cygterm) を準備する。
ここで SJIS を使う場合、
/etc/profile で、環境変数 LANG をSJISに設定し、viの設定もSJISにあわせると、viで日本語の読み書きができる。
lsでも日本語が表示できる。

しかし、コマンドラインで日本語が入力できず、日本語をパスに含むディレクトリに移動できない。
cygtermを使わない、素のcygwinシェルであれば日本語のパスも問題なく扱える。

延べ2,3時間は悩んだが、解決できなかった。
最後に試した方法はシンボリックリンクを張ること。
しかし、シェル上でlnコマンドを使ってもエラーになるため、
以下のようなシェルスクリプトを(SJISで)作って実行した。

$ vi link.sh

ln -s "/cygdrive/c/あめ/" rain

$ sh link.sh

$ cd rain


utf-8 であれば、teratermでも日本語入力が可能なので、なかなかに混乱させられましたが、とりあえず快適な作業環境が作れたようです。


ああ、疲れた……