Parent page: Programming Applications
GNU nano is a simple terminal-based text editor. Though not as powerful as Emacs or Vim, it is easy to learn and use. Nano is ideal for making small changes to existing configuration files or for writing short plain text files. It was originally created as a free replacement for the non-free Pico editor. Pico is the terminal-based editor used in the Pine email suite from the University of Washington.
Basic use of nano is covered here. If you want to learn more advanced techniques such as the use of multiple buffers or syntax highlighting of code, see the the nano project's documentation.
Nano is part of the standard Ubuntu installation, and should be on your system already. If for some reason it's not, use your favorite package manager to install nano.
Nano is a terminal-based command-line program. Although not complicated or difficult to use, it is different than a GUI-based text editor such as gedit. The two main features that differ are the short-cut key combinations and the use of a mouse.
To start nano with an empty file, open a terminal window and at the command-line type "nano" (without the quotes). For example:
To open an existing file for editing, type "nano filename" where filename is the name of the existing file. For example, to open the file that contains the list of most recently issued commands, make sure you are in your home directory, and at the command line type "nano .bash_history" as in the following example:
jeffsch@mandela:~ nano .bash_history
In the above example, if the file .bash_history does not exist in your current directory, nano will start a new blank file and use .bash_history as the name for it.
Line wrap is on by default. When line wrap is on, nano inserts end-of-line characters into your file when it wraps lines to fit the width of the terminal window. Only lines that you type or paste into the window are wrapped. Existing long lines are not wrapped until you add new text to the line or use the Ctrl-J key combination to justify the current paragraph.
jeffsch@mandela:~ nano -w .bashrc
Figure 1: Default nano screen layout
The default nano screen layout is as shown in Figure 1. The bottom two lines show the key combinations for common operations. The ^ symbol represents the Control key on your keyboard. For example, use the Ctrl-G key combination to display a basic introduction to nano and its default screen layout.
The screen fonts and background colours are determined by your terminal settings. And when you resize the terminal window, nano adjusts itself accordingly.
Long lines that are not wrapped to fit the window are indicated by the $ symbol at the extreme right edge of the terminal window. The $ symbol is not part of your file; it just tells you that the line of text is too long to be displayed in the terminal.
Using The Mouse
By default, mouse services are provided by the terminal window. The mouse works almost the same as in a GUI editor. You can highlight text, right-click to copy and paste, and use the middle mouse button for pasting text from the buffer. However, when you use the middle mouse button to paste text, the text is pasted at the current cursor location, not at the mouse pointer location. Other limitations exist. For example, you cannot use the mouse to cut or delete text, nor can you use the mouse to scroll through the file.
Nano has its own built-in mouse services, but they are limited. They provide only the ability to move the cursor to the point where you click, and to mark the beginning and end of a section of text. Use the Alt-M key combination to toggle between using the terminal's mouse services and nano's built-in mouse services.
If you are using nano at the system console, you must have gpm installed and running before using the mouse. The gpm package is in the Universe repository.
Using the Keyboard
Typing at the keyboard will insert text at the current cursor location. The Page Up and Page Down keys, the Arrow keys, and the Insert key and Delete key all work as in most other text editors. If you are at a keyboard that does not have these keys, you can use alternative Ctrl-key combinations. They are listed in nano's online help, accessible with the Ctrl-G key combination.
Copy, paste, and cut operations are available, but they do not use the same Ctrl-key sequences as in most GUI editors. See the Editing Text section for more information.
Opening, Saving, and Closing Files
You can open a file for editing when you start nano, as discussed in the Starting Nano section. This section shows you how to open a file when nano is already started.
Open a file with the Read File command, Ctrl-R. The Read File command inserts a file from disk at the current cursor location.
When prompted, type the name of the file you want to open, or use the Ctrl-T key combination to use nano's built-in file browser to navigate to the file you want to open.
If a file is already open, nano will insert the new file into it at the current cursor location; it will not close the existing file, nor will it open a new screen for the new file.
Save and Save As
Save and Save As are both accomplished with the Write Out command, Ctrl-O.
When prompted, press enter to accept the existing file name. To save as another file name, type in the new name and press Enter, or use the Ctrl-T key combination to use nano's built-in file browser.
Close a file with the Ctrl-X key combination. If the file you are working on has been modified since the last time you saved it, you will be prompted to save the file first. Type y to save the file, or n to exit nano without saving the file.
Closing a file also closes nano.
As is normal in most text editors, text that you type into nano is inserted at the current cursor position. The Delete and Backspace keys also work the same as in other editors.
Use the Alt-6 key combination to copy text to the "cut buffer". Similarly, use the Ctrl-K key combination to delete text (it is cut to the "cut buffer"). If no text is marked, these two commands copy or cut the entire line of text.
Use the Ctrl-U key combination to paste the text in the "cut buffer" into the file.
To cut or copy specific text, you must first mark the start and end points of the text you want to select. You can do this with the either keyboard or the mouse, but to use the mouse for marking you must first turn on nano's built-in mouse services.
To use the keyboard to select text, move the cursor to the start of the text you want to select, press the Alt-A key combination to mark the start, then move the cursor to the end of the section you want to select.
To use the mouse to mark the start of a selection, first make sure that nano's built-in mouse services are turned on. Use the Alt-M key combination to toggle between nano's mouse and the terminal's mouse. Click on the location where you want to mark the start of the selection, move to the end of the section you want to select, and click the mouse again. You might need to use the keyboard to scroll the screen up or down because nano does not support scrolling with the mouse.
Once you have marked the beginning and end of text, the Alt-6 and Ctrl-K key combinations can be used to copy or cut it, respectively.
Text copied or cut into nano's internal "cut buffer" can only be pasted back into the current nano session. The text is not available for pasting into other windows or programs.
If you are using nano in a terminal window you can use the mouse to copy and paste text to and from other windows on your desktop. You cannot use the mouse to cut or delete text.
To quit nano, use the Ctrl-X key combination. If the file you are working on has been modified since the last time you saved it, you will be prompted to save the file first. Type y to save the file, or n to exit nano without saving the file.
The GNU nano Homepage: http://www.nano-editor.org/
GNU nano Documentation: http://www.nano-editor.org/docs.php
Basic Introduction to Emacs: EmacsHowto
Introduction to Vim: VimHowto