diff characterwise


9

มีเครื่องมือที่มีเสถียรภาพ (ตัวเลือก / ปลั๊กอินของเครื่องมือที่มีอยู่: vimdiff, diff, ฯลฯ ) ใน Linux เพื่อทำ diff ระหว่างสองไฟล์ข้อความตามตัวอักษร?

ฉันต้องการดูการเรียงลำดับทั่วไปที่ยาวที่สุดระหว่างไฟล์สองไฟล์ที่ไฮไลต์ มีอัลกอริธึมเวลาพหุนามคลาสสิกสำหรับเรื่องนั้น แต่เครื่องมือมาตรฐานดูเหมือนจะทำงานทีละบรรทัด

คำตอบ:


2

cmpตัวละครที่ดีอายุจะแตกต่างกันตามตัวอักษร มันเป็นส่วนหนึ่งของ UNIX ประมาณ 40 ปี https://www.freebsd.org/cgi/man.cgi?query=cmp&apropos=0&sektion=0&manpath=Unix+Seventh+Edition&arch=default&format=html

น่าเสียดายที่มันหยุดที่อักขระที่แตกต่างกันแรกดังนั้นฉันไม่รู้ว่าคำตอบนี้มีประโยชน์สำหรับคุณหรือไม่


ขอบคุณ ฉันวิ่งไปcmp -bl ...หาคำตอบนี้และรายงานความแตกต่างและตำแหน่งของพวกเขา cmp (GNU diffutils) 3.6รุ่นของฉันคือ
Dzamo Norton

2

ติดตั้งdiffchar( ลิงค์ Githubสำหรับผู้ที่ใช้โปรแกรมเสริมโหลดอัตโนมัติ) ตั้งแต่ v4.7 เมื่อเปิดใช้งานปลั๊กอิน Vim จะแสดงความแตกต่างที่แน่นอนมากขึ้นโดยอัตโนมัติ:

ป้อนคำอธิบายรูปภาพที่นี่

  • คุณสามารถกดF7(แป้นพิมพ์เริ่มต้น) เพื่อสลับระหว่างปกติและปลั๊กอิน กำหนดใหม่ด้วย:

    nmap <silent> <key> <Plug>ToggleDiffCharAllLines
    

    แทนที่<key>ด้วยรหัสคีย์ที่เหมาะสม

  • คุณสามารถใช้สีเพิ่มเติมได้:

    let g:DiffColors=100
    

น่าเสียดายที่นี่ใช้งานไม่ได้กับทุกเส้น อย่างไรก็ตามพื้นที่ทั่วไปถูกทิ้งไว้โดยไม่รับแสง (และพับถ้ามันยาวเกินไป) ดังนั้นคุณอาจได้รับประโยชน์จากสิ่งนั้น


คัดลอกมาจากโพสต์ Vi และ Vim Stack Exchange ของฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.