Vim - Diff

Tương tự như lệnh diff của UNIX, chúng ta có thể sử dụng Vim để hiển thị khác biệt theo cách tốt hơn nhiều. Nó sẽ hiển thị khác nhau theo cách đầy màu sắc. Trong chương này, chúng ta sẽ thảo luận về các mục sau:

  • Hiển thị sự khác biệt giữa các tệp
  • Kích hoạt và hủy kích hoạt chế độ khác biệt
  • Điều hướng ở chế độ khác
  • Áp dụng các thay đổi từ cửa sổ khác nhau

Hiển thị sự khác biệt

Để hiển thị sự khác biệt giữa các tệp, hãy thực hiện lệnh dưới đây:

$ vimdiff <file> <file> OR $ vim –d <file> <file>

Ví dụ, lệnh dưới đây hiển thị sự khác biệt -

Trong hình trên, văn bản được đánh dấu bằng màu đỏ tươi là phổ biến. Văn bản còn lại được đánh dấu bằng màu đỏ cho thấy có một số khác biệt sau văn bản chung.

Kích hoạt và hủy kích hoạt chế độ khác biệt

Nếu bạn đã có vim và bạn muốn thực hiện hành động khác, hãy sử dụng một trong các lệnh sau:

diffsplit

Sử dụng lệnh dưới đây để thực hiện chia theo chiều ngang -

:diffsplit filename

Hình ảnh trên cho thấy chúng tôi đang so sánh hai tệp tin là message-1.txt và message-2.txt.

Đèn khuếch tán dọc

Để thực hiện chia theo chiều dọc, sử dụng lệnh sau:

:vert diffsplit <filename>

Nó mở ra cửa sổ sau -

Hình ảnh trên cho thấy chúng tôi đang so sánh hai tệp tin là message-1.txt và message-2.txt.

Điều hướng ở chế độ khác

Điều hướng ở chế độ khác có một chút khác biệt. Ví dụ: khi bạn cuộn văn bản từ một cửa sổ thì văn bản từ cửa sổ liền kề cũng được cuộn theo. Đây được gọi là scrollbind. Để kích hoạt việc sử dụng này -

:set scrollbind

Để vô hiệu hóa việc sử dụng này -

:set noscrollbind

Nếu bạn chỉnh sửa tệp trong chế độ này, hãy sử dụng lệnh sau để cập nhật khác biệt -

:diffupdate

Chuyển đổi giữa các cửa sổ khác nhau

Để chuyển đổi giữa các cửa sổ khác nhau, hãy thực hiện lệnh sau:

Ctrl + w Ctrl + w

Xin lưu ý rằng, chúng ta phải nhấn Ctrl + w 2 lần.

Chuyển đến thay đổi trước đó

Trong cửa sổ khác, thực hiện lệnh sau để chuyển đến thay đổi trước đó:

[c

Chuyển đến thay đổi tiếp theo

Trong cửa sổ khác, thực hiện lệnh sau để chuyển đến thay đổi tiếp theo:

]c

Áp dụng các thay đổi từ cửa sổ khác

Áp dụng thay đổi trong các cửa sổ khác nhau hiện tại

Để áp dụng thay đổi từ cửa sổ khác biệt liền kề sang cửa sổ khác hiện tại, hãy thực hiện -

:diffget

Ví dụ, nếu bạn đang ở cửa sổ bên trái và bạn muốn thay đổi từ cửa sổ bên phải sang cửa sổ hiện tại thì bạn sẽ thực hiện lệnh trên.

Áp dụng thay đổi từ ngăn hiện tại sang ngăn khác

Để áp dụng thay đổi từ cửa sổ khác biệt hiện tại sang cửa sổ khác biệt liền kề, hãy thực hiện -

:diffput

Ví dụ, nếu bạn đang ở cửa sổ bên trái và bạn muốn áp dụng thay đổi từ cửa sổ hiện tại sang cửa sổ bên phải thì bạn sẽ thực hiện lệnh trên.