แตกต่างสองแท็บในเป็นกลุ่ม


121

สถานการณ์: ฉันได้เปิด Vim และวางข้อความบางส่วน ฉันเปิดแท็บที่สอง:tabeและวางข้อความอื่นในนั้น

เป้าหมาย: ฉันต้องการแท็บที่สามที่มีผลลัพธ์เทียบเท่ากับการเขียนทั้งสองข้อความลงในไฟล์และเปิดด้วยvimdiff.

สิ่งที่ใกล้เคียงที่สุดที่ฉันสามารถหาได้คือ "แตกต่างกันระหว่างบัฟเฟอร์ปัจจุบันกับไฟล์" แต่ไม่diffได้รับบัฟเฟอร์ที่เปิดอยู่ แต่ไม่ได้บันทึกสองรายการ


1
คำสั่ง tabe คืออะไร?
hhafez

1
@hhafez - เปิดบัฟเฟอร์ใหม่ในแท็บใหม่
Rook

3
ย่อมาจาก: tabedit, aka: tabnew
TSomKes

คำตอบ:


188

ฉันขอแนะนำให้เปิดไฟล์ที่สองในแท็บเดียวกันแทนการเปิดไฟล์ใหม่

นี่คือสิ่งที่ฉันมักจะทำ:

:edit file1
:diffthis
:vnew
:edit file2
:diffthis

:vnewคำสั่งแยกมุมมองปัจจุบันในแนวตั้งเพื่อให้คุณสามารถเปิดไฟล์ที่สองมี :diffthis(หรือสั้น:difft) คำสั่งที่ใช้แล้วให้กับแต่ละมุมมอง


1
Fwiw, MacVim ดูเหมือนจะไม่มีสิ่งนี้ตามค่าเริ่มต้น แต่ฉันคิดว่าคุณควรจะไปที่เทอร์มินัลแล้วพิมพ์vimdiff file1.txt file2.txtและเคาะตัวเองออก
ruffin

3
นี่คือ awesometastic edit fileNชิ้นส่วนสามารถถูกแทนที่ด้วยเพียงแค่วางจากบัฟเฟอร์ซึ่งช่วยให้คุณ diff สองชิ้นของข้อความโดยไม่ต้องวางในแต่ละไฟล์ tmp (สิ่งที่ผสมช่วยให้คุณทำ แต่เครื่องมือ diff ภาพใน Mac จะขาด) มันใช้งานได้ใน MacVim สำหรับฉันนอกกรอบ
yshavit

38

ฉันขอแนะนำให้ลอง: diffthisหรือ: diffsplit


10
:vert diffsplitทำให้มีมุมมองที่แตกต่างแบบดั้งเดิมมากกว่าที่ไม่มี:vert
ephemient

7
คุณสามารถ: ตั้งค่า diffopt + = vertical เพื่อให้: vert เป็นค่าเริ่มต้น
graywh

3
นอกจากนี้ในการเลื่อนสองหน้าต่างพร้อมกัน: :set scrollbindทั้งสองอย่าง
Dmytro Sirenko

ใช้งานไม่ได้ถ้าฉันต้องแท็บเช่นถามในคำถาม ถ้าฉัน:diffsplitได้บัฟเฟอร์สองตัวที่เชื่อมต่อกัน
erik

25

เมื่อคุณเปิดไฟล์สองไฟล์ในตัวแยกแนวตั้งให้เรียกใช้

:windo diffthis


8
ใช้:diffoffเพื่อปิดโหมด diff
AB

2
แต่ฉันจะเปลี่ยนจากสองแท็บเป็นการแบ่งตามแนวตั้งได้อย่างไร
erik

1

เนื้อหาของแท็บทั้งหมดอยู่ในบัฟเฟอร์ ดูบัฟเฟอร์:

:buffers

ค้นหาหมายเลขที่เหมาะสมสำหรับเนื้อหาซึ่งควรแตกต่างกับเนื้อหาแท็บปัจจุบันของคุณ

เปิดบัฟเฟอร์ภายในแท็บปัจจุบันของคุณ (fe บัฟเฟอร์หมายเลข 4)

:sb 4

หรือทำเพื่อดูแนวตั้ง:

:vertical sb 4

จากนั้นคุณสามารถเปลี่ยนเนื้อหาด้วย

:windo diffthis

หากคุณวิเคราะห์ความแตกต่างเสร็จแล้วคุณสามารถป้อนข้อมูล:

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