Vimで2つのタブを比較する


121

シナリオ:Vimを開いてテキストを貼り付けました。で2つ目のタブを開き、:tabeそこに他のテキストを貼り付けます。

目標:両方のテキストをファイルに書き込み、で開くのと同等の出力が表示される3番目のタブが必要ですvimdiff

私が見つけることができる最も近いのは、「現在のバッファーをファイルと比較する」ことですが、diff開いているが保存されていない2つのバッファーは使用しません。


1
タブコマンドとは
hhafez 2009

1
@hhafez -新しいタブで新しいバッファを開く
ルーク

3
:tabedit、別名:tabnewの略です。
TSomKes 2009

回答:


188

新しいタブではなく、同じタブで2番目のファイルを開くことをお勧めします。

これが私が通常することです:

:edit file1
:diffthis
:vnew
:edit file2
:diffthis

この:vnewコマンドは現在のビューを垂直方向に分割するので、2番目のファイルをそこで開くことができます。次に、:diffthis(または略称:) :difftコマンドが各ビューに適用されます。


1
Fwiw、MacVimにはデフォルトではこれがないようですが、ターミナルに移動して入力しvimdiff file1.txt file2.txt、ノックアウトできるはずです。
ruffin

11
あなたはちょうど私の心を吹き飛ばしました。私の人生はその後同じになることはありません:diffthis。どうもありがとうございます。ありがとうございました!
ジャスティンフォース

3
これはすごいです。edit fileN部品はちょうどあなたがtmpファイル(メルドはあなたが行うことができますが、Mac上のビジュアル差分ツールがに欠けていることを何か)に、それぞれを貼り付けることなく、テキストの2つのチャンクをdiffをすることができますバッファから貼り付けると交換することができます。MacVimでそのまま使用できました。
yshavit 2013年

38

:diffthisまたは:diffsplitを試すことをお勧めします


10
:vert diffsplitなしよりも伝統的なdiff-viewになります:vert
ephemient 2009

7
:set diffopt + = verticalを使用して、:vertをデフォルトにすることができます。
graywh 2009年

3
また、2つのウィンドウを同時にスクロールするには::set scrollbind両方で。
Dmytro Sirenko 2012

質問で尋ねられたように、タブが必要な場合は機能しません。実行する:diffsplitと、2つの接続されたバッファーが表示されます。
erik 2015

25

垂直分割で2つのファイルを開いたら、次を実行します。

:windo diffthis


8
:diffoff差分モードをオフにするために使用
AB

2
しかし、どうすれば2つのタブから垂直分割に変更できますか?
erik、2015

1

すべてのタブのコンテンツはバッファ内にあります。バッファを見てください:

:buffers

現在のタブコンテンツと比較する必要があるコンテンツの適切な番号を見つけます。

現在のタブ内のバッファーを開きます(feバッファー番号4)

:sb 4

または、垂直ビューの場合:

:vertical sb 4

次に、コンテンツを簡単に比較できます

:windo diffthis

差分分析が終了したら、次のように入力できます。

:windo diffoff
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.