NANO Terminal Text Editor


nano [options] [[+line[,column]] file]...
nano [options] [[+[crCR](/|?)string] file]...

Introduction

nano stands for Nano’s ANOther editor. Quite weird, isn’t it?

If you have nothing but a Terminal window attached to a remote machine, nano is your best friend to edit any types of files. Moreover, if you want to learn how to customize nano in depth, I suggest you to read nanorc config file article.

Another famous terminal-based text editor is vim, which is a lot more complex than nano.

Options

The most useful options are:

  • −B, −−backup: When saving a file, back up the previous version of it, using the current filename suffixed with a tilde (~)
  • −J NUM, −−guidestripe=NUM: Draw a vertical stripe at the given column (help judge the width of the text). The color of the stripe can be changed with set stripecolor in nanorc file.
  • −Q "regex", −−quotestr="regex": Set the regular expression for matching the quoting part of a line. It’s possible to rejustify blocks of quoted text when composing email, and to rewrap blocks of line comments when writing source code.
  • −T NUM, −−tabsize=NUM: Set the width of a tab to NUM columns. The value of number must be greater than 0 (default is 8).
  • −Y NAME, −−syntax=NAME: Specify the name of the syntax highlighting to use. It’s chosen among the ones defined in the nanorc files.
  • −i, −−autoindent: Automatically indent a newly created line to the same number of tabs and/or spaces as the previous line (or as the next line if the previous line is the beginning of a paragraph).
  • −l, −−linenumbers: Display line numbers to the left of the text area. (Any line with an anchor additionally gets a mark in the margin.)
  • −m, −−mouse: Enable mouse support, if available for your system. When enabled, mouse clicks can be used to place the cursor, set the mark (with a double click), and execute shortcuts. The mouse will work in the X Window System, and on the console when gpm is running. Text can still be selected through dragging by holding down the Shift key.
  • −t, −−saveonexit: Save a changed buffer without prompting (when exiting with ^X).

Examples

The cursor can be put on the first or last occurrence of a specific string by specifying that string after +/ or +? before the filename. The string can be made case-sensitive and/or caused to be interpreted as a regular expression by inserting c and/or r after the + sign. These search modes can be explicitly disabled by using the uppercase variant of those letters: C and/or R.

When the string contains spaces, it needs to be enclosed in quotes.

Given a file called my-file.txt with the following content:

Hello Jey
Footer
Good luck
Well done
Footer

To open this file at the first occurrence of the word “Footer”, you would type:

nano +c/Footer my-file.txt

To open this file at the last occurrence of the word “Footer”, you would type:

nano +c?Footer my-file.txt

When you have finished editing a file, press Ctrl + X to exit and Y to save (or N to discard) changes.

Moreover, if instead of a filename you provide a dash (-), nano will read data from standard input.

nano -
Reading data from keyboard; type ^D or ^D^D to finish.

Quotes

Here are some useful links I used while writing this article: