ForkLift でファイル比較に CompareMerge を使う

先日ファイルマネージャとして ForkLift を導入した。2ペイン型のファイラで、SFTP や SMB に加え各種クラウドストレージもローカルと同じように操作できる。

ファイルの比較には FileMerge, Kaleidoscope, Beyond Compare, Araxis Merge が使えるが、次の理由で CompareMerge を使うことにした。

  • FileMerge は非 ASCII 文字を含むファイルを開くといちいち警告を出してくるため実用的でない
  • Kaleidoscope は試用してみたところ行間が広めの値で固定されており、一度に情報をたくさん表示するのに向いていない

さてここで問題は設定に CompareMerge が用意されていないことだが、 Kaleidoscope の呼び出しがコマンドラインツールから行われているのでこれを利用する。すでに Kaleidoscope のコマンドラインツールを使用している場合は使えないので注意

Kaleidoscope のコマンドラインツールは /usr/local/bin/ksdiff にインストールされる。なのでこれを CompareMerge を起動するスクリプトに置き換えてやればうまくいく。CompareMerge の起動には open コマンドを使うとコマンドラインからファイルを指定することができた。

したがって次の内容で /usr/local/bin/ksdiff を作成し、 ForkLift の Compare Tool の設定を Kaleidoscope にすればよい。

#!/bin/sh
open -a /Applications/CompareMerge.app "$@"

f:id:scientre:20200513161727j:plain