So sánh hai tệp trong Vim


63

Có thể xem hai tệp cạnh nhau trong Vim không? Nếu vậy, làm cách nào tôi có thể thiết lập trình chỉnh sửa của mình để thực hiện việc này và có cách nào diffgiữa hai tệp trong Vim không?

Tôi nhận thức được các lệnh :next:prevlệnh, nhưng đây không phải là những gì tôi đang theo đuổi. Nó sẽ thực sự tốt đẹp để xem hai tập tin cùng một lúc.

Câu trả lời:


43

Mở chế độ xem cạnh nhau:

Ctrl+w v

Thay đổi giữa chúng:

Ctrl+w h or l

Kiểm tra lệnh vimdiff , một phần của gói vim, nếu bạn muốn có chế độ xem khác:

vimdiff file1.txt file2.txt

2
Có cách nào để khóa cuộn giữa hai cửa sổ không?
Zaid

1
Có, hãy xem vimdoc.sourceforge.net/htmldoc/options.html#%27scrollbind%27 - với vimdiff, đây là mặc định.
maxschlepzig

1
Tôi thường sử dụng "diff file1 file2" trên dòng lệnh.
djangofan

2
@ Sử dụng trả tiền vimdiff file1.txt file2.txt(xem bên dưới)
Eduardo Cuomo

42

Bạn cũng có thể mở vim ở chế độ chia đôi màn hình, với -Otùy chọn: -

vim -O file1 [file2 ...]

Để sau đó bật chế độ khác, bạn cần chạy :diffthislệnh trong mỗi khung.

Một tình huống sử dụng khác là nếu bạn đã mở một tệp trong vim và bạn muốn mở và so sánh nó với tệp khác. Sau đó, bạn có thể sử dụng các lệnh vim sau: -

:vs otherfile (open otherfile in vertical split screen)
:diffthis (turn on diff mode in original file)
Ctrl+w l  (swap to newly opened file)
:diffthis (turn on diff mode in opened file)

Sau đó, bạn có thể tắt chế độ khác trong mỗi khung bằng lệnh vim :diffoff.

EDIT
Và một tiêu chuẩn khác chưa được đề cập: -

vim -d file1 [file2 ...]

Điều này tương đương với gọi vimdifftrực tiếp.


11
:windo :diffthiscó thể được sử dụng thay vì ba lệnh cuối cùng.
Bernhard

2

Hoặc chỉ cần mở tệp đầu tiên trong VIM, sau đó :vert diffsplit file2 :vertlàm cho nó chia màn hình theo chiều dọc.

diffsplit thực hiện một khác biệt, và phân chia các tập tin và cuộn khóa chúng.

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.