Skip to content

Highlighting Regions by Last Updated Time

Notifications You must be signed in to change notification settings


Folders and files

Last commit message
Last commit date

Latest commit



29 Commits

Repository files navigation


melpa badge melpa stable badge gh actions badge

Highlight regions of a buffer based on the time of most recent update. Older updated region is highlighted lighter, newer region is highlighted darker.

This is Emacs port of Vim's smeargle




smeargle is available on MELPA and MELPA stable

You can install smeargle with the following command.

M-x package-install [RET] smeargle [RET]

Support VCS


M-x smeargle

Highlight regions by last updated time.

M-x smeargle-commits

Highlight regions by age of changes.

M-x smeargle-clear

Clear overlays in current buffer


You can set highlighted colors of smeargle by changing smeargle-colors. For example

 '(smeargle-colors '((older-than-1day   . "red")
                     (older-than-3day   . "green")
                     (older-than-1week  . "yellow")
                     (older-than-2week  . nil)
                     (older-than-1month . "orange")
                     (older-than-3month . "pink")
                     (older-than-6month . "cyan")
                     (older-than-1year . "grey50"))))

If color parameter is nil, that part is not highlighted.

And you can also set colors of smeargle-commits by smeargle-age-colors.

 '(smeargle-age-colors '((0 . nil)
                         (1 . "grey80")
                         (2 . "grey70")
                         (3 . "grey60")
                         (4 . "grey50")
                         (5 . "grey40")
                         (6 . "grey30")
                         (7 . "grey20")
                         (8 . "grey10"))))

You can specify parameters until smeargle-age-threshold. age is set to smeargle-age-threshold if actual age of changes is older than smeargle-age-threshold. Default value of smeargle-age-threshold is 7.

Sample Configuration

(global-set-key (kbd "C-x v s") 'smeargle)
(global-set-key (kbd "C-x v c") 'smeargle-commits)

;; Highlight regions at opening file
(add-hook 'find-file-hook 'smeargle)

;; Updating after save buffer
(add-hook 'after-save-hook 'smeargle)