เปรียบเทียบรายละเอียดเพิ่มเติมภายในบรรทัด


17

ฉันใช้vimdiffเพื่อตรวจสอบความแตกต่างระหว่างไฟล์และบางครั้งมันก็พลาดไปเล็กน้อย ตัวอย่างเช่นถ้าฉันมีสองไฟล์ต่อไปนี้:

//a.c
printf("Hello\n");

และ:

//b.c
int i = printf("hello\n") + 3;

แสดงในvimdiff:

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

สิ่งที่ฉันต้องการเห็นคือใน BC hไม่มีตัวพิมพ์ใหญ่

มีวิธีที่จะบอก vimdiff เพื่อเปรียบเทียบ (ในบรรทัดนั้น) เพียงแค่ส่วนหนึ่งของมัน (ฉันหมายถึงไม่สนใจint i =และ+ 3)


4
diffcharปลั๊กอินน่าจะเป็นสิ่งที่คุณต้องการ แต่ฉันมีศูนย์ประสบการณ์กับมัน บางทีคนที่มีประสบการณ์ในการใช้มันสามารถให้คำตอบที่ดีและมีรายละเอียด (หรืออาจเป็นทางเลือก)
tokoyami

คำตอบ:


15

ฉันไม่คิดว่า Vim นั้นสามารถทำได้ จาก:h view-diffs(เน้นที่เหมือง):

hl-DiffText DiffText เปลี่ยนข้อความภายในบรรทัดที่เปลี่ยนแปลง  เป็นกลุ่ม
                                ค้นหาอักขระตัวแรกที่แตกต่าง
                                และตัวละครสุดท้ายที่แตกต่าง
                                (ค้นหาจากท้ายบรรทัด) 
                                มีการเน้นข้อความในระหว่าง  ซึ่งหมายความว่า
                                ส่วนนั้นอยู่ตรงกลางที่ยังคงอยู่
                                เหมือนกันจะถูกเน้นอยู่แล้ว   เฉพาะ "iwhite" ของ
                                'diffopt' ถูกใช้ที่นี่

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

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

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

    nmap <silent> <key> <Plug>ToggleDiffCharAllLines
    

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

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

    let g:DiffColors=100
    

+1 แต่ "ใกล้ขึ้นหนึ่งขั้น" ดูเหมือนจะเข้มงวดเกินไปสำหรับฉัน Diffchar แก้ปัญหานี้โดยสิ้นเชิง IMO
Sparhawk

@Sparhawk ดีก็ไม่ได้ละเลยองค์ประกอบทั่วไปในสาย (OP ต้องการเพียงแค่การเปลี่ยนแปลงที่ไฮไลต์)
Muru

ฉันไม่แน่ใจว่าฉันเข้าใจ องค์ประกอบทั่วไปไม่ได้ถูกละเว้นในตัวอย่างนี้ (เช่นprintfและello)
Sparhawk

1
@Sparhawk ในตัวอย่างนี้ใช่ แต่ด้วยการเปลี่ยนแปลงที่ซับซ้อนมากขึ้นมันจะกลายเป็นยุ่งเหยิงอย่างรวดเร็ว
muru

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