lv と GNU screen の相性 (terminfo?)

これも何年も疑問だったんだが... uxterm または mlterm を立ち上げた中で,

$ echo -e 'a\nb\nc' > abc.txt
$ date
2011年  3月  6日 日曜日 09:42:09 JST
$ less abc.txt
$ lv abc.txt
$ screen
$ date
2011年  3月  6日 日曜日 09:42:23 JST
$ less abc.txt
$ lv abc.txt

終了後の画面の状態が明らかに違うよね.lv は vi のように画面を埋め尽し,末尾に ~ を並べるスタイルなんだが,GNU screen 内で使うと終了後に実行前まで見えてた行が復帰してこないので不便.GNU screen 内で(普段が TERM=screen なのを) export TERM=xterm に変えても駄目だった.
こういうのってどうやって調べるのが効率よいのか... ncurses の resetty(3) に関係ありそうな気がしてる.script(1) で記録してみたが,(当然予想されるように)エスケープ・シーケンス読むのはめんどいですね...
以下のようにセットアップするとシェルのコマンドプロンプトがシンプルになって typescript ファイルを解析しやすい:

$ echo 'PS1=$' > /tmp/dot.profile
$ clear; ENV=/tmp/dot.profile script -c dash
$ mv typescript typescript.mlterm.plain
$ clear; ENV=/tmp/dot.profile script -c "screen -s dash -c /dev/null"
$ mv typescript typescript.mlterm.screen

あー,GNU screen でなく tmux だと,ちゃんと復帰しますね... (script -c "tmux -c dash -f /dev/null") しかし tmux は,使える環境がまだ比較的少ないからな...