Nano text editor

Nano is easy to use and lightweight command line text editor for Linux and UNIX systems. Nano text editor can use either the default settings or improve settings with customized nanorc-file. Here are some tips that can improve the usability of Nano. Changes can be made to nanorc file, either locally or to all users or options can be used as command line options.

First is good to check Nano compiled options, with command:

nano -V

Nano should be compiled with –enable-nanorc option.

Example configuration file can be copied from /usr/share/doc/nano-[version]/nanorc.sample. If you want to add the settings to all users, then copy nanorc to the /etc/nanorc and if you want to add the settings locally to one user then copy nanorc to the $HOME/.nanorc.

Nano Text Editor and nanorc Tips and Tricks

1. Smooth Scrolling

Text will scroll line-by-line, instead of the usual chunk-by-chunk behavior.
nanorc row:

set smooth

command line option:

-S or --smooth

2. Syntax Highlighting

This feature is extremely useful when editing the source code, or modifying configuration files.
nanorc default rows:

## Nanorc files
include "/usr/share/nano/nanorc.nanorc"

## C/C++
include "/usr/share/nano/c.nanorc"

## HTML
include "/usr/share/nano/html.nanorc"

## TeX
include "/usr/share/nano/tex.nanorc"

## Quoted emails (under e.g. mutt)
include "/usr/share/nano/mutt.nanorc"

## Patch files
include "/usr/share/nano/patch.nanorc"

## Manpages
include "/usr/share/nano/man.nanorc"

## Groff
include "/usr/share/nano/groff.nanorc"

## Perl
include "/usr/share/nano/perl.nanorc"

## Python
include "/usr/share/nano/python.nanorc"

## Ruby
include "/usr/share/nano/ruby.nanorc"

## Java
include "/usr/share/nano/java.nanorc"

## Assembler
include "/usr/share/nano/asm.nanorc"

## Bourne shell scripts
include "/usr/share/nano/sh.nanorc"

## POV-Ray
include "/usr/share/nano/pov.nanorc"

command line option:

-Y str or --syntax str

You can also do your own syntax highlighting files easily. For example, the following code change the comment lines to blue:

syntax "comments" ".*"
color blue "^#.*"

And you can also use syntax highlighting files from the Internet. Here you can find example php.nanorc (PHP) and js.nanorc (JavaScript) file:
php.nanorc
js.nanorc
And then just copy files example to “/usr/share/nano/php.nanorc” and “/usr/share/nano/js.nanorc”
And enable PHP and JavaScript syntax highlighting files with:

## PHP
include "/usr/share/nano/php.nanorc"
## JavaScript
include "/usr/share/nano/js.nanorc"

3. Auto-indentation

Indent new lines to the previous line’s indentation. This is also useful when editing source code.
nanorc row:

set autoindent

command line option:

-i or --autoindent

4. Backups

When saving a file, back up the previous version of it to the current filename suffixed with a ~.
nanorc row:

set backup

command line option:

-B or --backup

You can also set the directory where Nano puts unique backup files if file backups are enabled.
nanorc row:

set backupdir "/home/user/nano-backups"

command line option:

-C /home/user/nano-backups or --backupdir=/home/user/nano-backups

5. Case Sensitive Searches

Do case sensitive searches by default.
nanorc row:

set casesensitive

6. Nano History

This is for saving search/replace strings. All search/replace strings are saved to the ~/.nano_history file, so they can be retrieved in later sessions, if nanorc support is available.
nanorc row:

set historylog

command line option:

-H or --historylog

7. More Space

This option remove the blank line below the titlebar. So it’s possible to use the blank line below the titlebar as extra editing space.
nanorc row:

set morespace

command line option:

-O or --morespace

8. Hide Help from Bottom (nohelp)

Remove shortcut lists at the bottom. This option hide the shortcut lists at the bottom of the screen.
nanorc row:

set nohelp

command line option:

-x or --nohelp

9. Disable Line Wrapping (nowrap)

Don’t wrap long lines.
nanorc row:

set nowrap

command line option:

-w or --nowrap

10. Tab size

Set width of a tab to #cols columns, must be greater than 0.
nanorc row:

set tabsize 10

command line option:

-T 10 or --tabsize=10

11. Convert Tabs to Spaces

Convert typed tabs to spaces.
nanorc row:

set tabstospaces

command line option:

-E or --tabstospaces

12. Read Only Mode / View Only Mode

View mode disallow file modification (read-only), not very useful in nanorc-file, but sometimes handy from command line.
nanorc row:

set view

command line option:

-v or --view

13. Enable Mouse

Enable the use of the mouse. Good if you move the mouse to point to another on text file, and not so useful if you need to cut or copy text. You can of course cut and paste with Ctrl+k and Ctrl+u.
nanorc row:

set mouse

command line option:

-m or --mouse

14. Other Options

Here is only my favourit options and you might need some other options, so then it’s better check Nano help or manual pages.
command line:

nano --help or man nano