UTF-8環境で GNU Screen の日本語表示が崩れる件
イントロ
Debian lenny の screen は UTF-8環境だと日本語を上手く表示してくれない。問題発覚当初 putty や emacs を疑ったが,こいつらには何の罪も無かったんだ。そう,黒幕は screen だった。ここでの環境は次の通り。
- Debian lenny
- PuTTY 0.60 ごった煮版
- GNU Screen 4.0.3
この問題は Unicode の曖昧な文字幅(East Asian ambiguous char width)に起因するものらしい。大抵のソフトウェアは独自の方法でこの問題を解決していて,具体的に emacs や vim はユーザーがオプションを加えることで UTF-8環境で日本語を正常に表示できる。
screen には GNU Screen - bug #16666 の cjkwidth パッチがあるのだけど,Debian lenny の screen にはこれが当てれられてい無いので UTF-8環境で日本語を正常に表示できない。そのため必要に応じてユーザーがこのパッチを当ててやる必要がある。
screen にパッチ当てる
screen install memo (UNIX)を参考にして:
本家のソースコードを入手:
$wget ftp://ftp.uni-erlangen.de/pub/utilities/screen/screen-4.0.3.tar.gz
それを解凍して,解凍先のフォルダへ移動:
$tar xzf screen-4.0.3.tar.gz $cd screen-4.0.3
参考サイトに従いいくつかのパッチを入手:
$wget ftp://www.dekaino.net/pub/screen/screen-4.0.2-deadlock-patch $wget ftp://www.dekaino.net/pub/screen/screen-4.0.2-hankanacopy-patch $wget ftp://www.dekaino.net/pub/screen/screen-4.0.2-patch-cjkwidth-cvs-2006052001
パッチを当てる(パッチは4.0.2用だけど問題なかった):
$patch < screen-4.0.2-deadlock-patch $patch < screen-4.0.2-hankanacopy-patch $patch < screen-4.0.2-patch-cjkwidth-cvs-2006052001
コンパイルに必要なファイルは apt-get build-dep を使えば簡単に手に入る:
$apt-get build-dep screen
コンパイルして,インストール:
$./configure --enable-colors256 $make $sudo make install