Magit gần đây đã đạt được hỗ trợ cho một cái gì đó như thế này, nhưng tính năng vẫn còn hơi thô xung quanh các cạnh và phải được kích hoạt rõ ràng.
Một tính năng tương tự đã tồn tại từ lâu - khi bạn chuyển từ cam kết này sang cam kết khác trong bộ đệm nhật ký và một cửa sổ khác trong cùng khung là bộ đệm sửa đổi của kho lưu trữ, thì bộ đệm đó được làm mới để hiển thị cam kết đó thay vì bất kỳ cam kết nào đã được hiển thị trước đó.
Cho đến gần đây, bộ đệm sửa đổi đã được tạo khi bạn lần đầu tiên chuyển từ cam kết này sang cam kết khác. Tôi đã thay đổi hành vi đó và bây giờ bộ đệm sửa đổi chỉ được cập nhật . Nếu không có cửa sổ nào trong cùng một khung đã hiển thị bộ đệm đó, thì việc di chuyển xung quanh nhật ký sẽ không còn khiến bộ đệm được hiển thị trong một số cửa sổ mới hoặc một cửa sổ hiện có trước đó hiển thị một số bộ đệm khác.
Vì vậy, bây giờ bạn phải nhấn SPCmột lần để hiển thị bộ đệm sửa đổi. Chỉ sau đó nó sẽ bắt đầu được cập nhật khi bạn di chuyển xung quanh bộ đệm nhật ký.
Nếu bạn không muốn bộ đệm sửa đổi được cập nhật, thì hãy làm điều này:
(remove-hook 'magit-section-movement-hook
'magit-log-maybe-update-revision-buffer)
Mặt khác, nếu bạn cũng muốn bộ đệm sửa đổi được cập nhật khi di chuyển xung quanh trong bộ đệm trạng thái, thì hãy sử dụng:
(add-hook 'magit-section-movement-hook
'magit-status-maybe-update-revision-buffer)
Bây giờ có thể một bộ đệm blob được tự động cập nhật theo cách tương tự. Đầu tiên thêm điều này:
(add-hook 'magit-section-movement-hook
'magit-log-maybe-update-blob-buffer)
Và cũng có thể:
(add-hook 'magit-section-movement-hook
'magit-status-maybe-update-blob-buffer)
Sau đó, bên trong bộ đệm nhật ký (hoặc trạng thái) nhấn RETđể hiển thị hoặc cập nhật bộ đệm sửa đổi, và cũng chuyển sang bộ đệm đó. Di chuyển đến tập tin bạn quan tâm và nhấn RETmột lần nữa. Bây giờ bạn đang ở trong bộ đệm "truy cập blob", tương tự như bộ đệm truy cập tệp, ngoại trừ việc nó không truy cập tệp trong cây làm việc mà là tệp như trong một số cam kết.
Chuyển về bộ đệm log (hoặc trạng thái) và di chuyển đến một xác nhận khác. Bộ đệm blob đang được cập nhật.
Lưu ý rằng hiển thị một blob khác, không thực sự sử dụng lại bộ đệm blob hiện có. Thay vào đó, nó tạo ra một bộ đệm mới truy cập blob đó và sau đó hiển thị bộ đệm đó trong cửa sổ hiển thị bộ đệm blob khác trước đó. Bộ đệm khác không bị xóa, điều đó không may có nghĩa là khá nhiều bộ đệm có thể tích lũy trong một khoảng thời gian ngắn. Đó sẽ là một trong những cạnh thô, tôi đã đề cập trước đó. Nhấn qvào bộ đệm blob sẽ xóa nó, vì vậy bạn có thể dọn sạch bằng cách vào cửa sổ được sử dụng để hiển thị các bộ đệm blob khác nhau và tiếp tục nhấn qcho đến khi tất cả các bộ đệm đã bị xóa.
Ngoài ra, có thể điều hướng đến blob tiếp theo hoặc trước đó từ bên trong bộ đệm blob bằng cách sử dụng pvà n. Tôi giả định rằng trong hầu hết các trường hợp, bạn bắt đầu với một đốm màu gần đây và sau đó di chuyển ngược về các đốm cũ hơn bằng cách sử dụng p. Nếu bạn làm điều đó và sau đó muốn di chuyển theo hướng khác, tôi khuyên bạn nên sử dụng qđể giết bộ đệm hiện tại và do đó di chuyển đến bộ đệm trước đó, tức là blob tiếp theo .
Cũng lưu ý rằng trước tiên bạn không phải truy cập bản sửa đổi để có thể truy cập một trang. Bạn cũng có thể sử dụng M-x magit-find-file RET <revision> RET <file> RET
trực tiếp, nhưng tôi thấy rằng ít thuận tiện hơn.