2009/08/28(Fri)
screenの表示が崩れる
fedora11にて.
sudo yum install screen
.screenrcはこんなん(takaてんてーからもらった):
caption always "%{= kw}%-w%{= BW}%n %t%{-}%+w %-= @%H - %LD %d %LM - %c"
GNU screenをインストールして実行してみたら、ステータスラインが表示されない。なぜかと思ったら.screenrcが.screeenrcだったので修正したところまた表示されない。なんでやねんと思いながら確認すると今度は.sceenrcになってた。死にたい。
ちゃんと.screenrcに修正したらびっくりするくらい表示が崩れた。あとで調べたところわかったのだけど、
- 日付表示内の日本語が化ける
- 文字列の長さが1行を溢れて2行になる
- 溢れた部分を最下行に残して、残りは下から2行目に浮かぶ
- 常に表示されるのは最下行だけ
という流れでステータスラインが表示されなかったようす。
そんなこととはつゆ知らず、takaてんてー(なぜか工事中の図書館で騒音に苦しんでいたらしい)と悩みに悩んで、次のような流れに:
- debug onにしてみる
- してみたら「-DEBUGでビルドされてないので無理!」とか言われたのでGNU screen 4.0.3を落としてきて--DDEBUGをつけてビルドしてみる
- が/tmp/debugに吐かれたものを見てもイマイチ意味がわからない(なんかlsの実行結果みたいなものがあった
- tscreen 0.4.9を落としてきてビルドしてみる
文字化けしている?そもそも設定ではステータスラインには:
Friday 28 August
みたいな感じで表示されることを期待しているし、takaてんてーのほうではそのように表示されている...
tnzk: 冷静に考えたらtakaてんてーのだと日付って英語で表示されてて tnzk: 化ける要素ないと思うんだけど opentaka: 普通にLANG=POSIXやからねぇ tnzk: ああ。。。 tnzk: ストイックすぎるw tnzk: 真似できねえw opentaka: wwwww
ためしにLANG=POSIXで起動してみる:
$ LANG=POSIX screen
してみたところ、めちゃめちゃ正常に表示された。
というような経緯で冒頭の問題の原因がはっきりした。消極的に、ステータスラインに日本語を表示しないことで対応することに。
defencoding utf-8 encoding utf-8 utf-8 escape ^]v vbell on vbell_msg "(OxO)" caption always "%{= kw}%-w%{= BW}%n %t%{-}%+w %-= [%t] - @%H - %Y/%m/%d %c:%s"
フォーマット指定子は次のURLから参照できる(一部だけっぽい...
