Cygwinを日本語化するためのプチTips

同僚から『Cygtermは便利だけど日本語ファイル名が文字化けしてしまう・・・』と相談されたので、ちょっと調べてみました。

どうもCygwinは一部日本語のメッセージカタログが提供されているのですが、この時の文字コードEUCしかないので、SJISをメインで利用したいならメッセージカタログをSJISへ以下のように変換すると良いそうです。

(1) SJIS日本語メッセージカタログを作成する

$ tar zxvf mo-euc2sjis.tgz
  • 展開されたディレクトリへ移動し、変換シェルを実行する(これだけ!)
$ cd mo-euc2sjis
$ ./sjismo.sh
LANG=ja_JP.SJIS;
export LANG
setenv LANG ja_JP.SJIS
  • わざと引数なしで『awk』を実行してみるとエラーが日本語で表示される
使い方: awk [POSIX または GNU 形式オプション] -f プログラムファイル [--] 入力ファイル …
使い方: awk [POSIX または GNU 形式オプション] [--] 'プログラム' 入力ファイル …
POSIX オプション:               GNU 長形式オプション
        -f プログラムファイル           --file=プログラムファイル
        -F フィールドセパレータ                 --field-separator=フィールドセパレータ
        -v 変数=代入値          --assign=変数=代入値
        -m[fr] 数値
        -W compat               --compat
        -W copyleft             --copyleft
        -W copyright            --copyright
        -W dump-variables[=ファイル]    --dump-variables[=ファイル]
        -W exec=ファイル                --exec=ファイル
        -W gen-po               --gen-po
        -W help                 --help
        -W lint[=fatal]         --lint[=fatal]
        -W lint-old             --lint-old
        -W non-decimal-data     --non-decimal-data
        -W profile[=ファイル]   --profile[=ファイル]
        -W posix                --posix
        -W re-interval          --re-interval
        -W source=プログラム文  --source=プログラム文
        -W traditional          --traditional
        -W usage                --usage
        -W version              --version

バグを報告するには、`gawk.info(英文)' の `Bugs' ノードを
参照してください。 印刷されたマニュアルで対応するセクション
は、`Reporting Problems and Bugs' です。

gawk は、パターンを検索、そして処理する言語です。
デフォルト設定では、標準入力を読み込み、標準出力に書き出します。

使用例:
        gawk '{ sum += $1 }; END { print sum }' 入力ファイル
        gawk -F: '{ print $1 }' /etc/passwd


(2) bashで日本語のファイル名をls表示可能にする(元ネタはこちら

  • 以下のオプションでlsコマンドを実行するだけ
ls --show-control-chars


(3) bashコマンドラインから日本語を入力可能にする(元ネタはこちら

  • ホームディレクトリの.inputrcファイルに以下の定義を追加する
set meta-flag on
set convert-meta off
set input-meta on
set output-meta on

何気なく調査し始めたCygwinの日本語化手順ですが、tcshbashなどのコマンドラインから日本語を入力する際に、画面上はマルチバイトとして表示されていますが、入力文字としてはマルチバイトコードとしては認識していないので、まだまだ改善する余地が残っています。

う〜ん、Cygwin・・・、奥が深過ぎ〜。(^-^;