6

を使用して 3 つのファイルを編集しているときvimdiffに、1 つのファイルから他の 2 つのファイルの両方にハンクをコピーしたい場合があります。通常、これは次のように実行されます。

:diffput 2
:diffput 3

ただし、次のように:help diffput述べています。

                        *:diffpu* *:diffput* *E793*
:[range]diffpu[t] [bufspec]

bufspecこれは、複数のバッファーを指定できるかどうかに興味があります。ドキュメントを使用してみましたが、推測しましたが、うまくいきませんでした。

:help bufspec
:diffput 2,3
:diffput 2 3

コマンドで複数のバッファを指定することはできますdiffputか?

4

5 に答える 5

3

いいえ、そうではありませんが、独自の拡張コマンドを作成することを妨げるものは何もありません。

command! -range=-1 -nargs=+ Diffput for bufspec in [<f-args>] | execute (<count> == -1 ? '' : '<line1>,<line2>') . 'diffput' bufspec | endfor
于 2013-10-25T18:52:45.253 に答える
0

Ingo のソリューションを拡張するには:

command! -range=-1 -nargs=+ DG for bufspec in [<f-args>] | execute (<count> == -1 ? '' : '<line1>,<line2>') . 'diffget' bufspec | endfor
command! -range=-1 -nargs=* DGA for bufspec in map(filter(range(1, winnr('$')), 'getwinvar(v:val, "&diff")'), 'winbufnr(v:val)') | execute (<count> == -1 ? '' : '<line1>,<line2>') . 'diffget' bufspec | endfor
command! -range=-1 -nargs=+ DP for bufspec in [<f-args>] | execute (<count> == -1 ? '' : '<line1>,<line2>') . 'diffput' bufspec | endfor
command! -range=-1 -nargs=* DPA for bufspec in map(filter(range(1, winnr('$')), 'getwinvar(v:val, "&diff")'), 'winbufnr(v:val)') | execute (<count> == -1 ? '' : '<line1>,<line2>') . 'diffput' bufspec | endfor
于 2015-02-20T15:40:35.740 に答える