2010年5月3日月曜日

OS X でファイル同士を比較する

OS 9 には『DODO DIFF』という優れたテキストファイルの比較ユーティリティーがあった.
Tiger の時は Classic 環境でこのアプリを使っていたんだけども,Leopard に移行したら Classic 環境が使えなくなってしまったので,DODO DIFF に変わるアプリを探してこなくちゃいかん、、、

と思って調べてみたら,『Developer Tools』の中に『File Merge』というユーティリティーがちゃんと準備されていることが判明.

結論からいうと,比較結果が色を使って分かりやすく表示される他,相違箇所への移動もスムースなので,『DODO DIFF』に優るとも劣らぬ使い勝手の良さ.なかなかいいんでないの.

ただ,日本語への対応が十分でないので,そこをいじってやる必要があるとのこと.
【参考】FileMerge.app でテキストエンコーディング自動判別@ヘチマ_BLOG
   OSXでdiff16bps
   FileMergeで日本語を@Side-B
   OSXでテキストの差分表示アプリケーション@MJ::Blog

やるのは,日本語の文字コードを変換するUNIXコマンド「nkf」のインストールと,『File Merge』の環境設定で読み込んだファイルを nkf で変換するようフィルタを設定すること.
なお,『File Merge』のフィルタ設定はファイルの拡張子ごとに行うことになっているため,『File Merge』で扱いたいファイル種別ごとにフィルタを設定してやらなきゃいけない.これがちょっとばかり面倒かな.

以下,具体的な作業手順.

■ nkf のインストール

nkf Network Kanji Filter をインストール.
今回利用したのはnkf-2.1.0.tar.gz

〈インストール手順〉
$HOME にnkf-2.1.0.tar.gzを置き,$HOME の下にディレクトリ src があるものとして.

→ nkf-2.1.0.tar.gzを作業用ディレクトリ $HOME/src に展開
↓  $ cd
↓  $ tar zxvf nkf-2.1.0.tar.gz -C ./src
→ $HOME/src/nkf-2.1.0 でコンパイル
↓  $ cd ./src/nkf-2.1.0
↓  $ make
→ 生成バイナリのコピー(/usr/binに置く場合)
↓  $ sudo cp nkf /usr/bin/.

■ FileMerge のフィルタ設定



Extension の列に新しい拡張子を登録し,Filter の列に/usr/bin/nkf -sLu $(FILE) と入力.Display の列は Filtered,Apply は yes.
 

0 件のコメント: