Chụp khác hai cửa sổ mở dọc trong Vim


102

Tôi đã mở hai tệp. Chúng được mở ở chế độ dọc, bên cạnh tiếp theo. Tôi có thể khác biệt ngay lập tức hai tệp này mà không cần rời khỏi hoặc đóng Vim không?

Câu trả lời:


154

Để bắt đầu khác biệt trên tất cả các cửa sổ hiển thị:

:windo diffthis

thực thi :diffthistrên mỗi cửa sổ.

Để kết thúc chế độ khác biệt:

:diffoff!

(Các !làm cho diffoffáp dụng đối với tất cả các cửa sổ của tab hiện tại - nó muốn được tốt đẹp nếu diffthiscó tính năng tương tự, nhưng nó không.)


Các :windolệnh làm cho nó thậm chí còn tốt hơn. Cảm ơn. Tôi sẽ lập bản đồ để làm cho nó dễ dàng hơn.
Fatih Arslan

1
Đó là câu trả lời hay, nhưng lưu ý rằng cửa sổ minibufexplorer nên được đóng trước khi thao tác này, nếu được mở. Nếu không, khác biệt hiển thị kết quả không chính xác.
baldrs

Người ta có thể sử dụng một bí danh :windo difft[this]. Tham khảo::help diff
DmitrySandalov

@FatihArslan,: windo diffthis không làm được gì trong trường hợp của tôi, mà chỉ để lại ở cột màu xám bên trái bên cạnh số dòng. Tôi có hai tệp Vim khác nhau đang mở.
earik87

22

trong mỗi cửa sổ bạn muốn gõ khác nhau:

:diffthis

Nếu bạn muốn khác biệt tất cả các cửa sổ đang mở, bạn có thể làm:

:windo diffthis

( windosẽ áp dụng lệnh cho tất cả các cửa sổ đang mở)


6

Theo dõi các câu trả lời trước đó,

  • :windo difft (viết tắt của diffthis ) sẽ bắt đầu chế độ khác biệt trong tất cả các cửa sổ đang mở.
  • :windo diffo(viết tắt của diffoff) sẽ dừng chế độ khác biệt trong tất cả các cửa sổ đang mở.

Tôi có các ánh xạ sau trong của tôi vimrcđể làm cho nó dễ dàng hơn:

command! Difft windo diffthis
command! Diffo windo diffoff

3

Tiếp theo các câu trả lời trước đó, tôi đã điều chỉnh ánh xạ do @cxw cung cấp. Ánh xạ sau sẽ tự động đóng NERDTree và thay đổi các cửa sổ đang mở. Không quan trọng nếu NERDTree đóng, nó hoạt động theo cùng một cách. Tôi làm điều này khá thường xuyên vì vậy nó đã giúp tôi tiết kiệm được kha khá thời gian.

command! Difft NERDTreeClose | windo diffthis
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.