17

gitマージにvimdiffを使用しています。使用する 1 つのファイルを選択する簡単な方法はありますか?現在、1 つのバッファーからすべてを選択し、$MERGE をそれに置き換えて保存しています。私はそれをマクロ化できると思いますが、より良い方法があるかどうか疑問に思っていました. ありがとう!

4

4 に答える 4

38

いくつかの方法:

:%diffput

'現在のバッファから'その他の'バッファへのすべての変更を'置く'。これにより、3方向の差分が簡単になります。

:%diffput OURS

'OURS'パターンは、現在の差分に参加しているバッファ名で一意に一致します

上記のすべては、逆に、代わりにdo、または:diffget

于 2011-06-07T00:21:50.503 に答える
12

TimPopeのFugitiveプラグインをご覧ください。それは本当に便利なプラグインです。

競合するファイルで実行するGdiffと、ターゲット、マージ、および作業コピーの3つのファイルが開かれます。保存するファイルに切り替えて実行Gwrite!し、そのファイルを保存します。

このプラグインとのマージの競合を解決する方法を説明する Vimcast全体があります(そしてFugitive.vimについて詳しく説明している他の5つのvimcast)。

于 2011-06-07T02:23:55.510 に答える
5
  1. 参加しているすべてのバッファが差分モードになっていることを確認します (:h start-vimdiff差分モードの開始方法を参照してください)。
  2. vベースでビジュアルモードを行う
  3. ファイル全体を選択する (全押しPage Down)
  4. Write :then diffget <buffer number/name>(: lsすべてのバッファを一覧表示します。通常、vimdiff では右から左に 1 ~ 3、または 3 方向の diff の場合は 4 です)
  5. その後: wqa、ちょうどあなたは完了です

または、ステップ 0. の後に:%diffget <buffer number>、指定されたバッファーからすべての変更を取得して、:diffget範囲も受け入れることができます。( および を参照:%してください:diffget。)

逆も機能します。:%diffput <buffer>すべての変更をバッファー番号に送信し、2 つのバッファーの内容を同じにします。

于 2014-06-19T14:37:48.583 に答える