☰ menu
Pavel Satrapa

Porovnání souborů

Existence svislých oken ve vim 6 mne sama o sobě do transu nepřivedla, ale umožnila jednu moc pěknou vychytávku: porovnání souborů. Určitě už jste byli v situaci, kdy máte dvě verze téhož souboru. Podle času změny sice víte, která je novější, ale nejste si tak úplně jisti, v čem se vlastně liší, a neradi byste o něco přišli. Chtělo by to nástroj pro vzájemné porovnání.

Takových nástrojů je celá řada. V Unixu diff a jeho grafické verze, v MS-DOSu fc. Ovšem žádný z nich se mi nelíbil tolik, jako porovnávání ve vim. Nyní stačí zadat příkaz

vimdiff soubor1 soubor2

případně

gvimdiff soubor1 soubor2

pokud dáváte přednost grafické verzi. Objeví se zhruba toto:

ukázka porovnání v gvim

Jak vidíte, obě verze jsou přehledně umístěny vedle sebe a jejich odlišnosti barevně vyznačeny. Vim zároveň využívá schopnosti skládání a složí nezajímavé (stejné) části textu, aby vám zůstaly na očích především změny.

Mezi jednotlivými odlišnostmi se můžete snadno pohybovat. Příkaz ]c přesune kurzor na začátek následující změny a příkaz [c jej vrátí na začátek změny předchozí.

Můžete také převzít změny z protějšího okna příkazem :diffget. Jedná se o běžný ex-příkaz, takže mu rozmezím řádků zadáváte, které části souboru se má týkat. :%diffget pokryje celý soubor. vim upraví řádky editovaného souboru tak, aby se shodovaly s protějším.

Podobně, leč v opačném směru funguje :diffput. Tentokrát se změny přenášejí z editovaného souboru do protějšího okna. Ovšem tyto služby už nejsou tak atraktivní. To nejdůležitější na porovnávání je vědět a tuto službu plní vim velmi dobře.