Từ màu khác giống như git?


8

Tôi đã sử dụng git's (màu) từ lâu --word-diffmà tôi thấy tuyệt vời. Tôi thấy mình hôm nay trong một tình huống mà tôi có hai chuỗi tôi cần để so sánh từng từ và khao khát một cái gì đó giống như khác biệt của git.

Tôi biết về wdiff+ colordiff, nhưng kết quả của nó chắc chắn không phải là xuất sắc:

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

Có lựa chọn nào tốt hơn không? Tôi không đặc biệt thích những thứ đó [-, -]{+, +}.

Câu trả lời:


6

Bạn có thể sử dụng git's riêng diff-nổi bật . Nó có thể làm nổi bật sự khác biệt từ trong diffđầu ra hợp nhất và nó cũng có thể đối phó với màu ANSI trên đầu vào. Vì vậy, bạn có thể làm một cái gì đó như thế này:

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

Điều đó chỉ hoạt động cho trường hợp tầm thường khi có một từ duy nhất được thay đổi trên dòng. Khi nó thay đổi nhiều từ, nó sẽ kéo dài không chính xác video đảo ngược qua các từ không thay đổi: colordiff -u <(echo -e "foo abc x y\ndef") <(echo -e "foo dbcx x z\ndef") | diff-highlight
Thomas Dickey

@ThomasDickey Có vẻ như cần hai từ để đồng bộ lại. Dù sao, nó những gì gitkhông. nhún vai
Satō Katsura
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.