Cuộn xuống đồng thời cả hai phần của cửa sổ chia nhỏ trong Vim


119

Có thể cuộn xuống các phần bên trái và bên phải của cửa sổ được chia theo chiều dọc trong Vim không? Tôi có hai tệp tôi muốn so sánh đại khái. Mỗi dòng của các tệp này trông gần như giống nhau.

Câu trả lời:


90

Xem tài liệu về ràng buộc cuộn . Bạn sẽ cần đặt điều này cho mỗi cửa sổ mà bạn muốn ràng buộc (ví dụ: tối thiểu là 2)

Tuy nhiên, nếu bạn đang so sánh 2 tệp, vimdiff có thể được sử dụng nhiều hơn


4
Vimdiff ... em đã ở đâu trong suốt cuộc đời anh?
hoosierEE

@BrianAgnew chỉ cho chúng tôi một lệnh để sao chép, anh bạn. Làm cho cuộc sống của chúng tôi dễ dàng hơn. Cảm ơn vì vimdiff, mặc dù!
Nathan

184

Chuyển đến phần tách đầu tiên và nhập

:set scrollbind

Chuyển đến dấu ( ctrl+ w) tiếp theo và thực hiện tương tự.

Để tắt:

:set noscrollbind

Để biết thêm thông tin, hãy kiểm tra tài liệu về ràng buộc cuộn - http://vimdoc.sourceforge.net/htmldoc/scroll.html#scroll-binding


58
Nếu bạn mở tất cả các tệp, bạn cũng có thể :windo set scrollbindđặt nó cho tất cả các tệp cùng một lúc.
Bernhard

54
:windo set scrollbind

sẽ thiết lập scrollbind trong tất cả các cửa sổ.


3
Nếu bạn thấy mình làm điều này nhiều, có thể hữu ích nếu bạn có một cái gì đó như nmap <F5> :windo set scrollbind!<cr>chuyển đổi trục cuộn trong tất cả các cửa sổ đang mở.
jlund3 17/12/13

Không biết tại sao nhưng scrollbind!không làm việc cho tôi, nhưng invscrollbindđã làm. Một ánh xạ SIÊU. Cảm ơn!
UlfR

11

G'day,

Đã thử sử dụng vimdiff trên hai tệp?

vimdiff file1 file2

Điều này sẽ cung cấp cho bạn ràng buộc cuộn theo mặc định.


1
vấn đề là tất cả các dòng khác nhau, nó bắt đầu lộn xộn .. Các dòng gần giống nhau nhưng có thể khác nhau bởi một ký tự ... và tôi không muốn tầm nhìn của tôi bị xáo trộn quá nhiều..cảm ơn.
LB40

1
@ LB40, bạn có thể cân nhắc điều chỉnh màu sắc của mình, xem stackoverflow.com/questions/24666558/…
qneill

8

Từ dòng lệnh:

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

-O = mở cạnh nhau.

-c = những gì sau trong dấu ngoặc kép được coi là một tùy chọn vim.

'windo' = áp dụng cho tất cả các bảng.

'scb' = viết tắt của scrollbind. Tiết kiệm một số thao tác nhập nhưng cả hai có thể hoán đổi cho nhau.

'!' = chuyển đổi. Bằng cách này, bạn có thể sử dụng lệnh tương tự để tắt nó sau này nếu muốn.


5

Đối với hậu thế, đây là những gì tôi cần làm, vì tôi không bắt đầu với vimdiff.

Tôi đã tải một tệp. Sau đó: vsp để tải khác.

Chúng là các tệp khá khác nhau, nhưng tôi muốn xem điểm chung giữa chúng.

Vì thế...

:set diff
:set diffopt=iwhite
:set scrollbind

3
Bạn có thể nhận được tất cả những đối với một bộ đệm nhất định (: diff,: diffopt,: scrollbind) trong một lệnh với: diffthis trong mỗi bộ đệm
qneill
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.