Vimdiffを読み、 Vimdiffとの違いを表示することに加えて、「vimdiff multiple」、「vimdiff git」、「vimdiff コマンド」などを使用してさまざまな Google 検索を行い ました。
do または diffg を使用すると、「差分モードに 2 つ以上のバッファがあります。どちらを使用すればよいかわかりません」というエラーが表示されます。
diffg v:fname_in を使用すると、「v:fname_in に一致するバッファがありません」というメッセージが表示されます。
vimdiff のドキュメントから:
:[range]diffg[et] [bufspec]
現在のバッファを変更して、別のバッファとの違いを元に戻します。[bufspec] が指定されている場合、そのバッファーが使用されます。[bufspec] が現在のバッファを参照している場合、何も起こりません。それ以外の場合、これは diff モードで別のバッファーが 1 つある場合にのみ機能します。
もっと:
'diffexpr' が空でない場合、Vim は上記の形式で差分ファイルを取得するために評価します。これらの変数は、使用されるファイル名に設定されます。
v:fname_in 元のファイル
v:fname_new 同じファイルの新しいバージョン
v:fname_out 結果の差分ファイル
そのため、bufspec の名前を取得する必要がありますが、デフォルトの変数 (fname_in、fname_new、および fname_out) が設定されていません。
ターミナルを介してLinuxボックスでコマンドgit mergetoolを実行しました。
[編集] より多くの疑問を生んだ部分的な解決策。バッファの下部にある「ファイル名」を使用しました。ファイルが存在しないというエラーが時々発生するため、半分の答えにすぎません。「存在しない」のは一貫してファイルのリモートバージョンだと思います。これは git とインデックス作成に関係があると思われます。
git-mergetool で vimdiff を使用しているときに、一貫して bufspec 値を取得するにはどうすればよいですか?