2007年01月19日

Cygwinでも、例のアレ(笑)

Cygwinも立派にLinuxだよなぁと思う今日この頃。
であれば、例のアレを入れないわけにはいきません。(笑)

まず準備。
setup.exeから libncurses-devel を導入しておきます。

そしたらあとは一気にGo!
cd /tmp
wget http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/sl/sl.tar
tar xvf sl.tar
cd sl
make
cp -p sl.exe /usr/local/bin
sl -alF

Enjoy! ;-)
posted by 月水和尚 (とも) at 09:57 | Comment(0) | TrackBack(0) | Cygwin

2007年01月17日

Cygwinの日本語メッセージ文字化け対策

w3mのコンパイルをして気がついたのですが、Cygwinのコマンドたちは日本語メッセージをEUC-JPで出力してくるので、そのまま使用すると激しく文字化けを起こしてしまいます。

対策については、以下のサイトにて完璧なる方法が記載されていました。

日本語メッセージの文字化けに対応する
http://www.sixnine.net/cygwin/cygwin-doc/japo.html

…と、ここで終わってしまってはあまり意味がないので、自分なりのひと工夫。

まずはnkfを導入します。ご紹介の手順どおりCygwin_JEから頂いてきてもいいのですが、ここはひとつ自分でコンパイルすることにします。

nkfの最新版は以下のサイトで入手することが出来ます。

SourceForge.jp: Project Info - nkf Network Kanji Filter
http://sourceforge.jp/projects/nkf/

入手したファイルを /tmp に配置したらコンパイルと導入をします。
(SourceForge.jpだとwgetでファイルを落とせないのが辛いところ)
現行バージョンである2.0.7なら手順は以下のとおりです。
cd /tmp
tar zxvf nkf207.tar.gz
cd nkf207
make
cp -p nkf.exe /usr/bin

そしていよいよメッセージカタログの変換。公開されているシェルを元に、

/usr/share/locale/ja/LC_MESSAGES以外に配置されたファイルへの対応
 (vimw3mのメッセージカタログなど)
・元からShift_JISで作成されたメッセージカタログを変換しない
・強制再作成モードの実装

という修正を施したシェルを作成しました。→ moconv2.sh

使い方は、適当な場所に保存して実行するだけです。
オプションとして "-f" を付けると強制再作成モードになります。

シェルの中で msgfmt msgunfmt find grep awk sed の各コマンドを使用しているいます。コマンドが見つからない場合はエラーが出るので適宜追加してください。(msgfmtmsgunfmtgettext-develパッケージに含まれています)

これで完璧!と思ったら、まだvimのコマンド部分(一番下の行の事ですがこの呼び方で合っているのかな?)の文字化けが直りません。これはメッセージカタログの問題ではない(コマンド部分以外は化けずに日本語が表示される)ので諦めるしかないのかな…と思ったら、ちゃんと解決方法がありました。

Untitled: Cygwinの日本語環境 : vim その1
http://quanta.sppd.ne.jp/blog/archives/000066.html

"encoding"を確認したところ"encoding=latin1"だったので、これを"japan"に変更します。
echo "set encoding=japan" >> ~/.vimrc

これでvimを起動してみると…コマンド部分も日本語表示に!!

完璧です。これで日本語で素敵なCygwinライフが満喫できます。(というかこれをやらないとvimで日本語が扱えないことに気がついていませんでした…。←アホ)

Rue. SATOHさん(@Studio Sixnine.)、quantaさん(@Untitled)の有益な情報に感謝!(ありがとうございます!)

それにシェル作成時にtestコマンドの確認に使わせていただいた以下のサイトにも!

if文とtestコマンド
http://www.geocities.jp/geo_sunisland/if_and_test.html
posted by 月水和尚 (とも) at 18:02 | Comment(6) | TrackBack(1) | Cygwin

Cygwinでもw3m (の最新版!)

どこでもw3mシリーズ…第何弾だ?

