เลื่อนลงทั้งสองส่วนของหน้าต่างแยกพร้อมกันใน Vim


119

เป็นไปได้ไหมที่จะเลื่อนส่วนซ้ายและขวาของหน้าต่างแยกแนวตั้งใน Vim ฉันมีสองไฟล์ที่ฉันต้องการเปรียบเทียบโดยคร่าวๆ แต่ละบรรทัดของไฟล์เหล่านี้มีลักษณะเกือบเหมือนกัน

คำตอบ:


90

โปรดดูเอกสารสำหรับเลื่อนผูกพัน คุณจะต้องตั้งค่านี้สำหรับแต่ละหน้าต่างที่คุณต้องการผูก (เช่นขั้นต่ำ 2)

อย่างไรก็ตามหากคุณกำลังเปรียบเทียบไฟล์ 2 ไฟล์vimdiffอาจมีประโยชน์มากกว่า


4
Vimdiff ... คุณอยู่ที่ไหนมาตลอดชีวิตของฉัน?
hoosierEE

@BrianAgnew เพียงแค่ให้คำสั่งให้เราคัดลอกผู้ชาย ทำให้ชีวิตของเราง่ายขึ้น. ขอบคุณสำหรับ vimdiff แต่!
Nathan

185

ไปที่แยกแรกแล้วพิมพ์

:set scrollbind

ไปที่รายการถัดไป ( ctrl+ w) แล้วทำเช่นเดียวกัน

ในการปิดใช้งาน:

:set noscrollbind

สำหรับข้อมูลเพิ่มเติมโปรดดูเอกสารสำหรับการผูกแบบเลื่อน - http://vimdoc.sourceforge.net/htmldoc/scroll.html#scroll-binding


59
หากคุณเปิดไฟล์ทั้งหมดไว้คุณสามารถ:windo set scrollbindตั้งค่าสำหรับการแยกทั้งหมดพร้อมกันได้
Bernhard

54
:windo set scrollbind

จะตั้งค่า scrollbind ในทุกหน้าต่าง


3
หากคุณพบว่าตัวเองทำสิ่งนี้nmap <F5> :windo set scrollbind!<cr>บ่อยครั้งอาจเป็นประโยชน์หากมีบางอย่างเช่นการสลับแถบเลื่อนในหน้าต่างที่เปิดอยู่ทั้งหมด
jlund3

ไม่รู้ว่าทำไม แต่scrollbind!ไม่ได้ผลสำหรับฉัน แต่invscrollbindทำ การทำแผนที่ที่ยอดเยี่ยม ขอบคุณ!
UlfR

11

G'day,

พยายามใช้ vimdiff กับสองไฟล์หรือไม่?

vimdiff file1 file2

สิ่งนี้จะทำให้คุณมีการเชื่อมการเลื่อนตามค่าเริ่มต้น


1
ปัญหาคือเส้นทั้งหมดแตกต่างกันมันเริ่มยุ่งเหยิง .. เส้นเกือบเหมือนกัน แต่อาจแตกต่างกันไปทีละตัว ... และฉันไม่อยากให้มุมมองของฉันถูกรบกวนมากเกินไป.. ขอบคุณ
LB40

1
@ LB40 คุณอาจลองปรับแต่งสีของคุณดูที่stackoverflow.com/questions/24666558/…
qneill

8

จากบรรทัดคำสั่ง:

vim -O file1 file2 -c 'windo set scb!'

-O = เปิดเคียงข้างกัน

-c = สิ่งที่ตามมาในเครื่องหมายคำพูดจะถือว่าเป็นตัวเลือกกลุ่ม

'windo' = ใช้กับแผงทั้งหมด

'scb' = ชวเลขสำหรับ scrollbind บันทึกการพิมพ์บางอย่าง แต่ทั้งสองพิมพ์แทนกันได้

'!' = สลับ ด้วยวิธีนี้คุณสามารถใช้คำสั่งเดียวกันเพื่อปิดในภายหลังหากคุณเลือกที่จะ


5

สำหรับคนรุ่นหลังนี่คือสิ่งที่ฉันต้องทำเนื่องจากฉันไม่ได้เริ่มต้นด้วย vimdiff

ฉันโหลดหนึ่งไฟล์ จากนั้น: vsp เพื่อโหลดอีกอัน

ไฟล์เหล่านี้เป็นไฟล์ที่แตกต่างกันมาก แต่ฉันอยากเห็นว่ามีอะไรอยู่ระหว่างกัน

ดังนั้น...

:set diff
:set diffopt=iwhite
:set scrollbind

3
คุณสามารถรับสิ่งเหล่านี้ทั้งหมดสำหรับบัฟเฟอร์ที่กำหนด (: diff,: diffopt,: scrollbind) ในคำสั่งเดียวด้วย: diffthis ในแต่ละบัฟเฟอร์
qneill
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.