Như đã đề cập trước đó, git-gutter là một tiện ích mở rộng được thiết kế để hiển thị cho bạn thông tin git trực tiếp trong tệp của bạn và hoạt động từ đó, trong khi magit tập trung vào hoạt động trên các khác biệt.
Tính năng này không được lên kế hoạch cho máng xối bất cứ lúc nào sớm ( https://github.com/syohex/emacs-git-gutter/issues/91 )
Tuy nhiên, đó là thứ mà emacs lisp nên rất giỏi trong việc quét sạch (đi qua những con chó săn trong một khu vực và loại bỏ chúng một thời gian). Tự mình thử điều này gần như là vấn đề, vấn đề duy nhất là git-máng xối bắt đầu một quá trình nền sau khi bạn thực hiện một cú hunk và không đợi nó kết thúc, vì vậy tôi đã phải thêm một chút phép thuật hack để xử lý việc này.
Các chức năng lisp emacs sau đây nên làm những gì bạn muốn. Bạn có thể muốn liên kết nó với một số khóa.
(defun my-git-stage-region ()
(interactive)
(let ((git-gutter:ask-p nil)
(start (region-beginning))
(end (region-end)))
(save-excursion
(goto-char start)
(git-gutter:next-hunk 1)
(while (< (point) end)
(git-gutter:stage-hunk)
;; This is a hack to wait for git-gutter to finish
;; updating information (git-gutter kicks
;; of a process to update the diff information
;; and does not block)
(while (get-buffer (git-gutter:diff-process-buffer (git-gutter:base-file)))
(sit-for 0.05))
(git-gutter:next-hunk 1)))))