ดังที่ได้กล่าวไว้ก่อนหน้านี้git-gutterเป็นส่วนขยายที่ออกแบบมาเพื่อแสดงข้อมูล git ของคุณโดยตรงในไฟล์ของคุณและทำงานจากที่นั่นในขณะที่ magit มุ่งเน้นไปที่การทำงานกับ diffs
คุณลักษณะนี้ไม่ได้รับการวางแผนสำหรับการคอมไพล์ git ตลอดเวลาเร็ว ๆ นี้ ( https://github.com/syohex/emacs-git-gutter/issues/91 )
อย่างไรก็ตามมันเป็นสิ่งที่ emacs เสียงกระเพื่อมควรจะดีมากที่จะเช็ดขึ้น (ผ่านการล่าสัตว์ในภูมิภาคและระยะเวลาพวกเขาออก) การลองทำสิ่งนี้ด้วยตัวเองเกือบจะเป็นปัญหาปัญหาเดียวก็คือ git-gutter เริ่มต้นกระบวนการพื้นหลังหลังจากที่คุณวางก้อนใหญ่และไม่รอให้มันเสร็จสิ้นดังนั้นฉันจึงต้องเพิ่มเวทมนตร์แฮ็คเล็กน้อยเพื่อจัดการกับสิ่งนี้
ฟังก์ชั่นเสียงกระเพื่อม emacs ต่อไปนี้ควรทำสิ่งที่คุณต้องการ คุณอาจต้องการผูกมันไว้กับปุ่มบางปุ่ม
(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)))))