Vimdiffを使用して、diffファイルに記述されている違いを表示するにはどうすればよいですか?
/usr/bin/vimdiff
コマンドを使用する代わりに、これを試してください:
$ vimファイル :vertical diffpatch path/to/diff
(略して:vert diffpa
)。
これは、元のファイルとその後にパッチが適用されたファイルでvimdiff
を呼び出すのと同じですが、vim
は一時ファイルでpatch
を呼び出します。
vim
のdiff-modeを自動的に入力する場合は、次のようにします。
$ vimファイル+ 'vert diffpa path/to/diff'
ここで、+command
はvim
に「コマンド」の実行を要求します。 (+123
は123行目にジャンプし、+/abc
は "abc"の最初の一致にジャンプします。すべてドキュメント化されています。)
ケンのクエリについて:現在編集しているファイル以外のファイルに適用されるハンクがdiffファイルに含まれていても、心配ありません。 vim
はその下にあるpatch
実行可能ファイルを呼び出し、これらの不可解な欠落ファイルの場所を要求します。patch
にこれらのハンクをスキップするように指示できます。
他の方向から来る。最後の保存以降にファイルに加えられた変更をvimdiffまたはUnified diff形式で表示するVimプラグインを作成しました。
ここで入手: diffchanges.vim
元のファイルのコピーを作成し、差分を適用してから
vimdiff original_file patched_file
また、svn diff出力を処理するために作成された vim.orgスクリプト も確認できます。バージョン管理システムから差分を生成している場合は、 vcscommand.vim:CVS/SVN/SVK/git統合プラグイン を確認してください。
これにvimdiffを使用する理由について詳しく教えてください。
たとえば、 (統一された)diffファイルの文字ごとの違いを視覚化しますか? にしますか?もしそうなら、誰かが 同じことについての私の質問提案 で答え、基本的にdiffでemacsを起動してALT-n
ハンクを循環させ、途中で単語ごとまたは文字ごとの変更を適切に強調表示します(vimdiffと同様)。これはうまく機能しますが、これを行うためだけにemacsを起動するのは面倒です。私はそれを行うのに十分なemacsを知っているだけで、パッチを汚すことなく終了します。 :)
とにかく、emacsの答えは私にいくつかのアイデアを与えました。 Vimがdiffファイルの強調表示を改善するように調整できると思います。おそらくediffのようなものです。しばらく前に調べたところ、vimユーザーリストの誰かが incorporate google-diff-match-patch に対して優れた提案をしてくれました。 Pythonインターフェースは、例えば、Python Vim ftpluginから使用できます。
「答え」を使用して返信するのが得策ではない場合に申し訳ありません。「コメントを追加」のフォーマットは、私が言いたいことに対して制限が多すぎます。
後世のために、 ここに別の同様の質問への参照があります (すでにここにもリンクしています)。