したがって、私たち全員はデフォルトdiff
でこのコマンドをインストールしました。もちろん使い方はよくわかりません。素晴らしい。しかし、合理的な基本的な使用法があることを願っています。ところで、タイピングをするとdiff file1 file2
…テキストが出ますね…そしてそれを頭の中で分析しなければなりません…2つのテキストの奇妙な組み合わせであり、これら2つのテキスト自体が非常に複雑であるという事実はそうではありません。助ける。
だから私はグラフィックソリューションを探していますmeld
。基本的にははるかにうまく機能します。
しかし、私はコマンドラインにとどまることを好みます。かなり標準的なコマンドはありますか?
- デフォルトでは色が使用され、構文強調を使用できます。
- 並列比較をレンダリングし、デフォルトは3方向マージです。
- 次のコマンドラインで作業してください。
libncurses
- IDE
vim
またはemacs
IDEに依存しない - 編集したファイルをその場で変更できますか?
そうでなければなぜならないのですか?確認しましたが、colordiff
問題は完全に解決されませんでした。
答え1
〜のように聞こえるデルタこれらの要件のほとんどが満たされます。
https://github.com/dandavison/delta
要約機能:
- 言語構文を強調表示...
- 単語レベルの違いを強調表示...
- 改行のある並べて表示
- 強化されたマージ競合の表示
- コードはdiffから直接コピーできます(-/+マークはデフォルトで削除されます)。
- GitHub/GitLab/Bitbucket ページ (--hyperlink)。オペレーティングシステムで開くことができるように、ファイルパスをハイパーリンクにフォーマットすることもできます。
...
上記のリンクスクリーンショット:
答え2
この回答があなたを満足できないと思います。しかし、あなたは矛盾する限界を提示していると思います。
違いについて
しかし、まず古典的なdiffツールを守る必要があります。このツールの主な目的は、アプリケーションのコンピュータで処理する必要があるソフトウェアパッチを生成することです。また、これらのパッチはできるだけコンパクトに設計されており、電子メール、Usenetなどを介して迅速かつ確実に共有できるように、ASCII文字のみを使用することをお勧めします。
パッチを人間が読むことができ、一部の人が理解できるという点も重要な属性ですが、優先順位ではありません。
あなたの問題
私はシンプルで基本的なコマンドラインツールへのあなたの欲求を完全に理解して共有しますが、並んでいる違い(おそらくカラーハイライト)は単純ではなく、実際のコマンドラインツールで期待できる範囲内にもありません。そうではありません。これはライン指向です。
以下は、できるだけ簡単で明確で、人間が受け入れやすく、同時に柔軟性に優れたViまたはEmacsベースのツールです.また、強力なマージ機能も提供します。
vimdiff
この内容はすでにコメントに記載されています。
Emacsでは、ファイル比較は通常エディタ内で開始されます。最も一般的に使用されるツールはEdiffで、2つのファイル比較、ツリーファイル比較、ファイルの1つを共通の祖先として扱うなど、さまざまな要件に合わせて多数のエントリポイントを提供します。合併の可能性も同じだ。
珍しいが、コマンドラインからEdiffへのアクセスを設定しました。以下を使用してEmacsを起動する場合:
emacs FILE1 FILE2 -nw --eval "(apply 'ediff-buffers (last (nreverse (buffer-list)) 2))"
次に、インタラクティブEdiffセッションに直接移動して、端末内の合計を比較しますFILE1
。FILE2
この-nw
オプションを省略し、すべての要件が満たされると、別のグラフィックフレームで同じセッションを取得します。また、見ることができますこの関連質問著者: Ashutosh Jain。
まあ、私はEmacsが単純なツールだと言いたくありません。しかし、数年間真剣に勉強してみると好きになるでしょう。 (個人的な考えです。)
したがって、残念なことではありません。すべての制約を満たすツールはありません。