2012-11-07 10 views
8

Zrobiłem :vert diffsplit file1.txt, a następnie zdałem sobie sprawę, że nie chcę tego zmienić, ale inny plik. Więc zamknąłem jedno okno z :q i wyłączyłem podświetlanie diff za pomocą :diffoff."Więcej niż dwa bufory w trybie diff" - Jak wyłączyć diff w buforach?

Następnie próbowałem :vert diffsplit file2.txt, ale teraz gdy próbuję dp lub do umieścić/Get zmian, pojawia się błąd E101: More than two buffers in diff mode, don't know which one to use.

Jak tego uniknąć lub co robię źle?

Odpowiedz

11

Należy wyłączyć tryb diff dla niechcianego buforze z :diffoffprzed rzucenia go :q. W zależności od ustawień (np. :set hidden) bufor będzie trwał na liście buforów (:ls), a Vim będzie go uwzględniać podczas porównywania.

Powinien wyłączyć diff dla wszystkich istniejących buforów, ale zwykle po prostu kończę Vima i ponownie go uruchomię pod numerem vimdiff ..., gdy zajdzie taka sytuacja.

+0

czasami do dyferencjału wewnątrz gvim z wieloma innymi kartami otwartymi. Moje normalne rozwiązanie dla vimdiff było tylko porzuceniem, ale dla gvima to nie jest idealne. Dzięki! – keflavich

+2

Przed zamknięciem któregoś z okien wykonaj ': diffoff!' Lub ': diffo!' Za krótko. Spowoduje to włączenie trybu różnic dla wszystkich okien na stronie bieżącej karty. Zobacz ': h: diffo' –

+0

Próbowałem: diffoff! i nadal nie działa. Musiałem to zrobić: buffo diffoff. Kiedy to zrobiłem, stwierdziłem, że bufor w moim lewym podziale był nadal w trybie różnic. Więc na tym buforze zrobiłem: diffoff, a następnie udało mi się: diffthis w dwóch innych buforach pomyślnie i dokonać zmian. – Brian

1

To może być trochę późno na odpowiedź, ale nadal przyszłości feference

zrobić

:tabdo diffoff!