I use both vim and Emacs because I grew up using a lot of vim then
decided to switch over to Emacs one day. The obvious choice was to switch to
using Evil Mode. This post is not about that, at least not entirely. One of
the things I missed dearly about vim was the ease with which you could use
line numbers to move around and edit. I always found C-u preface very
crufty. The implicit numeric argument that precedes a command is what makes you
super fast with navigation in vim. However, I had come to like love
Emacs to go back. So I copied took inspiration and wrote some ELisp
code from the Internet and modified it to achieve the exact result I
wanted. This is something that works out of the box on my Emacs - 26.1
Demo

Code
Throw this in your .emacs and watch the magic!
(defvar my-linum-current-line-number 0)
(setq linum-format 'my-linum-relative-line-numbers)
(defun my-linum-relative-line-numbers (line-number)
(let ((test2 (- line-number my-linum-current-line-number)))
(propertize
(number-to-string (cond ((<= test2 0) (* -1 test2))
((> test2 0) test2)))
'face 'linum)))
(defadvice linum-update (around my-linum-update)
(let ((my-linum-current-line-number (line-number-at-pos)))
ad-do-it))
(ad-activate 'linum-update)
(global-linum-mode t)
My Podcast!
If you like topics such as this then please consider subscribing to my podcast. I talk to some of the stalwarts in tech and ask them what their favorite productivity hacks are:
Available on iTunes Podcast
Visit Void Star Podcast’s page on iTunes Podcast Portal. Please Click ‘Subscribe’, leave a comment.