開発環境「Xcode Tools」付属の差分表示ツール「FileMerge」をUTF-8対応に

海上忍
2009-11-27 18:36:01
  • このエントリーをはてなブックマークに追加

 Mac OS Xに付属の開発環境「Xcode Tools」には、コーダーのみならず一般ユーザーにとっても有益なアプリケーションが多数含まれている。

 なかでも定番が「FileMerge」。プレーンテキストの差分を作成する、いわゆる「diffをとる」ユーティリティだ。使い方はかんたん、起動して新旧のファイルを指定すればOK。「Files are not ascii」と警告を受けるが、無視して先に進めば差分が表示されるはず。

 ただし、デフォルトでは日本語の扱いが不得手。UTF-16とSHIFT-JISは正しく判定されるが、それ以外の日本語用符号化文字集合には対応しないのだ。なにかとUTF-8なファイルを使うことが多い昨今、この仕様では「もうひと声」と言わざるをえない。Snow Leopardでは改良されているかも……と期待していたが、その程度はDIYでヨロシク、ということなのだろうか。

 とはいえ、その作業は実にカンタン。Preferencesを表示し、Filtersタブに「/usr/bin/iconv -c -f UTF-8 -t SJIS $(FILE)」という行を追加するだけでOKだ。これだけで、拡張子が「.txt」のUTF-8ファイルも支障なく差分をとることができる。ほかのファイルに適用したい場合は、その拡張子用の行を追加すればいい。

 なお、バックスラッシュの処理に関連して、iconvコマンドに「-c」オプション(エラー発生時に無視する)を付加しているが、注意すべき点はそれだけ。EUC-JPやISO-2022-JPにも応用できるため、試してみてほしい。

「FileMerge」 ひと工夫で日本語を含むUTF-8も扱えるようになる「FileMerge」
  • コメント(2件)
#1 anonymous   2009-12-01 16:16:33
nkf入れて「$HOME/bin/nkf -sLu $(FILE)」とかのほうが良くないですか?
文字コードの自動判定機能がついてるのでこっちの方が便利かなと。

試したのはLeopard環境ですが、記事にあるiconv使った設定でSJISの
ファイルを食わせると化けるし、その都度設定変えるのも面倒臭いし。
#2 unakami   2009-12-04 12:29:34
コメントありがとうございます。

確かに、nkfのほうがベターだと思います。しかし、ソースコードを入手したうえでコンパイル&インストールしなければなりませんから、例として挙げるには(標準装備の)iconvが妥当と判断しました。

ちなみに、私の環境では「/usr/local/bin/nkf」です。試してみようという方は、nkfのインストール先にご留意ください。
  • 新着記事
  • 特集
  • ブログ
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]