Macにはいいテキスト比較ツールがない?

Macもだいたいのアプリは揃っているんですが、まだWindowsと比べると弱いところがあったりします。 中でも一番困っているのが、テキスト比較ツールです。

WindowsだとWinMergeやDFなどの優秀なテキスト比較ツールがあるのですが、Macにはあまりこれというものが見つかりません。 Xcodeに付いてくるFileMergeはファイル比較のみで、かつ日本語に弱いです。Gitでソースを管理している場合であれば、SourceTree 1 などのGitの管理ツールで比較できたりする 2 のですが、Gitを使っていない場合は使えません。

私がテキスト比較ツールに求めているのは、 * ファイル単位でもディレクトリ単位でも比較可能 * ディレクトリ単位の場合は、サブディレクトリを再帰的に比較する * 日本語のテキストも対応 ぐらいなのですが、なかなかすべてを満たすものがないのです。

個人的にはKaleidoscopeが理想の比較ツールなのですが、いかんせん高すぎるという問題があります。 現時点では、DiffMergeというアプリを使っています。DiffMergeは求めている機能はほぼ満たしているのですが、たまにウィンドウを選択してもアクティブにならなかったりと挙動が少しおかしい時があります。

比較ツールを探すのではなくVimでなんとかするという発想

もうMacでいい比較ツールはないのかなと諦めていた時、Vimのプラグインでそのような機能のものがないかと考えました。 調べたところ、DirDiffというプラグインがあることを知りました。これは使えるのではないかと思い、早速導入しました。

DirDiffはOS Xで動かないという情報もありましたが、私の環境では問題なく動作しています。まだ深く使ったわけではないので、実は致命的な不具合があるのかもしれませんが。ちなみに環境はMacVim バージョン7.4 (KaoriYa 20130911)です。

DirDiffのインストール

インストール方法は色々あると思いますが、私の場合はNeoBundleでインストールしました。 .vimrcには以下の通り記述しました。 NeoBundle 'vim-scripts/DirDiff.vim.git'

まだ少ししか使っていませんが、結構大きいXcodeプロジェクトでも問題なく比較することができました。VimでObjective-Cのソースを編集するのであれば、とても便利だと思います。


  1. 少し前までローカルリポジトリを作って比較するという荒技を使っていました。 

  2. SourceTreeは無料なのに多機能なGitクライアント。仕事でも使っているけどすごく便利。