1

次のようなことをするたびに、vimdiffで奇妙な問題が発生します。

git difftool HEAD~2 -- src/some-file.hs
  • まず第一に、2 つの別々のウィンドウが開きます。1 つは差分を表示し、もう 1 つはファイル自体を表示します。なぜ、どうすればそれを修正できますか? セカンドウィンドウはいらない

  • もう 1 つの問題は、2 つのバッファーの幅が同じになることはなく、仕切りが右端まで押し込まれ、手動でC-w+=を実行して同じ幅にする必要があることです。どうすれば修正できますか?

次のように設定された difftooll .gitconfig:

[diff]
    tool = gvimdiff

また、SourceTree で正しく設定する方法もわかりません。vimdiff を外部のdiffer/mergerとして使いたい

4

1 に答える 1

1

vim を git マージ ツールとして使用できますが、お気付きのとおり、デフォルトの外観はかなり乱雑です。vim をカスタム スクリプトでラップし、代わりにそれを使用することで、これをクリーンアップできます。例はhttp://vim.wikia.com/wiki/A_better_Vimdiff_Git_mergetoolにあります。

ただし、差分を直接表示して編集することだけが必要な場合は、ファイルを通常どおりに開くだけですvim src/some-file.hs。git はファイルを競合マーカー付きのバージョンに置き換えます。このようなものを使用して競合をすばやく見つけることができますが、https://github.com/rhysd/conflict-marker.vim入力する\>>>>だけで十分に高速です。より複雑なケースでは、fugitive vim プラグインを使用します (次の段落を参照)。

実際にvimを使用して単一ファイルのgit競合に対処したい場合は、逃亡者をインストールすることをお勧めします。それならできます。

:e src/some-file.hs
:Gdiff

そして、元の左右のバージョンで 3 つのバッファーを取得します。ただし:Gdiff、バージョン引数も受け入れるため、競合していないファイルも比較できます。

于 2014-12-16T00:30:29.297 に答える