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
You can run the command with M-x
display-line-numbers-modeRET or M-x
global-display-line-numbers-modeRET to try it.
Another good idea is to use
(add-hook 'prog-mode-hook 'display-line-numbers-mode) in your init.el to automatically enable that mode in all programming modes.
3You might also find
(global-display-line-numbers-mode)useful. Jan 14, 2019 at 13:15
I'm not sure what init.el is, but I assume you can add that to your
~/.emacsfile Aug 13, 2022 at 10:38
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.
Do you know a way I can make this permanent? Sep 25, 2014 at 22:09
2(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. Sep 25, 2014 at 22:24
If you are using Emacs 26 or newer, you can use
** 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'.
3I like it so much, but my muscle memory still goes
M-x linum-mode- so I did
(advice-add 'linum-mode :override 'display-line-numbers-mode). Jun 21, 2021 at 22:10
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
;; This is like linum-mode, but uses jit-lock to be (hopefully) more efficient.
You can install it via GNU Elpa via the usual
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
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)))
This is what my teacher tells us to set line-display-mode always on. Add this in your
(add-hook 'c++-mode-hook 'display-line-numbers-mode) (add-hook 'c-mode-hook 'display-line-numbers-mode) (setq linum-format "%3d ")
OTTO: Professor William Knottenbelt
Press M-x and type just
linum (or even
linu will work), then press Enter to automatically execute
linum-mode. No need to type the longer
Also, usually you just want to go to one chosen line of interest because of an error message. Then press M-x, type
goto-line, press Enter and type the line of choice.
A better way may be is to use
prog-mode as a whole instead of doing for all programming language.
(add-hook 'prog-mode-hook 'display-line-numbers-mode)
Though it doesn't work for mode other than programming langauges. But it is what i need.