-
Notifications
You must be signed in to change notification settings - Fork 4
/
README.ja
149 lines (107 loc) · 6.35 KB
/
README.ja
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
cocot - COde COnverter on Tty
Copyright (c) 2002-2017 IWAMURO Motonori All rights reserved.
1 これは何か?
端末とプロセスの間に割り込んで文字コード変換を行うツールです。Cygwin
を含むUNIX互換環境において、sshやtelnetなどとともに利用できます。
(Windowsに附属のtelnetでは使えません)
初期バージョンではCygwin環境限定でしたが、Kazuhiro NISHIYAMAさんの手
により、autotools対応になりました。
なお、実装は詳解UNIXプログラミング・新装版[1]、及びFreeBSDの
script.c[2]を参考にしました。
2 ビルド/インストール
2.1 事前準備
Cygwinの場合、libiconv, libutil(inetutilsに含まれる)を使用しているた
め、事前にこれをインストールしておく必要があります。Cygwin Setupの
Select Package画面で、Category→Devel→libiconvおよびCategory→Net→
inetutilsを選択してインストールしてください。
※Cygwinパッケージの問題で、libiconvに関する環境が壊れている場合があ
るようです。その場合はlibiconvを再インストールしてみてください。
それ以外のOSについては、適宜必要なパッケージをインストールしておいて
ください。(手抜き^^;)
2.2 ビルド/インストール手順
ビルド/インストールの手順は、一般的なautotoolsベースのツールと同様です。
ターミナルエミュレータやプロセスのエンコーディングを変更したい場合は、
--with-default-term-code、--with-default-proc-code を指定してください。
デフォルトはターミナルが UTF-8、プロセスが CP932 となっています。
./configure [--with-default-term-code=CODE] [--with-default-proc-code=CODE]
make
make install
3 環境設定
コマンドプロンプトから利用する場合、リモート環境にcygwinのterminfo情
報をインストールする必要があります。以下にその例を示します。なお、こ
こではsshが利用できることを前提としています。
1) terminfo情報の取得
Windows環境上で以下を実行します。
$ infocmp cygwin > cygwin.terminfo
2) terminfo情報の転送
$ scp cygwin.terminfo [リモートホスト]:/tmp
3) リモート環境にログイン
$ ssh [リモートホスト]
4) リモート環境の設定 (スーパーユーザ権限を得られない場合のみ)
スーパーユーザ権限を得られない場合は事前設定が必要です。設定方法
はお使いのリモート環境に依存すると思われますので、詳細はリモート
環境のterminfoマニュアルページ等をご参照ください。以下ではLinux
(ログインシェルはbash)を想定しています。
$ cd
$ mkdir .terminfo
$ export TERMINFO=$HOME/.terminfo
bashのスタートアップスクリプトにも環境変数TERMINFOの設定を記述し
ておきます。
5) リモート環境にterminfo情報を登録
※スーパーユーザ権限を得ることができる方は、suもしくはsudoを用い
て以下を実行してください。
# tic /tmp/cygwin.terminfo
4 どうやって使うのか?
Cygwinを使っているときに、文字コードがEUC-JPであるホストにログインし
たり、minttyを使ってるときに、文字列をCP932で出力するコマンドを使用す
るときに有用です。
------------------------------------------------------------------------------
iwa@RYPRIM /windows ←Windows上にいる
(528)> \ls *.bmp ←文字コードはUTF-8
winnt.bmp サンタフェ.bmp 青いレース編み 16.bmp
winnt256.bmp シャボン.bmp 大草原の風.bmp
しゃくなげ.bmp フィッシング.bmp 珈琲カップ.bmp
グリーン ストーン.bmp 羽毛.bmp
サポテック織り.bmp 隅田川.bmp
iwa@RYPRIM /windows
(529)> cocot -p EUC-JP ssh lydia ←Linuxにloginしてみた
Linux lydia 2.2.20 #1 Sat Apr 20 11:45:28 EST 2002 i586 unknown
No mail.
Last login: Sat Aug 24 21:11:13 2002 from ryprim.vmi.jp
[iwa@lydia]~(1)$ echo $LANG ←EUC-JP環境
ja_JP.eucJP
[iwa@lydia]~(2)$ date
2002年 8月 24日 土曜日 21:11:14 JST ←文字化けしてません
------------------------------------------------------------------------------
Mac OS X環境では、標準コマンドがパス名などをNFDのUTF-8で出力します。
これを NFC に変換してくれるシェル環境を起動したい場合、
cocot -p UTF-8-MAC -t UTF-8 zsh
とすればよさそうに思えますが、これではキーボードからの入力がNFDに変換
されてプロセスに送られてしまうという問題があります。このような場合は、
以下のようにプロセスの入出力エンコーディングを別々に指定することで対
応できます。
cocot -p UTF-8,UTF-8-MAC -t UTF-8 zsh
オプションは以下の通りです:
-o LOGFILE コード変換前のコマンドの出力を全てファイルに出力します。
-a -oオプション指定時に追記モードにします。
-t TERM_CODE
-t TERM_INPUT_CODE,TERM_OUTPUT_CODE
ターミナルの文字コードを指定します。
デフォルトはUTF-8。(configureオプションで変更可)
-p PROC_CODE
-p PROC_INPUT_CODE,PROC_OUTPUT_CODE
コマンドプロセスの文字コードを指定します。
デフォルトはCP932。(configureオプションで変更可)
-i ISO-2022-JPのエスケープシーケンスを無視します。
-n 無変換モードにします。-oオプションを組み合わせて、script(1)
の代わりに使用します。
-h, --help ヘルプを表示します。
-v, --version バージョンを表示します。
7 ライセンス
修正BSDライセンスとします。(see. COPYING)
8 参考資料
[1] 詳解UNIXプログラミング・新装版
http://www.pearsoned.co.jp/washo/unix/wa_uni12-j.html
[2] FreeBSDのscript.c
http://www.freebsd.org/cgi/cvsweb.cgi/src/usr.bin/script/
[EOF]