Weź różnicę dwóch pionowo otwartych okien w Vimie


103

Mam otwarte dwa pliki. Są otwierane w trybie pionowym obok następnego. Czy mogę natychmiast porównać te dwa pliki bez wychodzenia lub zamykania Vima?

Odpowiedzi:


154

Aby rozpocząć różnicowanie we wszystkich widocznych oknach:

:windo diffthis

który jest wykonywany :diffthisw każdym oknie.

Aby zakończyć tryb porównywania:

:diffoff!

( !Marki diffoffdotyczą wszystkich okien bieżącej karty - byłoby miło, gdyby diffthismiały tę samą funkcję, ale tak nie jest).


:windoKomenda sprawia, że nawet lepiej. Dzięki. Zmapuję to, żeby było łatwiej.
Fatih Arslan

1
To dobra odpowiedź, ale pamiętaj, że okno minibufexplorer powinno zostać zamknięte przed tą operacją, jeśli zostanie otwarte. W przeciwnym razie diff pokazuje nieprawidłowe wyniki.
baldrs

Można użyć aliasu :windo difft[this]. Ref::help diff
DmitrySandalov

@FatihArslan,: windo diffthis w moim przypadku nic nie robi, ale po prostu zostawiając po lewej stronie szarą kolumnę obok numerów linii. Mam otwarte dwa różne pliki Vima.
earik87

22

w każdym z okien, które chcesz porównać, wpisz:

:diffthis

Jeśli chcesz porównać wszystkie otwarte okna, możesz zrobić:

:windo diffthis

( windozastosuje polecenie do wszystkich otwartych okien)


7

Kontynuując wcześniejsze odpowiedzi,

  • :windo difft(skrót od diffthis) uruchomi tryb porównywania we wszystkich otwartych oknach.
  • :windo diffo(skrót od diffoff) zatrzyma tryb porównywania we wszystkich otwartych oknach.

Mam następujące mapowania, vimrcaby to ułatwić:

command! Difft windo diffthis
command! Diffo windo diffoff

3

Idąc za wcześniejszymi odpowiedziami dostosowałem mapowanie dostarczone przez @cxw Poniższe mapowanie automatycznie zamyka NERDTree i porównuje otwarte okna. Nie ma znaczenia, czy NERDTree jest blisko, działa w ten sam sposób. Robię to dość często, więc zaoszczędziło mi to sporo czasu.

command! Difft NERDTreeClose | windo diffthis
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.