Как упоминалось ранее, git-gutter - это расширение, предназначенное для отображения информации о git непосредственно в вашем файле и работы с ней, тогда как magit фокусируется на работе с diff.
Эта функция не планируется для git gutter в ближайшее время ( https://github.com/syohex/emacs-git-gutter/issues/91 )
Тем не менее, emacs lisp хорошо подходит для того, чтобы вытереть его (пройтись по кусочкам в регионе и постепенно убрать их). Попробовав это сам, это был почти тот случай, единственной проблемой было то, что git-gutter запускает фоновый процесс после того, как вы установили блок, и не ждет его завершения, поэтому мне пришлось добавить немного хакерской магии, чтобы справиться с этим.
Следующая функция emacs lisp должна делать то, что вы хотите. Возможно, вы захотите связать его с некоторыми клавишами.
(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)))))