One Emacs package that has been with me for a very long time is
diff-hl, and the reason is not its
on-the-fly coloured fringe markers, but the fact that colours stay there when I
visit the same buffer later. This is useful since more often than not I end my
work day with something still in progress, so the next morning it’s easier to
use diff-hl-next-hunk and diff-hl-previous-hunk to move around my unfinished
edits.
However, I have put diff-hl aside because there have been some welcome
improvements lately on the built-in diff-mode, especially the possibility to
edit its buffer contents and commit straight from it. I now find myself using
C-x v D (vc-root-diff) many times a day, and by using
diff-mode more, I have started to appreciate one simple thing that was already
available to me but have always ignored, that is the navigation among hunks with
diff-hunk-next (n) and diff-hunk-prev (p).
The pattern, already become muscle memory, is the following:
C-x p pto enter the project I am working on- Visit the file I am interested in
- Hit
C-x v = - Move with either
norpto the desired hunk - Hit
RETto jump to the hunk - Hit
C-x 1to hide thediff-modebuffer
Easy and quick. I guess one could even speed up the process by using
something like recentf-mode, for instance, but I’ll leave that to you wild
ELisp explorers.
By the way, after months with VC instead of Magit,1 the combination of
vc-dir, vc-git, diff-mode, and shell-command has resulted in one of the
most dreaded command any serious Emacs user can think of, one that I cannot even
type out of fear of mystical forces coming after me. Let’s just say it involves
package-delete and… Dear GNU, they’re already here.
-
My actual focus on VC roughly started last year, see: Rebasing with VC. ↩︎