I know how to display line numbers (and columns) in the mode-line, but I'd like emacs to display the line numbers for all the lines on the left-hand side. I've seen this done in vim and other text editors. How do I do this for emacs?
For Emacs version >= 26 you should use display-line-numbers-mode
or global-display-line-numbers-mode
.
As @eric-brown mentioned you can use M-x linum-mode
.
Another good idea is to use (add-hook 'prog-mode-hook 'linum-mode)
in your init.el to automatically enable linum-mode in all programming modes.
See EmacsWiki
M-x linum-mode
will do the trick. If you wish to effect this for all buffers, then M-x global-linum-mode
will do this.
-
-
1(per the suggestion of nispio and mgoszcz2) addition of
(global-linum-mode)
to your .emacs.d/init.el file will make it permanent. I find global-linum-mode to be a bit excessive, and mgoszcz2's suggestion for enabling it only in certain modes is a good one. – Eric Brown Sep 25 '14 at 22:24
If you are using Emacs 26 or newer, you can use display-line-numbers-mode
.
from etc/NEWS.26
:
** Emacs now supports optional display of line numbers in the buffer. This is similar to what 'linum-mode' provides, but much faster and doesn't usurp the display margin for the line numbers. Customize the buffer-local variable 'display-line-numbers' to activate this optional display. Alternatively, you can use the 'display-line-numbers-mode' minor mode or the global 'global-display-line-numbers-mode'. When using these modes, customize 'display-line-numbers-type' with the same value as you would use with 'display-line-numbers'.
nlinum-mode
is another option. It has the same interface as linum-mode
, so you can use the same hooks, but it uses a different technology to be more performant. Quote from nlinum.el
:
;; This is like linum-mode, but uses jit-lock to be (hopefully) more efficient.
You can install it via GNU Elpa via the usual list-packages
.
Certainly linum-mode
is a good choice.
If you don't always want to see line numbers, like me, you can use this trick from the excellent What the .emacs.d!? blog.
This temporarily enables linum-mode
when you run goto-line
.
Here's the code from his blog:
(global-set-key [remap goto-line] 'goto-line-with-feedback)
(defun goto-line-with-feedback () "Show line numbers temporarily, while prompting for the line number input" (interactive) (unwind-protect
(progn
(linum-mode 1)
(goto-line (read-number "Goto line: ")))
(linum-mode -1)))