ใช้หน้าต่างที่เปิดตามแนวตั้งสองหน้าต่างใน Vim


103

ฉันเปิดไว้สองไฟล์ โดยจะเปิดในโหมดแนวตั้งถัดจากถัดไป ฉันสามารถเปลี่ยนไฟล์ทั้งสองนี้ทันทีโดยไม่ต้องออกหรือปิด Vim

คำตอบ:


155

ในการเริ่มต้นความแตกต่างบนหน้าต่างที่มองเห็นได้ทั้งหมด:

:windo diffthis

ซึ่งดำเนินการ:diffthisในแต่ละหน้าต่าง

ในการสิ้นสุดโหมด diff:

:diffoff!

( !ทำให้diffoffใช้กับทุกหน้าต่างของแท็บปัจจุบัน - คงจะดีถ้าdiffthisมีคุณสมบัติเหมือนกัน แต่ไม่มี)


:windoคำสั่งทำให้ดียิ่งขึ้น ขอบคุณ. ฉันจะทำแผนที่เพื่อให้ง่ายขึ้น
Fatih Arslan

1
นั่นเป็นคำตอบที่ดี แต่โปรดทราบว่าควรปิดหน้าต่าง miniufexplorer ก่อนการดำเนินการนี้หากเปิดไว้ มิฉะนั้นความแตกต่างจะแสดงผลลัพธ์ที่ไม่ถูกต้อง
baldrs

:windo difft[this]หนึ่งสามารถใช้นามแฝง Ref::help diff
DmitrySandalov

@FatihArslan,: windo diff สิ่งนี้ไม่ได้ทำอะไรในกรณีของฉัน แต่เพียงแค่ทิ้งไว้ที่คอลัมน์สีเทาด้านซ้ายถัดจากหมายเลขบรรทัด ฉันเปิดไฟล์ Vim ไว้สองไฟล์
earik87

22

ในแต่ละหน้าต่างที่คุณต้องการแตกต่างกัน:

:diffthis

หากคุณต้องการทำให้หน้าต่างที่เปิดอยู่ทั้งหมดแตกต่างกันคุณสามารถทำได้:

:windo diffthis

( windoจะใช้คำสั่งกับหน้าต่างที่เปิดอยู่ทั้งหมด)


7

ติดตามคำตอบก่อนหน้านี้

  • :windo difft(ย่อมาจากdiffthis) จะเริ่มโหมด diff ในทุกหน้าต่างที่เปิดอยู่
  • :windo diffo(ย่อมาจากdiffoff) จะหยุดโหมด diff ในทุกหน้าต่างที่เปิดอยู่

ฉันมีการแมปต่อไปนี้ในของฉันvimrcเพื่อให้ง่ายขึ้น:

command! Difft windo diffthis
command! Diffo windo diffoff

3

ตามคำตอบก่อนหน้านี้ฉันได้ปรับการแม็ปที่จัดทำโดย @cxw การทำแผนที่ต่อไปนี้จะปิด NERDTree โดยอัตโนมัติและทำให้หน้าต่างที่เปิดอยู่แตกต่างกัน ไม่สำคัญว่าถ้า NERDTree อยู่ใกล้ก็ทำงานในลักษณะเดียวกัน ฉันทำสิ่งนี้ค่อนข้างบ่อยดังนั้นมันจึงช่วยฉันได้พอสมควร

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