Przejdź do treści

Porównanie / Diff

Porównaj dwa pliki (albo plik z jego niezapisanym buforem) i zobacz dokładnie, co się zmieniło — linia po linii i znak po znaku — w widoku obok siebie, a potem przenieś wybrane zmiany na drugą stronę i zapisz wynik.

Rozpoczęcie porównania

Wszystkie sposoby porównywania mieszczą się w głównym menu Porównanie:

Polecenie Porównuje
Porównanie ▸ Porównaj dwa pliki… Dwa pliki wybrane z dysku.
Porównanie ▸ Porównaj z zapisanym Aktywny bufor (Twoje niezapisane zmiany) z wersją na dysku.
Porównanie ▸ Porównaj z plikiem… Aktywny dokument z wybranym plikiem.
Porównanie ▸ Porównaj z ▸ Aktywny dokument z inną otwartą kartą — podmenu wymienia każdy inny otwarty dokument (* oznacza niezapisane zmiany) i porównuje żywe bufory, bez zapisywania.
Porównanie ▸ Porównaj foldery… Dwa drzewa katalogów — zapewnia to wtyczka Porównanie folderów.
OctoEdit --diff a b (wiersz poleceń) Dwa pliki, w samodzielnym oknie przeglądarki — integracja z git difftool.

Powiadomienie o zmianie pliku także oferuje przycisk Porównaj, więc możesz przejrzeć zewnętrzną zmianę przed ponownym wczytaniem.

Pliki są dekodowane według wykrytego kodowania (UTF-8 z BOM lub bez, UTF-16 LE/BE albo systemowa strona kodowa ANSI), więc pliki inne niż UTF-8 porównują się poprawnie — a zapis scalonej strony ponownie koduje plik w jego oryginalnym kodowaniu, łącznie z BOM.

Czytanie wyniku

Porównanie otwiera się w nowej karcie z dwoma plikami obok siebie; oba panele przewijają się razem.

  • Dodane / usunięte / zmienione linie dostają kolorowe tło całej linii oraz pasek obok numerów linii.
  • Blok dwóch lub więcej linii, który został przeniesiony (usunięty w jednym miejscu, wstawiony bez zmian w innym — zmiana wcięć nie ma znaczenia), jest pokazywany na niebiesko po obu stronach zamiast zwykłej zieleni/czerwieni, więc przetasowanie nie zostaje pomylone z edycją.
  • Wewnątrz pary zmienionych linii dokładnie te znaki, które się różnią, są obramowane mocniejszym kolorem akcentu, więc edycja jednego słowa w długiej linii rzuca się w oczy. Podświetlenie dosuwa się do granic słów, gdy to możliwe.
  • Wszystkie te kolory podążają za aktywnym motywem i można je dostosować per motyw (zobacz Edytor motywów); wbudowane są sensowne domyślne dla wariantów jasnego i ciemnego.

Bardzo duże porównania (powyżej ~1 MB) liczą się w tle — panele pojawiają się od razu z podsumowaniem „Porównywanie…", a znaczniki lądują, gdy diff się zakończy.

Edycja ▸ Kopiuj i Zaznacz wszystko (oraz ich skróty) działają na panelu, w którym aktualnie stoi kursor — kliknij w panel, aby wybrać źródło kopiowania.

Pasek narzędzi

Kontrolka Działanie
↓ Następna / ↑ Poprzednia Przeskakuje oba panele do następnej/poprzedniej różnicy (umieszczanej mniej więcej w jednej trzeciej widoku). Także Alt+Down / Alt+Up, gdy karta porównania ma fokus.
Ignoruj białe znaki Traktuje linie różniące się tylko odstępami jako równe.
Ignoruj wielkość liter Traktuje różnice wielkości liter jako równe.
Wyrównane (domyślnie włączone) Dopełnia krótszą stronę każdej zmiany pustymi liniami wypełniającymi, aby dopasowane obszary leżały dokładnie obok siebie w całym oknie. Same pliki nigdy nie są modyfikowane.
Zamień strony Zamienia obie strony (tytuły, zawartość, oczekujące kopie i resztę) i porównuje ponownie w drugą stronę.
Zapisz lewą / Zapisz prawą Zapisuje tekst danej strony z powrotem do pliku po skopiowaniu do niej zmian. Aktywne tylko, gdy strona ma niezapisane kopie; ukryte dla strony istniejącej tylko w pamięci.

Podsumowanie pokazuje liczbę różnic; identyczne pliki dodatkowo wyświetlają wyśrodkowaną, nie do przeoczenia nakładkę „Pliki są identyczne".

Linijka przeglądowa

Wąska kolumna przy prawej krawędzi pokazuje całe porównanie w pigułce — jedna kolorowa kreska na różnicę (zielona dodana, czerwona usunięta, bursztynowa zmieniona, niebieska przeniesiona), rozmieszczone proporcjonalnie do miejsca w dokumencie. Kliknij kreskę (albo dowolne miejsce kolumny), aby skoczyć do najbliższej różnicy.

Scalanie: kopiowanie zmiany na drugą stronę

Kliknij prawym przyciskiem dowolny panel, aby działać na różnicy pod kliknięciem:

Pozycja menu Działanie
Kopiuj / Zaznacz wszystko Zwykłe operacje schowka dla paneli tylko do odczytu.
Kopiuj zmianę w prawo Zastępuje blok tej zmiany po prawej stronie blokiem z lewej.
Kopiuj zmianę w lewo To samo w drugą stronę.
Cofnij kopiowanie Wycofuje ostatnią kopię (także Ctrl+Z, gdy karta porównania ma fokus).

Uwagi:

  • Oba kierunki działają niezależnie od tego, który panel zmiany klikniesz — łącznie z „pustą" stroną czystego wstawienia lub usunięcia.
  • Kopiowane linie przejmują końce linii pliku docelowego, więc scalanie między plikiem CRLF a LF nigdy nie daje mieszanych końcówek.
  • Po kopii porównanie przelicza się od razu; oba widoki zostają na miejscu.
  • Strona zmodyfikowana kopiami pokazuje aktywny przycisk Zapisz lewą/prawą; zapis pisze plik atomowo i czyści stan modyfikacji. Kopiowanie do strony, która nie ma pliku na dysku (np. strony niezapisanego bufora w Porównaj z zapisanym), nie jest możliwe — nie byłoby gdzie zapisać.
  • Zamknięcie karty porównania z niezapisanymi kopiami pyta przed ich porzuceniem.

Przywracane razem z sesją

Porównanie plik–plik jest zapamiętywane i otwierane ponownie przy następnym uruchomieniu. Porównania z niezapisanym buforem nie da się przywrócić (strona w pamięci znika po wyjściu), a niezapisane kopie nie są utrwalane — najpierw je zapisz.