Seperti yang disebutkan sebelumnya, git-gutter adalah ekstensi yang dirancang untuk menunjukkan kepada Anda informasi git secara langsung di file Anda, dan beroperasi dari sana, sementara magit berfokus pada operasi di diffs.
Fitur ini tidak direncanakan untuk git gutter dalam waktu dekat ( https://github.com/syohex/emacs-git-gutter/issues/91 )
Namun itu adalah hal yang emacs lisp harus sangat baik dalam memusnahkan (melewati orang-orang bakhil di suatu daerah dan mengatur waktu mereka). Mencoba ini sendiri, ini hampir terjadi, satu-satunya masalah adalah git-talang memulai proses latar belakang setelah Anda tahap hunk dan tidak menunggu sampai selesai, jadi saya harus menambahkan sedikit sihir hack untuk menangani ini.
Fungsi emacs lisp berikut harus melakukan apa yang Anda inginkan. Anda mungkin ingin mengikatnya ke beberapa tombol.
(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)))))