berbeda karakter

9

Apakah ada alat yang stabil (opsi / plugin alat yang ada: vimdiff, diff, dll) di Linux untuk melakukan perbedaan antara dua file teks secara karakter?

Saya ingin melihat urutan umum terpanjang antara dua file saya yang disorot. Ada algoritma polinomial-waktu klasik untuk itu, tetapi alat standar tampaknya hanya bekerja baris demi baris.

Valentas
sumber

Jawaban:

2

Baik tua cmptidak berbeda secara karakter. Sudah menjadi bagian dari UNIX selama sekitar 40 tahun. https://www.freebsd.org/cgi/man.cgi?query=cmp&apropos=0&sektion=0&manpath=Unix+Seventh+Edition&arch=default&format=html

Sayangnya, ini berhenti pada karakter yang berbeda pertama, jadi saya tidak tahu apakah jawaban ini berguna untuk Anda.

Dominik R
sumber
Terima kasih. Saya hanya menjalankan cmp -bl ...setelah menemukan jawaban ini dan melaporkan beberapa perbedaan dan posisi mereka. Versi saya adalah cmp (GNU diffutils) 3.6.
Dzamo Norton
2

Instal diffchar( tautan Github untuk mereka yang menggunakan autoloader plugin). Sejak v4.7, dengan plugin diaktifkan, Vim secara otomatis menunjukkan perbedaan yang lebih tepat:

masukkan deskripsi gambar di sini

  • Anda dapat menekan F7(keymap default) untuk beralih di antara yang biasa dan plugin. Tugaskan kembali dengan:

    nmap <silent> <key> <Plug>ToggleDiffCharAllLines
    

    mengganti <key>dengan kode kunci yang sesuai.

  • Anda dapat menggunakan lebih banyak warna:

    let g:DiffColors=100
    

Sayangnya, ini tidak bekerja lintas jalur, terbaik yang bisa saya katakan. Namun, wilayah umum dibiarkan tidak disorot (dan dilipat, jika tumbuh terlalu lama), sehingga Anda mungkin dapat memanfaatkannya.


Disalin dari pos Vi dan Vim Stack Exchange saya .

muru
sumber