Kata-diff berwarna seperti git?


8

Saya sudah lama menggunakan git (berwarna) --word-diffyang menurut saya luar biasa. Saya menemukan diri saya hari ini dalam situasi di mana saya memiliki dua string yang saya butuhkan untuk membandingkan kata demi kata dan keinginan untuk sesuatu seperti diff git.

Saya mengetahui wdiff+ colordiff, tetapi hasilnya tentu bukan bintang:

me@me:~$ wdiff <(echo -e "abc\ndef") <(echo -e "dbcx\ndef") | colordiff
[-abc-]{+dbcx+}
def

Apakah ada pilihan lain yang lebih baik? Aku tidak terlalu suka mereka [-, -]dan {+, +}.

Jawaban:


6

Anda dapat menggunakan git's sendiri diff-highlight . Ini dapat menyoroti perbedaan kata dalam diffoutput terpadu , dan juga dapat mengatasi warna ANSI pada input. Jadi Anda dapat melakukan sesuatu seperti ini:

colordiff -u <(echo -e "foo abc\ndef") <(echo -e "foo dbcx\ndef") | diff-highlight

Itu hanya bekerja untuk kasus sepele di mana ada satu kata yang berubah di telepon. Ketika beberapa kata berubah, itu salah membentang video terbalik di kata-kata yang tidak berubah: colordiff -u <(echo -e "foo abc x y\ndef") <(echo -e "foo dbcx x z\ndef") | diff-highlight
Thomas Dickey

@ThomasDickey Tampaknya perlu dua kata untuk sinkronisasi kembali. Lagi pula, itu adalah apa yang gitdilakukannya. shrug
Satō Katsura
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.