したがって、デフォルトでdiff
コマンドがインストールされています。私は確かにそれを使用する方法を知らないwell。しかし、私はいくつかの合理的なデフォルトの使用を期待します。しかし、diff file1 file2
取得します...テキスト...頭の中で解析する必要があります...これは、2つのテキストの奇妙な組み合わせであり、それ自体が非常に複雑であるという事実に助けられていません。
そこで、私はグラフィカルなソリューションを探しました。 meld
。これは、箱から出してみるとずっとうまくいきます。
しかし、私は常にコマンドラインに留まるという贅沢を望んでいます。次のようなかなり標準的なコマンドはありますか?
libncurses
経由vim
、emacs
、IDEのいずれにも依存しないそうでない場合、なぜそうではないのですか?私はcolordiff
を調べましたが、完全にはうまくいきませんでした。
この答えがあなたを満足させないのではないかと恐れていますが、あなたは相反する制約を課していると思います。
しかし、最初に古典的なdiffツールを守る必要があります。その主な目的は、アプリケーション上のマシンによって処理されることになっているソフトウェアパッチを生成することです。さらに、これらのパッチはできる限りコンパクトに設計され、理想的にはASCII文字のみを使用するため、電子メール、Usenetなどを介して高速かつ確実に共有できます。
これらのパッチを人間が読み取れる(および一部の人間が理解できる)ことも重要な特性ですが、最優先事項ではありません。
シンプルで基本的なコマンドラインツールに対するユーザーの要望を完全に理解して共有していますが、並べて表示した差分は、おそらくカラーハイライトで表示されますが、単純ではなく、実際のコマンドラインツールから期待できる範囲に含まれていません。もはやライン指向ではありません。
その隣にあるのは、ViまたはEmacsベースのツールです。これは、人間が受信できる限りシンプルで明確であり、同時に非常に柔軟です。また、強力なマージ機能も提供します。
それらを形成し、vimdiff
はすでに言及されました コメント内 。
Emacsに関しては、ファイル比較は通常エディター内から開始されます。そのために最も一般的に使用されるツールはEdiffで、2つのファイル、ツリーファイル、それらの1つは共通の祖先として扱われるなどのさまざまなニーズに対応する多数のエントリポイントを提供します。可能なマージについても同じです。
珍しいとはいえ、コマンドラインからEdiffにアクセスできるようになりました。Emacsを
emacs FILE1 FILE2 -nw --eval "(apply 'ediff-buffers (last (nreverse (buffer-list)) 2))"
次に、ターミナル内でFILE1
とFILE2
を比較するインタラクティブなEdiffセッションに直接ジャンプします。 -nw
オプションを省略した場合(およびすべての要件が満たされている場合)、同じセッションが別のグラフィカルフレームに表示されます。参照 この関連する質問 by ashutosh jain。
さて、ここまではEmacsを簡単なツールとは言いませんでした。しかし、数年間徹底的に研究すれば、あなたはそれを愛するでしょう。 (個人的な意見です。)
だから、残念ながらいいえ:あなたの制約すべてを満たすツールは知りません。