今回はCygwin上で最新のw3mを使えるようにします。(Cygwinのパッケージに含まれているのはmixiパッチ等が当たっていない無印の0.5.1なので)

まずは事前準備。コンパイルに必要なパッケージを導入します。
環境により追加しなければならない物はまちまちだと思うのですが、私の場合は、

・automake
・gcc
・make
・openssl-devel


の4つ(とその従属パッケージ)を追加しています。
今後の手順でwgetcvsも使うので、入れてない方は併せて導入してください。

−追記:2007/01/19−
どうやらコンパイル時に nkf msgfmt msgunfmt などを使用するみたいなので、Cygwinの日本語メッセージ文字化け対策を先に実施した方がよいようです。(コンパイルと文字化けは直接関係ありませんが手順の中でこれらのコマンドを入れているため) ただその場合は automake gcc make はそっちで入れないと駄目ですね…鶏と卵だ。(汗)

で、早速コンパイル。
基本的には以前の手順と大きくは変わりません。

最初にGCの導入。現在の最新版は6.8なので以下の手順で。
cd /tmp
wget http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.8.tar.gz
tar zxvf gc6.8.tar.gz
cd gc6.8
./configure
make
make install

そしてw3mの導入。まずはCVSリポジトリにログインします。
cvs -d:pserver:anonymous@w3m.cvs.sourceforge.net:/cvsroot/w3m login

パスワードを聞かれるので、何も打たずにEnterキーを押します。
(要するにパスワードは空)

そして最新版のソースコードを入手します。
cd /tmp
cvs -z3 -d:pserver:anonymous@w3m.cvs.sourceforge.net:/cvsroot/w3m co -P w3m
cd w3m

−追記:2007/01/22−
ソースコードの一部に直接EUCJPで日本語が記述されているため、このままコンパイルすると一部の機能で文字化けを起こしてしまいます。コンパイルを行う前に対象ファイルの文字コードをSJISに変更しておきます。(w3mhelperpanelの方はどこで使われるかよく分かってないので変換が必要かどうか定かではありませんが…)
mv w3mbookmark.c w3mbookmark.c.euc
nkf -s w3mbookmark.c.euc > w3mbookmark.c
mv w3mhelperpanel.c w3mhelperpanel.c.euc
nkf -s w3mhelperpanel.c.euc > w3mhelperpanel.c

で、あとはいつもどおり configure;make;make install…と行きたいところですが、このままだとエラーが出てしまいます。どうやらGCライブラリの導入先が問題になっているらしいことが分かったので、こちらの記述を参考にしつつ、configureのオプションを全面的に見直して、最終的には以下のようにしました。
./configure \
--enable-japanese=S \
--disable-xface \
--disable-mouse \
--disable-nntp \
--disable-dict \
--disable-w3mmailer \
--disable-ipv6 \
--with-charset=Shift_JIS \
--with-ssl=/usr/local/ssl \
--with-gc=/usr/local
make
make install

しかし、このままだと日本語がうまく表示されないことが判明。
原因はw3mがデフォルトで、

 Locale(LC_CTYPE) に従ってシステムの文字コードを設定

してしまうため。CygwinだとLC_CTYPEは設定されていないようなので、強制的に英語表示になってしまうようです。

これを変更するためにオプション設定画面を出したいのですが、ここの日本語まで化けてしまうのでちょっとたちが悪い。仕方がないので英語モードでw3mを起動します。
LANG=C w3m -v

"o"を押すとオプション設定画面が出てくるので、"Charset Settings"の"System charset follows locale(LC_CTYPE)"を"NO"に変更します。

これで完了。日本語表示もばっちりのはずです。
それでもまだ化けている場合は、オプション設定画面で、

・表示用文字コード
・文書の標準の文字コード
・システムの文字コード


の3つを"Japanese (Shift_JIS, CP932)"に設定してください。

これでWindowsでもw3mが使えます。便利だぁ〜♪
(と感じる人はとっても少数派でしょうけどね笑)
posted by 月水和尚 (とも) at 12:52 | Comment(0) | TrackBack(0) | Cygwin