Porównaj dwie zakładki w Vimie

121

Scenariusz: Otworzyłem Vima i wkleiłem jakiś tekst. Otwieram drugą kartę :tabei wklejam tam jakiś inny tekst.

Cel: Chciałbym mieć trzecią zakładkę z wyjściem równoważnym zapisywaniu obu tekstów do plików i otwieraniu ich za pomocą vimdiff.

Najbliższe, jakie mogę znaleźć, to "porównanie bieżącego bufora z plikiem", ale nie diffdwa otwarte, ale niezapisane bufory.

davetapley
źródło
1
jakie jest polecenie tabe?
hhafez
1
@hhafez - otwórz nowy bufor w nowej karcie
Rook
3
To skrót od: tabedit, aka: tabnew.
TSomKes,

Odpowiedzi:

188

Proponuję otworzyć drugi plik w tej samej zakładce zamiast nowej.

Oto, co zwykle robię:

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

:vnewPolecenie dzieli bieżący widok w pionie, dzięki czemu można otworzyć drugi plik istnieje. Polecenie :diffthis(lub short :difft:) jest następnie stosowane do każdego widoku.

Jan
źródło
1
Fwiw, MacVim nie wydaje się mieć tego domyślnie, ale myślę, że powinieneś być w stanie przejść do terminala i wpisać vimdiff file1.txt file2.txti znokautować się.
ruffin
3
To jest niesamowite. Te edit fileNelementy mogą być zastąpione tylko wklejanie z, co pozwala diff dwóch fragmentów tekstu bez wklejania każdy do pliku tmp (coś że Meld pozwala zrobić, ale wizualne narzędzia diff na Mac są pozbawione) bufora. To działało w MacVimie dla mnie po wyjęciu z pudełka.
yshavit
38

Proponuję spróbować : diffthis lub : diffsplit

joeslice
źródło
10
:vert diffsplitsprawia, że ​​widok różnic jest bardziej tradycyjny niż bez:vert
ephemient
7
Możesz: ustawić diffopt + = vertical, aby ustawić: vert jako domyślny.
graywh
3
Ponadto, aby przewijać dwa okna jednocześnie: :set scrollbindw obu.
Dmytro Sirenko
Nie działa jak mam zakładki takie jak zadane w pytaniu. Jeśli tak :diffsplit, otrzymam dwa połączone bufory.
erik
25

Gdy masz dwa pliki otwarte w podziale pionowym, uruchom

:windo diffthis

AB
źródło
8
użyj, :diffoffaby wyłączyć tryb różnicowy
AB
2
Ale jak zmienić dwie zakładki na podział pionowy?
erik
1

Zawartość wszystkich zakładek znajduje się wewnątrz buforów. Spójrz na bufory:

:buffers

Znajdź odpowiednią liczbę dla treści, która powinna być porównywana z obecną zawartością karty.

Otwórz bufor w bieżącej karcie (np. Bufor numer 4)

:sb 4

Lub zrób dla widoku pionowego:

:vertical sb 4

Następnie możesz łatwo porównać zawartość za pomocą

:windo diffthis

Jeśli zakończyłeś analizę różnic, możesz wprowadzić:

:windo diffoff
kłapnięcie
źródło