46

Is there a way to turn on line numbering for nano?

tshepang
  • 65,642
chrisjlee
  • 8,523

8 Answers8

54

Adding set linenumbers in /etc/nanorc works for me in nano version 2.7.1.

It also can be activated with -l or --linenumbers on the command line.

Toggle the line numbers from within nano with: M-# in my case Alt+Shift+3.

Pablo A
  • 2,712
  • In addition to change the background color of the line numbers, I use set numbercolor ,normal – smac89 Apr 05 '19 at 22:24
  • It may be preferable to store the set linenumbers in /home/<user>/.nanorc as a user preference instead. – topher217 Oct 22 '20 at 14:32
  • I like this but it should be noted that when you copy and paste multiple lines, the line numbers will also copy and paste. – mchid Mar 28 '21 at 19:30
28

The only thing coming close to what you want is option to display your current cursor position. You activate it by using --constantshow (manpage: Constantly show the cursor position) option or by pressing AltC on an open text file.

mchid
  • 1,420
tshepang
  • 65,642
  • 6
    Good answer. The --const argument is the same as -c. Use it to open the file like this: nano -c filename . Also, to make it permanent, include the 'set const' option in your ~/.nanorc file, which may not exist until you create it. – MountainX Feb 02 '12 at 02:24
6

This was added on the 20th of October and was documented on the 22nd of October and has yet to make it into a release so compile it from source like so:

git clone git://git.savannah.gnu.org/nano.git;cd nano;./autogen.sh;./configure;sudo make install 

Then add the following to your .nanorc:

set linenumbers

You can use ^# to turn line numbers on and off from within Nano. It's probably a bit buggy since it's recent and hasn't been tested by many people.

0x777C
  • 177
3

It's 2021. The OP's question is still valid, but many of the answers here are for an older version of nano. I'm not presenting this answer as "the last word" - only as an update.

The default screen of nano consists of five areas. From top to bottom these are: the title bar, a blank line, the edit window, the status bar, and two help lines.

Where to display line numbers?

Line numbers may be displayed in one of two places:

  1. the edit window
  2. the status bar

The status bar display simply updates the line number (and column) of the cursor/insertion point as it's moved about in the edit window. Line numbers in the edit window are positioned in the left margin. It is possible to display the line number in either or both the edit window and the status bar.

Display line numbers in the edit window:

There are several methods (this is not necessarily a complete list):

1. before the file is opened:

Edit/create the file ~/.nanorc with the following line:

set linenumbers

2. when the file is opened:

Use the -l option in nano:

$ nano -l <myfilename>

3. after the file is opened:

Toggle line numbers "on" and "off" w/ alt-shift-#:

altshift#

Display line numbers in the status bar:

1. before the file is opened:

Edit/create the file ~/.nanorc with the following line:

set constantshow

2. when the file is opened:

Use the -c option in nano:

$ nano -c <myfilename>

3. after the file is opened:

Toggle line number display in the status bar "on" and "off" w/ alt-shift-C (for Mac keyboard it's shift-esc-3):

altshiftC (or shiftesc3 for Mac keyboard)

Summary

These all work as of today: Ubuntu 20.04, nano --version = GNU nano, version 4.8, although there are minor discrepancies in the documentation.

tychen
  • 5
Seamus
  • 2,925
  • 1
    It should be noted that if you copy and paste multiple lines when line numbers are displayed on the edit window, the numbers for the lines will also copy and paste. – mchid Mar 28 '21 at 19:47
  • That may be a function of a. how you do the copy, and b. which version of nano. I don't get the line numbers unless I use my macOS' copy & paste from nano to the text edit app. I don't have time to test all the permutations now, but I will say that if nano's copy & paste (i.e. all within nano) includes the line numbers, then that seems pretty weak - to my way of thinking. – Seamus Mar 29 '21 at 02:17
1

Nano is by design a very simple editor with few features. If you start wishing for anything beyond basic edition, nano isn't the right tool. Emacs is a very powerful editor; to switch line numbers on, type M-x linum-mode. If Emacs scares you and you want a text mode editor, consider Joe, where line numbers are switched on with the -linums option.

That being said, line numbering was eventually added five years after this question was asked.

0

Alternative, a quick alias in .bashrc:

echo "alias nano='nano -c -l'" >> ~/.bashrc && source ~/.bashrc && reset

Forcing the syntax seems mandatory for hashbang scripts, so to force a particular highlighting:

echo "alias nano='nano --syntax=php -c -l'" >> ~/.bashrc && source ~/.bashrc && reset

man nano

NVRM
  • 398
0

For Mac users and nano 6.1 (the version is important) press EscN to toggle on/off line numbering on the edit window.

RiskyMaor
  • 101
0

Following will work on older versions of nano as well:

nano -c file.c

Once nano opens the file, press the arrow keys to move the cursor around to see line, col, char, etc. displayed towards the bottom.

ZeZNiQ
  • 111