I think those screenshots are actually of vim
, in which case all you need to do is :set rnu
.
For emacs, you're looking for linum-relative
.
I have various hacks you might be interested, which makes the emulation of rnu
closer:
(with-eval-after-load 'linum
(set-face-background 'linum nil)
(require 'linum-relative)
;; truncate current line to four digits
(defun linum-relative (line-number)
(let* ((diff1 (abs (- line-number linum-relative-last-pos)))
(diff (if (minusp diff1)
diff1
(+ diff1 linum-relative-plusp-offset)))
(current-p (= diff linum-relative-plusp-offset))
(current-symbol (if (and linum-relative-current-symbol current-p)
(if (string= "" linum-relative-current-symbol)
(number-to-string (% line-number 1000))
linum-relative-current-symbol)
(number-to-string diff)))
(face (if current-p 'linum-relative-current-face 'linum)))
(propertize (format linum-relative-format current-symbol) 'face face)))
(setq
linum-relative-current-symbol ""
linum-relative-format "%3s "
linum-delay t)
(set-face-attribute 'linum-relative-current-face nil
:weight 'extra-bold
:foreground nil
:background nil
:inherit '(hl-line default)))