Cygwinとscreenで行こう!

@ArcCosineさんがCygwin+screen+vimで文字崩れするーとかいってscreenを自前で入れていたので、自分も入れ直してみることにした。


確かにCygwin上のscreenでvimを使うと描画がおかしくなることがあって、自分も以前screenをビルドしなおしてみたりしたんだけど、結局解決できなかったので開き直ってWindowsネイティブ側のgvimを使っている。
Cygwinvim使うと重いし、元々gvimのほうが好きだってのもあるけど。→Cygwin内から外のgvimを使う - ぱせらんメモ

screen開発版を入れる

@ArcCosineさんは4.0.3を入れたみたいだけど、真似してもつまんないので最新版を入れてみることにした。


自分の環境はビルドに必要なツールとかlibncurses-develとかすでに入ってたっぽくて何も引っかからなかったけど、エラーが出る人は色々入れてみて。
configureオプションも--enable-colors256以外はよくわからないけど、Cygwinで関係無さそうなPAM以外は全部入りにしてみた。--prefixはお好みで。

# リポジトリをcloneしてくる
git clone git://git.savannah.gnu.org/screen.git

# パーミッション絡みで動かなかったのでパッチ書いて当てた
cd screen/src
curl -k https://raw.github.com/gist/3401354 | patch

# ビルド&インストール
./autogen.sh
./configure --prefix=/usr/local \
            --enable-colors256 \
            --enable-rxvt-osc \
            --enable-use-locale \
            --enable-telnet
make
make install

普通にビルドしてみたら起動時に"Directory '/tmp/uscreens' must have mode 777"とかいって起動できなかったので、Cygwin版のパッチを真似してそれっぽいところを無効化した。→それっぽいところを無効化するパッチ
自分はNTFS ACLを無効化(noacl)して使っているのでそれがいけないのかも。
screenのススメにあるパッチは取り込まれてるっぽい話だったので当てなかった。ざっとソース見た感じでは反映されてるっぽい。


とりあえずこれで無事に最新版が出来上がったわけだけど、実はウィンドウの終了時に"Utmp slot not found -> not removed"と出る問題が。
これもCygwin版のパッチを探ってみたんだけど、いかんせん全部入りでボリュームがでかすぎてどのへんを取り込めばいいのかわからない。
まぁCygwinだしutmpとか放っておいてもいいかなぁ……とか。だめ?
ちなみに、Cygwinパッチをそのまま取り込めないのはCygwin版が4.0.3だから。

screen関係無かった!?

で、若干問題はあるものの改めて自前でビルドしたscreenが手に入ったわけだけど、描画の乱れ全然直らねぇぇぇぇぇぇぇ!
というか、ググった感じだとこれscreenの問題というよりはcygterm経由でPuTTY使ってるからっぽい?
確かにCygwin bash直だと乱れない。もっと言うとscreen使ってなくてもvimなんかおかしい??