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.


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.


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


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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.