khác biệt


9

Có một công cụ ổn định (tùy chọn / plugin của một công cụ hiện có: vimdiff, diff, v.v.) trong Linux để thực hiện khác biệt giữa hai tệp văn bản một cách đặc trưng không?

Tôi muốn xem phần tiếp theo chung dài nhất giữa hai tệp của tôi được tô sáng. Có một thuật toán đa thức thời gian cổ điển cho điều đó, nhưng các công cụ tiêu chuẩn dường như chỉ hoạt động theo từng dòng.

Câu trả lời:


2

Tốt cũ cmplàm một khác biệt đặc trưng. Nó là một phần của UNIX trong khoảng 40 năm. https://www.freebsd.org/cgi/man.cgi?query=cmp&apropos=0&sektion=0&manpath=Unix+Seventh+Edition&arch=default&format=html

Thật không may, nó dừng lại ở ký tự khác nhau đầu tiên, vì vậy tôi không biết câu trả lời này có hữu ích cho bạn không.


Cảm ơn. Tôi chỉ chạy một cmp -bl ...sau khi tìm thấy câu trả lời này và nó đã báo cáo nhiều sự khác biệt và vị trí của họ. Phiên bản của tôi là cmp (GNU diffutils) 3.6.
Dzamo Norton

2

Cài đặt diffchar( liên kết Github cho những người sử dụng trình tải tự động plugin). Kể từ v4.7, với plugin được kích hoạt, Vim sẽ tự động hiển thị các khác biệt chính xác hơn:

nhập mô tả hình ảnh ở đây

  • Bạn có thể nhấn F7(sơ đồ phím mặc định) để chuyển đổi giữa plugin thông thường và plugin. Tái chỉ định với:

    nmap <silent> <key> <Plug>ToggleDiffCharAllLines
    

    thay thế <key>bằng một mã khóa thích hợp.

  • Bạn có thể sử dụng nhiều màu sắc hơn:

    let g:DiffColors=100
    

Thật không may, điều này không hoạt động trên các dòng, tốt nhất tôi có thể nói. Tuy nhiên, các khu vực chung không được chiếu sáng (và gấp lại, nếu chúng phát triển quá dài), vì vậy bạn có thể tận dụng lợi thế đó.


Sao chép từ bài đăng Vi và Vim Stack Exchange của tôi .

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.