いけてない Cygwin 1.7.1

気がついたら Cygwin が 1.7.1 という新しい version になってたんですが、こいつがかなりいけてない。利用者を無視した独善的な「改良」を一方的に押しつけた結果、実用的に使えない代物になり下がってしまいました。もう release から一ヶ月以上経つと言うのに、誰も文句言わないってのはそれだけ使い倒されてないってことなのかしらん。
一つ目は勝手に termcap library (libtermcap) を撤廃しちゃったこと。まぁ最近の主流は terminfo かも知れないので、BSD なおじさん以外は policy 的には容認出来るとは思いますが、往年の UNIX な source が幾つか compile 出来なくなって嘆いている声も無くはない筈。まー、面倒なんでメンテしてられっかという気持ちは判るんですが、そもそも Cygwin ってそういう UNIX な source を Windows 上で compile したいってところから始まってるんじゃないのかしらん?それとも「UNIX = Linux」という考え違いをしてるのかなー。
二つ目は UTF-8 化です。既に Windows NT architecture は内部コードに UCS2 を使ってるんで、Cygwin も親和性を高めるために Unicode をって気持ちは判ります。でも、そういう運用が可能かどうか、もう少し調べてから移行すべきだったかと。最初は「設定をいじると UTF-8」にしておいて、暫く様子を見てから「標準が UTF-8」にすべきだったと思います。いきなりだったんで色々不都合出てますね。
特に CJK 圏ではまだ Shift_JIS が幅を効かせてたりして、text file の中身は Shift_JIS の方が多いと思います。で、Cygwinvim で開こうとすると UTF-8 じゃないので化け化け。vim って I18N 化してた筈と思って色々 .exrc に書いてみたけど駄目なので「vim --version」とか打ってみると見事に「-iconv」とか言ってきやがります。誰だ、libiconv 抜きの環境で build したのは。
因みに一つ前の古い vim (7.2.148-1) は +iconv なので、setup.exe でその古いのを install すれば vimShift_JIS なファイルも編集出来ます。但し、Linux な人は要注意。Linux の iconv と GNU libiconv では charset 名称の「Shift_JIS」が違うものを指します。GNU libiconv では「\」が 0xa5 に mapping された、そんなんどこで誰が使ってるのか聞いたこともない code 体系なので、当然「\」を含んだ text は編集出来ません。GNU libiconv では「cp932」を使いましょう。vim 的には「japan」が「cp932」の alias になってるのでそっちでも構いません。一応必要な設定を挙げとくとこんな感じ。

set fileencodings=cp932,utf-8,euc-jp,iso-2022-jp,latin1
set fileencoding=cp932
set encoding=utf-8
set termencoding=utf-8

fileencodings の順序は優先順位になってるので、utf-8 を優先させたい人は逆順にしましょう。あと、fileencoding も設定しておくと、空の text file を作成する時にその code が有効になります。これは utf-8 でも構わないと思います。