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
soubor1soubor2
případně
gvimdiff
soubor1soubor2
pokud dáváte přednost grafické verzi. Objeví se zhruba toto:
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.
© 2016 Pavel Satrapa