PuTTY + screen で日本語入力を可能にする

2008-08-09 00:09:41 | | このエントリーを含むはてなブックマーク | Tag: linux 日本語 生活 設定

デフォルトのままでは日本語入力をすると文字化けてしまう。

PuTTY 編

言わずもがなことですが、言語設定をしましょう。私の環境は UTF-8 なので、かつ日本語が通る必要があるので「UTF-8 (CJK)」にしておきます。

PuTTY lang setting

PuTTY の言語設定

ターミナル編

続いてターミナルの設定を行う。私の環境 (Debian etch) では大丈夫でしたが、以下のコマンドを実行し、文字の 8 ビット目が正しく入力できるようにする。

8 ビット文字を入力できるようにする

% stty pass8

設定状況は -a オプションで見ることができる。このとき -parenb -istrip cs8 が含まれていれば良い。

stty -a したところ

% stty -a
speed 38400 baud; rows 50; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

この段階で、ターミナル上から日本語文字が入力できるはずである。仮に cat > test とかやって日本語が正しく入力でき、更に入力した日本語が正しく表示できるか確かめておく。

日本語入力の確認

% cat > test   # 入力を終わらせるときは Ctrl-D
日本語OK
% cat test
日本語OK

設定が必要だった環境では stty pass8 が毎回必要になってしまう。これでは面倒なので、シェルの .profile*1 に記述しておくと良い。

screen 編

上でも書いたとおり、ターミナルは 7 ビットしか通さないように設定してあるものが多く、screen も同様である。つまるところ、screen の設定を変更することで 8 ビット文字を正しく入力すれば良いのである。

その設定とは defc1 off である。これを .screenrc 辺りに書き加えて screen を再起動すれば良い。

.screenrc に加える 1 行

defc1 off

因みに再起動できないような screen は [cmd] : defc1 off と、全てのウィンドウで [cmd] : c1 off を行えば良い*2

因みに c1 の設定を切替えて試したスクリーンキャプチャは以下の通り。

Japanese over screen

defc1 の設定による違い

そんなわけで、無事にリモートホスト上の vim に日本語入力できるようになりました。

This article is modified at 2008-08-09 00:17:35.

  • 注1: zsh は .zprofile、csh は .login
  • 注2: [cmd] は screen のエスケープキー。デフォルトでは Ctrl-A であり、好みで Ctrl-Z や Ctrl-T になっているはず。

Related Entries

There is not related articles.

Trackbacks

Trackback URI: http://blog.c--v.net/trackback/2008/08/09/1

There is no trackback.

Comments

There is no comment.

Name
URI (Homepage or Email)
Body