Làm thế nào để bạn sử dụng cây thay đổi trong vim


14

Có thể truy xuất các thay đổi chi nhánh mà tôi "từ bỏ"? Ví dụ: tôi đang hoàn tác một số thao tác bằng cách sử dụng u, sau đó tôi đang thực hiện thay đổi trong chế độ chèn. Nhưng sau đó tôi nhận ra rằng tôi không muốn có sự thay đổi này, tôi muốn quay lại nơi tôi đã bắt đầu (trước khi hoàn tác).

Là những thay đổi bị mất mãi mãi?

Câu trả lời:


12

Để điều hướng cây hoàn tác, cách tốt nhất của bạn là sử dụng plugin Gundo . Điều này tạo ra một cửa sổ phân chia mới với các liên kết đặc biệt để nhảy đến các nhánh khác nhau trong cây hoàn tác cũng như khung xem trước cho bạn thấy chính xác những gì đã thay đổi giữa mỗi nút trong cây.


Một lựa chọn khác sẽ là UndoTree.
âm nhạc

12

Đối với các trường hợp đơn giản như thế này, bạn chỉ cần nhấn g-.

Về cơ bản, những gì nó làm là đi qua danh sách thay đổi theo thời gian (coi một uthay đổi thực tế), thay vì tuyến tính (như với u/ <C-r>).

Ví dụ: nếu bạn đã chèn một vài dòng và nhấn g-, điều này xảy ra:

trình diễn


Làm thế nào bạn tạo ra gif hoạt hình?
guido 3/2/2015

4
@guido Tôi đã sử dụng một công cụ tùy chỉnh được gọi là mkcast .
Doorknob

2

Không, bạn không thể quay lại và chuyển tiếp trong cây. Cách tốt nhất là sử dụng một plugin cho công việc này.

Một plugin khác là Undotree . Nó giống như Gundo , nhưng với một số khác biệt:

  1. Việc triển khai vimscript thuần túy và không cần thư viện của bên thứ 3 (như python), đừng lo lắng về hiệu suất, đó không phải là vấn đề lớn đối với vim để xử lý việc này. Sự phụ thuộc duy nhất là công cụ 'diff' luôn được cung cấp với vim và thậm chí không có 'diff', bạn vẫn có thể sử dụng hầu hết các tính năng của tập lệnh này.
  2. Thời gian thực cập nhật cây hoàn tác. Khi bạn thực hiện thay đổi, cây hoàn tác sẽ được cập nhật đồng thời.
  3. Một số dấu hiệu hữu ích, như bộ thay đổi hiện tại, bộ làm lại tiếp theo, bộ thay đổi đã lưu, v.v.
  4. Chuyển đổi giữa dấu thời gian tương đối và dấu thời gian tuyệt đối.
  5. Thời gian thực cập nhật cửa sổ hoàn tác.
  6. Khả năng xóa lịch sử hoàn tác.
  7. Nhiều tùy chỉnh hơn.

4
Không phải câu trả lời này không được chứng minh trực tiếp bởi bài viết của doorknob sao?
Caleb
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.