Why the current line contains this?
Go to file
Akib Azmain Turja 5203d9379a
Bump version to 2.0.4
2022-11-29 14:17:51 +06:00
images Update screenshots 2022-02-07 14:14:06 +06:00
.dir-locals.el Add .dir-locals.el 2022-11-26 21:50:26 +06:00
.elpaignore Add .elpaignore 2022-11-14 09:47:39 +06:00
COPYING Add COPYING 2022-02-04 16:34:35 +06:00
README.org Make lines no longer than 75 characters 2022-10-08 17:36:05 +06:00
why-this.el Bump version to 2.0.4 2022-11-29 14:17:51 +06:00


why-this - Why is this line here? Ask version control

why-this shows why the current line was changed on the right side of line. It can also show editing history with heat map.


/akib/emacs-why-this/src/branch/master/images/blame.png Blame on the right side of current line.

/akib/emacs-why-this/src/branch/master/images/blame-region.png Blame on the right side of each line in region.

/akib/emacs-why-this/src/branch/master/images/annotate.png Editing history with heat map.



M-x package-refresh-contents and M-x package-install RET why-this.


Do M-x quelpa RET why-this, Quelpa should get the recipe from MELPA and install it.


 '(why-this :type git
            :repo "https://codeberg.org/akib/emacs-why-this.git"))

Supported version control systems

Current only two version control systems are supported:

  • Git
  • Mercurial (note: changes must be saved to be shown)


Type M-x why-this-mode to enable showing blame.

Type M-x why-this to show blame on echo area.

Type M-x why-this-annotate to show editing history on a dedicated buffer.


Put the following in your init file to enable why-this-mode in every possible buffer:


Note: why-this-mode won't be enabled on unsupported buffer.

Output by why-this-annotate may be hard to read depending on the theme. Put the following in your init file to change the colors:

  • For dark theme users:

    (set-face-background 'why-this-annotate-heat-map-cold "#203448")
    (set-face-background 'why-this-annotate-heat-map-warm "#382f27")
  • For light theme users:

    (set-face-background 'why-this-annotate-heat-map-cold "#dde3f4")
    (set-face-background 'why-this-annotate-heat-map-warm "#f0e0d4")

To disable the heat map:

(setq why-this-annotate-enable-heat-map nil)

Hovering on the message shows a tooltip, to disable it:

(setq why-this-enable-tooltip nil)

To get a list of all user options M-x customize-group RET why-this.